SQLD 기출문제 예상문제 63

다음 문제를 풀어보세요.

다음 중 아래 테이블 구조와 SQL 쿼리를 참고하여, 성능 관점에서 가장 효율적인 쿼리 튜닝 방안을 고르시오.

[테이블 구조]

CREATE TABLE ORDERS (
    ORDER_ID INT PRIMARY KEY,
    CUSTOMER_ID INT,
    ORDER_DATE DATE,
    PRODUCT_ID INT,
    QUANTITY INT,
    FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMERS(CUSTOMER_ID),
    FOREIGN KEY (PRODUCT_ID) REFERENCES PRODUCTS(PRODUCT_ID)
);

CREATE TABLE CUSTOMERS (
    CUSTOMER_ID INT PRIMARY KEY,
    CUSTOMER_NAME VARCHAR(255),
    CITY VARCHAR(255)
);

CREATE TABLE PRODUCTS (
    PRODUCT_ID INT PRIMARY KEY,
    PRODUCT_NAME VARCHAR(255),
    PRICE DECIMAL(10, 2)
);

[SQL 쿼리]

SELECT
    C.CUSTOMER_NAME,
    SUM(O.QUANTITY * P.PRICE) AS TOTAL_SPENT
FROM
    ORDERS O
JOIN
    CUSTOMERS C ON O.CUSTOMER_ID = C.CUSTOMER_ID
JOIN
    PRODUCTS P ON O.PRODUCT_ID = P.PRODUCT_ID
WHERE
    O.ORDER_DATE BETWEEN '2023-01-01' AND '2023-12-31'
GROUP BY
    C.CUSTOMER_NAME
ORDER BY
    TOTAL_SPENT DESC;