2017년 4월 17일 월요일

(구로디지털단지,IT실무,오라클강좌,자바강좌,Oracle Hint) 실행계획 SQL 연산(FILTER)

실행계획 SQL 연산(FILTER) 

FILTER 연산은 데이터 추출 시 필터링이 일어나고 있음을 알려주는 SQL ROW 연산인데 WHERE 조건 절에서 인덱스를 사용하지 못할 때 발생하는 것입니다. NESTED LOOP 방식으로 해석할 수 있습니다. 

아래의 예는 EMP TABLE에서 부서의 최소 급여를 받는 사람들을 추출하는 것입니다. 

SQL>SELECT ENAME, SAL, JOB 
    FROM  EMP A 
    WHERE  SAL = (SELECT MIN(SAL) 
                      FROM  EMP B 
                      WHERE B.DEPTNO = A.DEPTNO); 

Execution Plan 
--------------------------------------------------- 
0        SELECT STATEMENT Optimizer=CHOOSE 
1        0  FILTER 
2        1    TABLE ACCESS (FULL) OF ‘EMP’ 
3        2    SORT (AGGREGATE) 
4        3      TABLE ACCESS (BY INDEX ROWID) OF ‘EMP’ 
5        4        INDEX (RANGE SCAN) OF ‘idx_emp_deptno’ (NON-UNIQUE)

댓글 없음:

댓글 쓰기