2013년 8월 13일 화요일

오라클자바community SQL강좌 Oracle Optimizer Mode를 변경하는 힌트(CHOOSE)

Optimizer Mode를 변경하는 힌트(CHOOSE)

구로디지털 오엔제이프로그래밍실무교육센터

CHOOSE 힌트인 경우 테이블에 통계 정보가 존재한다면 ALL_ROWS로 동작을 하며 없는 경우엔 RULE-BASED OPTIMIZER로 동작을 하고 CHOOSE, ALL_ROWS는 비용 기반 옵티마이저 환경에서  SQL문의 WHERE 조건을  만족하는 모든 행을 가장 빠르게 검색하는 실행 계획을 결정 합니다.

초기 파일에서 OPTIMIZER_MODE default 값은 CHOOSE 입니다.

analyze table emp compute statistics
analyze table dept compute statistics

select
       e.empno,
          e.ename,
          d.dname
from   emp e, dept d
where  e.deptno = d.deptno;


Operation            Object Name      Rows     Bytes    Cost     
-----------------------------------------------------------------
SELECT STATEMENT Optimizer Mode=HINT: CHOOSE                      14                      4  
  TABLE ACCESS BY INDEX ROWID            SCOTT.EMP        4           40         1            
    NESTED LOOPS                      14         294       4                                   
      TABLE ACCESS FULL          SCOTT.DEPT      4           44         3                         
      INDEX <st1:placetype w:st="on">RANGE</st1:placetype> SCAN             SCOTT.IDX_EMP_DEPTNO            5                        0                 



댓글 없음:

댓글 쓰기