본문 바로가기

DataBase/Oracle

실행계획 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) 

 

'DataBase > Oracle' 카테고리의 다른 글

실행계획 SQL 연산(COUNT)  (0) 2008.04.28
실행계획 SQL 연산(COUNT STOPKEY)  (0) 2008.04.28
실행계획 SQL 연산(HASH JOIN)  (0) 2008.04.28
2G 넘는 파일의 export/import(Unix)  (0) 2008.04.28
Oracle Export / Import..  (0) 2008.04.28