감사합니다!!!!!
신기하게도.. index 부분을 이어쓰면 201에러가 생기는군요.
그건 그렇고...
인덱스를 쓰려는 이유는 order by를 사용하지 않으려는 것입니다.
이때.. 역순으로 하려면 어떻게 하나요??
물론 order by는 쓰지 않고요..
그리고 full과 avoid_full은 잘 모르겠습니다.
자세히 설명좀...
또는 이런 것을 알려면 어떤 책을 봐야하는지도...
(또는 website)
정말 감사드립니다.
즐거운 하루 되시기 바랍니다.
-- man 님이 쓰신 글:
>> 예~ 구문은 맞습니다.
>>
>> 알기 쉽게 예제를 보여드리지요.
>>
>> select --+ index (e salary_indx)
>> name, salary
>> from emp e
>> where e.don = 1
>> and e.salary > 50000;
>>
>> 이렇게 할 경우 emp table에 만든 salary_indx 인덱스를 꼭 사용하라는 뜻입니다.
>> 이것은 질의 방식을 옵티마이저에 일임하는게 아니라 직접 사용자가 정해주는 것이겠지요.
>> 만일 하나의 인덱스가 있다면 그것을 사용할 것이며, 두개 이상의 인덱스가 있다면 cost 를 기준으로 리스트중 선택될 것입니다.
>> 또, 인덱스 이름을 쓰지 않는다면 그 테이블에 있는 모든 인덱스가 고려될 것입니다. 시퀀셜 쿼리는 해당 테이블이 인덱스를 가지고 있지 않는 한 고려되지 않을 것입니다.
>>
>> 참고로 다른 예제도 가르쳐 드리면,
>>
>> 같은 명령에 avoid_index 를 쓰면 index 사용을 피하라는 것이고,
>>
>> select --+ full(e)
>> name, salary
>> from emp e;
>>
>> 는 시퀀셜을 사용하라는 뜻이며,
>>
>> select --+ avoid_full(e), index (e salary_index)
>> name, salary
>> from emp e
>> where e.dno = 1
>> and e.salary > 50000;
>>
>> 은 무슨 뜻인지 아시겟지요...^^;
>>
>> 혹 도움이 될 까 해서요...
>>
>> p.s) 지금은 informix를 쓰고 있지 않아 많이 까먹었습니다. 혹시 틀린 대답
>> 이 나오더라도 이해해 주십시요... 감솨!
>>
>>
>> -- 고재성 님이 쓰신 글:
>> >> 혹시 아시는 분 계십니까???
>> >>
>> >> 아래에 있는 글 보면...
>> >> select -- + index(...) field from table
>> >>
>> >> 이렇게 있는 것 같던데...
>> >>
>> >> 그럼.
|