SQLD 기출문제 예상문제 256번
다음 문제를 풀어보세요.
다음 중 아래 SQL의 성능을 최적화하기 위한 인덱스 생성 전략으로 가장 적절한 것을 고르시오.
[테이블 구조]
CREATE TABLE SALES (
SALE_ID NUMBER PRIMARY KEY,
PRODUCT_ID VARCHAR2(20) NOT NULL,
CUSTOMER_ID NUMBER NOT NULL,
SALE_DATE DATE NOT NULL,
AMOUNT NUMBER(10, 2) NOT NULL
);
[상황 설명]
SALES 테이블은 수천만 건 이상의 대용량 데이터가 저장되어 있으며, PRODUCT_ID와 SALE_DATE 컬럼에 대한 인덱스는 현재 존재하지 않습니다. 아래 SQL은 특정 제품의 최근 일주일간 매출 합계를 조회하는 쿼리로, 업무상 매우 빈번하게 수행되고 있습니다. 현재 이 쿼리의 수행 시간이 매우 길어 성능 개선이 필요합니다.
[문제의 SQL]
SELECT SUM(AMOUNT)
FROM SALES
WHERE SALE_DATE >= TRUNC(SYSDATE) - 7
AND SALE_DATE < TRUNC(SYSDATE)
AND PRODUCT_ID = 'P12345';