SQLD관리 구문난이도 3MCQ

SQLD 관리 구문 기출문제 #1396

문제

다음 테이블과 인덱스 상황에서 CBO가 인덱스 스캔 대신 FULL TABLE SCAN을 선택할 가능성이 가장 높은 경우는?

SQL
CREATE TABLE customer_orders (id, customer_id, order_date, amount); -- 총 1,000,000건의 데이터 CREATE INDEX idx_customer ON customer_orders (customer_id); -- customer_id 값은 1~100 범위에 균등 분포

① SELECT * FROM customer_orders WHERE customer_id = 1; ② SELECT * FROM customer_orders WHERE customer_id IN (1, 2); ③ SELECT * FROM customer_orders WHERE customer_id BETWEEN 1 AND 10; ④ SELECT * FROM customer_orders WHERE customer_id BETWEEN 1 AND 80;

정답

4

해설

CBO는 비용 기반으로 실행 계획을 결정합니다. 데이터가 균등 분포되어 있을 때, customer_id가 1~80 범위면 전체 데이터의 80%를 조회하게 됩니다. 일반적으로 전체 데이터의 15-20% 이상을 조회할 때는 인덱스 스캔보다 FULL TABLE SCAN이 더 효율적이므로 CBO가 테이블 스캔을 선택할 가능성이 높습니다. ①②③은 상대적으로 적은 비율의 데이터를 조회하므로 인덱스 스캔이 선택될 가능성이 높습니다.

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

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

[SQLD] 관리 구문 기출 #1396 | sqldpass