SQLD관리 구문옵티마이저/인덱스난이도 2MCQ

SQLD 옵티마이저/인덱스 기출문제 #147

문제

다음 SQL의 실행계획에 대한 설명으로 가장 적절한 것은?

SQL
SELECT * FROM EMPLOYEE WHERE UPPER(NAME) = 'KIM'; -- NAME 컬럼에 인덱스 존재

① NAME 인덱스를 Range Scan으로 사용한다 ② NAME 인덱스를 Index Full Scan으로 사용한다 ③ 함수 기반 인덱스가 없으면 Table Full Scan을 수행한다 ④ CBO는 항상 인덱스를 우선적으로 사용한다

정답

3

해설

③ 정답. UPPER() 함수를 사용하면 기존 인덱스를 사용할 수 없어 Table Full Scan이 수행된다. 함수 기반 인덱스(Function Based Index)가 있어야 인덱스 사용이 가능하다. ① ② 함수가 적용된 컬럼은 일반 인덱스로 검색할 수 없다. ④ CBO는 비용을 계산하여 최적의 방법을 선택하며, 함수 사용시에는 인덱스를 사용할 수 없다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] 옵티마이저/인덱스 관리 구문 기출 #147 | sqldpass