<자격증>/[SQLD]

SQLD 자격검증실전문제 138번 문제

9566 2023. 3. 19. 17:00
728x90

 



138. 다음 중 아래의 내용에 대한 설명으로 가장 적절한 것을 2개 고르시오.

[INDEX 생성]
CREATE INDEX IDX_EMP_01 ON EMP (REGIST_DATE, DEPTNO);
[SQL 실행]
SELECT *
FROM EMP
WHERE DEPTNO=47
AND
REGIST_DATE BETWEEN '2015.02.01' AND '2015.02.28';


1 실행된 SQL에 대해서 인덱스 비효율이 있어 인덱스의 컬럼을 DEPTNO + REGIST_DATE 순으로 변경할 필요가 있다.
2 IDX_EMP_01 인덱스를 이용하여 DEPTNO=47 조건을 효율적으로 탐색할 수 있다.
3 REGIST DATE 컬럼에 대한 조건을 범위 검색이 아닌 동등 검색 조건으 로 변경하면 IDX EMP_01 인덱스를 효율적으로 활용할 수 있다. 
4 IDX_EMP_01 인덱스는 테이블 내의 대량 데이터를 탐색할 때 매우 유용하게 활용될 수 있는 인덱스 형식이다.

정답은 2번과 3번입니다.

2번 설명이 맞습니다. 인덱스의 첫 번째 컬럼인 DEPTNO가 검색 조건으로 사용되었으므로 IDX_EMP_01 인덱스를 이용하여 DEPTNO=47 조건을 효율적으로 탐색할 수 있습니다.

3번 설명도 맞습니다. REGIST_DATE 컬럼에 대한 조건을 범위 검색이 아닌 동등 검색 조건으로 변경하면 IDX_EMP_01 인덱스를 효율적으로 활용할 수 있습니다. 하지만 이 경우 검색 범위가 너무 적어져 인덱스를 사용하지 않는 것이 더 효율적일 수 있습니다.

4번 설명은 잘못되었습니다. IDX_EMP_01 인덱스는 REGIST_DATE와 DEPTNO 순으로 생성되었으므로, REGIST_DATE가 더 나중에 나온 검색 조건이라면 인덱스를 사용할 수 없습니다. 대량 데이터를 탐색할 때는 인덱스 범위 스캔 대신 풀 스캔을 고려해야 합니다.

 

 

728x90