SQLP CBT 기출문제 예상문제 464

다음 문제를 풀어보세요.

다음은 SQL 재사용과 관련된 옵티마이저의 동작에 대한 설명이다. 아래 SQL 문과 실행 환경을 고려할 때, 예상되는 동작으로 가장 적절한 것을 고르시오.

[테이블 구조]

CREATE TABLE ORDERS (
    ORDER_ID NUMBER PRIMARY KEY,
    CUSTOMER_ID NUMBER,
    ORDER_DATE DATE,
    AMOUNT NUMBER
);

CREATE INDEX IDX_ORDERS_CUSTOMER_ID ON ORDERS (CUSTOMER_ID);

[SQL 문]

SELECT * FROM ORDERS WHERE CUSTOMER_ID = :cust_id AND ORDER_DATE > :start_date;

[실행 환경]

  • CUSTOMER_ID 컬럼에 대한 데이터 분포는 매우 고르지 않다. (일부 고객 ID는 주문량이 매우 많음)
  • :cust_id:start_date는 애플리케이션에서 바인드 변수로 전달된다.
  • OPTIMIZER_MODEALL_ROWS이다.
  • CURSOR_SHARINGEXACT로 설정되어 있다가 FORCE로 변경되었다.