Optimizer
Mode를 변경하는 힌트(FIRST_ROWS)
구로디지털 오엔제이프로그래밍실무교육센터
처음 로우가
가장 짧은 시간에 추출되도록 실행 계획을 수립하는 힌트 입니다. ALL_ROWS와 비교해 보시기를
바라며 SQL 문장에서 MAX, SUM, COUNT등과
같은 집합 함수를 사용하게 된다면 FIRST_ROWS 힌트는 무시되니 조심하세요~
당연히 FIRST_ROWS 힌트가 제 성능을 발휘하기 위해서는 통계 정보가 생성되어
있어야 합니다.
FIRST_ROWS 힌트는 당연히 하나만 가지고 오면 되니까 Full Table
Scan보다는 index scan을 선호할 SORT
MERGE JOIN보다는 NESTED LOOP JOIN을
선호합니다.
아래의 예를
참고 하세요~
analyze
table
scott.emp
compute
statistics
analyze
table
scott.dept
compute
statistics
select
e.empno,
e.ename,
d.dname
from
scott.emp
e,
scott.dept d
where
e.deptno
= d.deptno
Operation Object Name Rows Bytes Cost Object Node In/Out PStart
PStop
-------------------------------------------------------------------------
SELECT STATEMENT Optimizer Mode=HINT:
FIRST_ROWS 14 4
NESTED LOOPS 14 294
4
TABLE ACCESS FULL SCOTT.EMP 14
140 3
TABLE ACCESS BY INDEX ROWID SCOTT.DEPT 1
11 1
INDEX UNIQUE
SCAN SCOTT.PK_DEPT 1
0
댓글 없음:
댓글 쓰기