[오라클힌트교육학원강좌,오라클자바커뮤니티,오라클교육]Optimizer Mode를 변경하는 힌트(FIRST_ROWS) 구로디지털 오엔제이프로그래밍실무교육센터 www.onjprogramming.co.kr
처음 로우가 가장 짧은 시간에
추출되도록 실행 계획을 수립하는 힌트 입니다. 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 /*+FIRST_ROWS */
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
댓글 없음:
댓글 쓰기