The Index_DESC Hint Syntax Example The INDEX_DESC processes an index in descending order of how it was built. This hint will not be used if more than one table exists in the query.
----------------------------------------------------------------------------------------- 출처는 잘모르겠습니다~ 문제시 삭제처리하겠습니다^^
아래 내용을 참고하시고 사용하는 DB가 오라클이라면 반드시 힌트에 대해 관심을 가지시기 바라구요 옵티마이저 수행 경로가 정상적인 경우와 비정상인 경우 성능 차이는 장난 아닙니다. 심지어 10배 이상 나는 경우도 있구요,,, 인덱스 힌트를 사용하게 되면 오라클 옵티마이저는 기술된 인덱스를 써야 한다는 것을 알게되며 이 경우 Table Full Scan을 하지 않게 되죠... 물론 사용되는 인덱스에 대해 COST는 계산하지 않고 존재하는 인덱스라면 사용을 한다는 이야깁니다... 만약 인덱스 힌트가 사용되지 않았지만 인덱스를 사용할 수 있는 경우라면 여러 인덱스중 COST가 적게 드는 인덱스를 하나 선택하여 사용하게 되구요...
/*+ INDEX ( table [index [index]...] ) */ table은 테이블 명이나 Alias 명 입니다. 예) DELETE /*+ INDEX(idx_emp_status)*/ *** INDEX_ASC : INDEX 힌트와 거의 유사하며 단지 다른 부분이라면 인덱스 영역의 검색되는 데이터가 오름차순으로 Scan 되는 것이죠... INDEX_ASC
/*+ INDEX_DESC (table index[index .. index]) */ 위 INDEX_ASC나 INDEX_DESC를 적절히 사용하시면 ORDER BY 구문을 사용하지 않아도 되는 경우가 대부분 입니다.(ORDER BY를 많은 건의 데이터에 대해 사용하시면 성능에 악 영향을 줍니다) emp 테이블에 ename으로 인덱스가 있다면... select ename, sal ==> select /*+ index_asc(emp) */
사용 형식 select /*+ FULL(emp) */ ename, sal *** NO_INDEX : 기술된 테이블에 대해서는 인덱스를 사용하지 말라는 의미 select /*+ NO_INDEX(emp) */ ename, sal |
'ORACLE' 카테고리의 다른 글
Installation of Oracle 9i on fedora Core Linux 2,3,4,5 and 6 (0) | 2009.11.21 |
---|---|
오라클 설치 정리 (0) | 2009.11.21 |
Installation of Oracle 10g on Centos Linux 5 (0) | 2009.11.11 |
Oracle 10g 의 휴지통 기능 (0) | 2009.11.11 |
프로시져, 트리거의 이해-2009/02/20 (0) | 2009.11.11 |