본문 바로가기

프로그래밍/oracle

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)


 

 

 

 


반응형