2014. 8. 4. 14:42

인덱스로 구성된 컬럼의 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
Posted by 아도니우스