문제
다음 테이블과 복합 인덱스가 있을 때, 주어진 쿼리의 실행 결과로 가장 적절한 것은?
SQLCREATE TABLE PRODUCT ( CATEGORY VARCHAR(10), PRICE NUMBER, STATUS VARCHAR(10), PRODUCT_ID NUMBER ); CREATE INDEX IDX_PRODUCT ON PRODUCT(CATEGORY, PRICE, STATUS); INSERT INTO PRODUCT VALUES('A', 100, 'Y', 1); INSERT INTO PRODUCT VALUES('A', 200, 'N', 2); INSERT INTO PRODUCT VALUES('B', 150, 'Y', 3); INSERT INTO PRODUCT VALUES('B', 300, 'Y', 4); SELECT COUNT(*) FROM PRODUCT WHERE CATEGORY = 'A' AND PRICE > 150 AND STATUS = 'Y';
① 0 ② 1 ③ 2 ④ 4
정답
1번
해설
조건을 만족하는 데이터를 분석하면: CATEGORY='A'인 데이터는 (100,'Y'), (200,'N')이고, 이 중 PRICE>150 조건을 만족하는 것은 (200,'N')뿐입니다. 하지만 STATUS='Y' 조건까지 만족하는 데이터는 없으므로 결과는 0입니다. 복합 인덱스 IDX_PRODUCT(CATEGORY, PRICE, STATUS)는 모든 조건에서 효율적으로 사용됩니다.