TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-05-16 |
제목 | INDEX_DESC HINT | ||
---|---|---|---|
INDEX_DESC HINT 사용법 ======================= PURPOSE --------- 다음은 INDEX_DESC HINT를 사용하는 방법에 대하여 알아보기로 한다. Explanation ------------- - INDEX_DESC hint 사용법 select /*+ index_desc(table_alias_name index_name) */ * from table_name table_alias_name where key1 = :b1 (index_name index가 key1 column에 생성되어 있다) 윗 문장에 rownum=1 조건을 추가하면 key가 제일 큰 것 하나만 조회되므로, max function의 기능을 대신할 수 있다. * SINGLE TABLE QUERY에서는 HINT 절에 table 명을 주는 것이 원칙이다. * Hint 내의 table_name은 alias를 사용하였을 경우에는 반드시 table alias name으로 지정하여야 한다. * 그 이유는 다음과 같이 SQL이 사용될 경우도 있기 때문니다. (SELF-JOIN) select /*+ index_desc(a a_pk) */ * from t1 a, t1 b where a.key1 = 'a' and a.key1 = b.prev_c1(+) and a.seq = b.pseq_no(+) and rownum = 1 위와 같이 동일한 TABLE이 FROM 절 뒤에 복수로 나오는 경우 (Recursive 관계)가 있을 수 있는데 이 때 Hint 절의 table 명을 유일하게 줄 수가 없으므로 반드시 table alias name을 주어야 원하는 답이 나온다. Reference Documents -------------------- none 3826 보기 태그: |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |