SQLD 기출문제 예상문제 101

다음 문제를 풀어보세요.

다음 중 아래 SQL 쿼리의 실행 계획을 분석하고, 성능 개선을 위해 추가적으로 고려해야 할 사항으로 가장 적절하지 않은 것을 고르시오.

-- EMP 테이블 구조
CREATE TABLE EMP (
    EMPNO NUMBER(4) PRIMARY KEY,
    ENAME VARCHAR2(10),
    JOB VARCHAR2(9),
    MGR NUMBER(4),
    HIREDATE DATE,
    SAL NUMBER(7,2),
    COMM NUMBER(7,2),
    DEPTNO NUMBER(2)
);

-- 인덱스 생성
CREATE INDEX IDX_EMP_DEPTNO ON EMP (DEPTNO);

-- SQL 쿼리
SELECT /*+ INDEX(EMP IDX_EMP_DEPTNO) */ EMPNO, ENAME, SAL
FROM EMP
WHERE DEPTNO = 20
AND SAL > (SELECT AVG(SAL) FROM EMP WHERE DEPTNO = 10);

-- 예상 실행 계획 (실제 실행 계획과 다를 수 있음)
-------------------------------------------------------------------------------------------
| Id  | Operation             | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |                  |     1 |    25 |     6   (17)| 00:00:01 |
|*  1 |  FILTER                |                  |       |       |            |          |
|   2 |   TABLE ACCESS BY INDEX ROWID| EMP              |     1 |    25 |     3   (34)| 00:00:01 |
|*  3 |    INDEX RANGE SCAN       | IDX_EMP_DEPTNO |     1 |       |     1   (0)| 00:00:01 |
|   4 |   SORT AGGREGATE        |                  |     1 |     6 |     3   (34)| 00:00:01 |
|*  5 |    TABLE ACCESS FULL      | EMP              |    14 |    84 |     2   (0)| 00:00:01 |
-------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("SAL"> (SELECT AVG("SAL") FROM "EMP" "EMP"))
   3 - access("DEPTNO"=20)
   5 - filter("DEPTNO"=10)