SQLD 기출문제 예상문제 82

다음 문제를 풀어보세요.

다음은 주문 테이블과 고객 테이블에 대한 설명이다. 아래 SQL 쿼리의 실행 계획을 분석하고, 성능 개선을 위해 추가적으로 고려할 수 있는 인덱스 구성 방안으로 가장 적절한 것을 고르시오.

[테이블 구조]

CREATE TABLE CUSTOMER (
    CUSTOMER_ID VARCHAR2(10) PRIMARY KEY,
    CUSTOMER_NAME VARCHAR2(50),
    CITY VARCHAR2(50)
);

CREATE TABLE ORDERS (
    ORDER_ID NUMBER PRIMARY KEY,
    CUSTOMER_ID VARCHAR2(10),
    ORDER_DATE DATE,
    TOTAL_AMOUNT NUMBER,
    CONSTRAINT FK_CUSTOMER_ID FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMER(CUSTOMER_ID)
);

[SQL 쿼리]

SELECT
    C.CUSTOMER_NAME,
    SUM(O.TOTAL_AMOUNT)
FROM
    CUSTOMER C
JOIN
    ORDERS O ON C.CUSTOMER_ID = O.CUSTOMER_ID
WHERE
    C.CITY = 'Seoul'
    AND O.ORDER_DATE BETWEEN DATE '2023-01-01' AND DATE '2023-12-31'
GROUP BY
    C.CUSTOMER_NAME
HAVING
    SUM(O.TOTAL_AMOUNT) > 1000000;

[현재 인덱스 상황]

  • CUSTOMER 테이블: CUSTOMER_ID (PK)
  • ORDERS 테이블: ORDER_ID (PK), CUSTOMER_ID (FK)