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)