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 |
---------------------------------------------------------------------------------------------------