문제
다음 상황에서 CBO가 인덱스 대신 FULL TABLE SCAN을 선택할 가능성이 가장 높은 경우는?
-- 테이블: 100만 건, 인덱스: IDX_STATUS(STATUS) -- STATUS 컬럼 값 분포: 'A'(95만 건), 'B'(3만 건), 'C'(2만 건)
① SELECT * FROM TABLE WHERE STATUS = 'C' ② SELECT * FROM TABLE WHERE STATUS = 'B' ③ SELECT * FROM TABLE WHERE STATUS = 'A' ④ SELECT * FROM TABLE WHERE STATUS IN ('B', 'C')
정답
3번
해설
③ 정답: STATUS = 'A'는 전체 데이터의 95%(95만/100만)를 조회하므로, 인덱스를 통한 랜덤 액세스보다 FULL TABLE SCAN이 더 효율적입니다. CBO는 일반적으로 전체 데이터의 5-15% 이상 조회 시 테이블 스캔을 선택합니다. ① 틀림: 2%만 조회하므로 인덱스 스캔이 효율적입니다. ② 틀림: 3%만 조회하므로 인덱스 스캔이 효율적입니다. ④ 틀림: 5%만 조회하므로 인덱스 스캔이 효율적입니다.