[오라클옵티마이저힌트,모드변경,Optimizer모드변경힌트]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 /*+ 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
댓글 없음:
댓글 쓰기