SQLD 기출문제 예상문제 105

다음 문제를 풀어보세요.

다음은 온라인 쇼핑몰의 주문 테이블(ORDERS)과 고객 테이블(CUSTOMERS)에 대한 SQL 튜닝 시나리오입니다. 주문량이 많은 특정 기간 동안 고객별 총 주문 금액을 조회하는 쿼리의 성능을 개선하기 위해 인덱스를 생성하려고 합니다. 다음 중 가장 효과적인 인덱스 구성 방안을 고르시오.

-- ORDERS 테이블 구조
CREATE TABLE ORDERS (
    ORDER_ID NUMBER PRIMARY KEY,
    CUSTOMER_ID NUMBER NOT NULL,
    ORDER_DATE DATE NOT NULL,
    ORDER_AMOUNT NUMBER NOT NULL,
    FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMERS(CUSTOMER_ID)
);

-- CUSTOMERS 테이블 구조
CREATE TABLE CUSTOMERS (
    CUSTOMER_ID NUMBER PRIMARY KEY,
    CUSTOMER_NAME VARCHAR2(50) NOT NULL,
    CUSTOMER_ADDRESS VARCHAR2(100)
);

-- 성능 개선 대상 쿼리
SELECT
    C.CUSTOMER_NAME,
    SUM(O.ORDER_AMOUNT) AS TOTAL_ORDER_AMOUNT
FROM
    ORDERS O
JOIN
    CUSTOMERS C ON O.CUSTOMER_ID = C.CUSTOMER_ID
WHERE
    O.ORDER_DATE BETWEEN DATE '2023-01-01' AND DATE '2023-01-31'
GROUP BY
    C.CUSTOMER_NAME
ORDER BY
    TOTAL_ORDER_AMOUNT DESC;