티스토리 뷰

Database/Oracle

[오라클] PL/SQL 성능 향상

데브포유 2014. 6. 2. 17:10
반응형

1.  PL/SQL 컴파일 방식 변경

 - 기본적으로 PL/SQL을 컴파일 하게 되면 INTERPRETED 방식으로 한다.

   즉 PL/SQL 수행시 구문 하나씩 실시간으로 번역하면서 수행되는 방식.

   또 다른 방식은 NATIVE 방식이다. 

   자바스크립트는 INTERPRETED, 일반 윈도우 프로그램은 NATIVE 인 것처럼 비교하면 쉽게

   이해가 될 것이다.

   보편적으로 개발시에는 INTERPRETED 방식으로, 배포시에는 NATIVE 로 하면 성능 향상을

   이룰 수 있다.


- NATIVE VS  INTERPRETED 모드 설정하기

 . ALTER SESSION SET PLSQL_CODE_TYPE = NATIVE;  // INTERPRETED 

 . PL/SQL 컴파일


  OR 또는 먼저  PL/SQL를 컴파일하고 모드를 변경할 수도 있다.

   -> ALTER PACKAGE 패키지명 COMPILE PLSQL_CODE_TYPE=NATIVE;  

      // PACKAGE OR FUNCTION OR PROCEDURE


- PL/SQL별 컴파일 모드 조회하기

 : SELECT NAME, PLSQL_CODE_TYPE

   FROM USER_PLSQL_OBJECT_SETTINGS;


2. 심플 integer 사용

 : v1 pls_integer := 2147483647;


3. 인트라 유닛 인라이닝

 : 이름이 거창하지만 C를 해보신 분은 inline 함수을 기억하신다면 쉽게 아실수 있을 듯.

   특정 모듈을 함수로 정의 했지만 실제 코드가 실행될 때는 함수가 아닌 호출 루틴에

   코드가 복사되어 실행되는 함수를 말합니다.

   즉 함수를  Call하는  부하를 줄여 성능 향상을 이루는 것입니다.


 - 인트라 유닛 인라이닝을 만드는 2가지 방법

  a. 높은 수준의 PL/SQL  최적화 모드로 컴파일

    : ALTER SESSION SET PLSQL_OPTIMIZE_LEVEL = 3;

 

  b. 컴파일 명령어인 pragma를 사용

    : PL/SQL 코드 ,begin 구문 다음에  아래 코드 추가

      pragma inline ( 프로시저명, 'YES');


이상으로 PL/SQL 성능향상 3가지 방법을 살펴 보았습니다.

--- EOF --

 



   


반응형