[Hint]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 /*+ 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 RANGE SCAN SCOTT.IDX_EMP_DEPTNO 5 0
'프로그래밍 > oracle' 카테고리의 다른 글
oracle - [Hint]Oracle 9i(9.0.2)에서 사용가능한 힌트 (0) | 2012.07.19 |
---|---|
oracle - [Hint]Optimizer Mode를 변경하는 힌트(FIRST_ROWS) (0) | 2012.07.19 |
oracle - [Hint]Optimizer Mode를 변경하는 힌트(ALL_ROWS) (0) | 2012.07.19 |
oracle - [Hint]Optimizer Mode를 변경하는 힌트 (RULE) (0) | 2012.07.19 |
oracle - [Hint]ACCESS 경로를 변경하는 힌트(USE_CONCAT) (0) | 2012.07.19 |