2013년 11월 20일 수요일

Oracle Optimizer Mode를 변경하는 힌트(CHOOSE) 구로디지털 오엔제이프로그래밍실무교육센터

Oracle Optimizer Mode를 변경하는 힌트(CHOOSE)     구로디지털 오엔제이프로그래밍실무교육센터



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

www.onjprogramming.co.kr

 

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 /*+ CHOOSE */

      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

댓글 없음:

댓글 쓰기