SQLP CBT 기출문제 예상문제 461

다음 문제를 풀어보세요.

아래 SQL 쿼리의 실행 계획을 보고, `TABLE ACCESS BY INDEX ROWID` 작업의 비용이 높아지는 가장 주된 원인을 고르시오.

[테이블 구조]

CREATE TABLE LOG_DATA (
  LOG_ID NUMBER PRIMARY KEY,
  LOG_DATE DATE,
  USER_ID VARCHAR2(50),
  MESSAGE VARCHAR2(4000)
);

CREATE INDEX IDX_LOG_DATE_USER ON LOG_DATA (LOG_DATE, USER_ID);

[SQL 쿼리]

SELECT * FROM LOG_DATA
WHERE LOG_DATE BETWEEN '2023-01-01' AND '2023-01-02' AND USER_ID = 'user_001';

[옵티마이저 실행 계획 예시 (Oracle)]

---------------------------------------------------------------------------------------------------
| Id  | Operation                     | Name                  | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |                       | 10000 |  1170K|   500   (0)| 00:00:06 |
|*  1 |  TABLE ACCESS BY INDEX ROWID  | LOG_DATA              | 10000 |  1170K|   500   (0)| 00:00:06 |
|*  2 |   INDEX RANGE SCAN            | IDX_LOG_DATE_USER     | 10000 |       |    50   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------