SQLD 기출문제 예상문제 260

다음 문제를 풀어보세요.

다음 상황에서 옵티마이저가 해시 조인(Hash Join)을 선택할 가능성이 가장 높은 이유를 고르시오.

[테이블 구조]

CREATE TABLE CUSTOMERS (
    CUSTOMER_ID NUMBER PRIMARY KEY,
    CUSTOMER_NAME VARCHAR2(100),
    CITY VARCHAR2(50)
);

CREATE TABLE ORDERS (
    ORDER_ID NUMBER PRIMARY KEY,
    CUSTOMER_ID NUMBER,
    ORDER_DATE DATE,
    AMOUNT NUMBER,
    CONSTRAINT FK_CUSTOMER FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMERS(CUSTOMER_ID)
);

[상황 설명]

ORDERS 테이블은 약 1,000만 건의 대용량 데이터가 적재되어 있으며, CUSTOMERS 테이블은 약 10만 건의 데이터가 적재되어 있습니다. 두 테이블은 CUSTOMER_ID 컬럼으로 조인됩니다. CUSTOMER_ID 컬럼에는 양쪽 테이블 모두 인덱스가 존재합니다.

[SQL 쿼리]

SELECT
    C.CUSTOMER_NAME,
    O.ORDER_ID,
    O.AMOUNT
FROM
    CUSTOMERS C JOIN ORDERS O
    ON C.CUSTOMER_ID = O.CUSTOMER_ID
WHERE
    C.CITY = 'Seoul';