반응형
실행계획 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)
반응형
'프로그래밍 > oracle' 카테고리의 다른 글
oracle - 실행계획 SQL 연산(HASH JOIN) (0) | 2012.08.17 |
---|---|
oracle - 실행계획 SQL 연산(HASH ANTI-JOIN) (0) | 2012.08.17 |
oracle - 실행계획 SQL 연산(COUNT) (0) | 2012.08.17 |
oracle - 실행계획 SQL 연산(COUNT STOPKEY) (0) | 2012.08.17 |
oracle - 실행계획 SQL 연산(CONCATENATION) (0) | 2012.08.17 |