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_IDSALE_DATE 컬럼에 대한 인덱스는 현재 존재하지 않습니다. 아래 SQL은 특정 제품의 최근 일주일간 매출 합계를 조회하는 쿼리로, 업무상 매우 빈번하게 수행되고 있습니다. 현재 이 쿼리의 수행 시간이 매우 길어 성능 개선이 필요합니다.

[문제의 SQL]

SELECT SUM(AMOUNT)
FROM SALES
WHERE SALE_DATE >= TRUNC(SYSDATE) - 7
  AND SALE_DATE < TRUNC(SYSDATE)
  AND PRODUCT_ID = 'P12345';