인덱스로 구성된 컬럼의 max() 값을 구하는 방법은 full scan을 야기하므로
인덱스를 역순으로 검색하되 조건에 만족하는 첫번째 row만을 가져오도록 변경하는 방법
[source]
SELECT MAX(RCV_DATE)
FROM 테이블1
WHERE RCV_DATE_TYPE='RS'
AND RCV_DA <= '20040329'
[target]
SELECT /* index_desc(a 인덱스1) */ rcv_date
FROM 테이블1
WHERE RCV_DATE_TYPE = 'RS'
AND RCV_DATE <='20040329'
and rownum=1;
'Database' 카테고리의 다른 글
TABLESPACE USAGE (0) | 2014.08.14 |
---|---|
SQL 튜닝 가이드 (0) | 2014.08.04 |
오라클 Parallel Hint (0) | 2014.08.04 |
Database 용어 (0) | 2012.10.11 |
Oracle DB(User 생성) & 시작/정지 (0) | 2012.10.04 |