2013년 4월 21일 일요일

Oracle에서 like와 substr 중 어느 것이 빠를까?

업무 중에 메뉴코드를 만들며 설계를 하다가 메뉴코드 조합 상 어쩔 수 없이

LIKE 나 Substr을 사용하게 되었다.

비슷한 기능을 하는 것으로 알고 있는 위의 방식 중 어느 것이 더 빠를까?

여기저기 찾아본 결과 LIKE가 빠르다고 한다.

물론 LIKE 'searce%' 이 형식이 빠르다는 것이다.

근데!! 여기서 Substr로 빠르게 할 수 있는 방법은 없을까? 고민하다가 이런 생각을 했다

ORACLE의 FBI를 사용하면?

그렇다! FBI(Founction Based Index)를 이용하면 속도(Cost)가 빨라진 다는 것을 찾았다!

그럼 어떻게 쓰는 걸까?


CREATE INDEX jini_substr_idx
    ON JINI_TABLE( substr( field,1,6 ) );


위와 같이 인덱스를 생성하면 되고 아래와 같이 사용하면 된다.


SELECT ... FROM ... WHERE substr(field,1,6) = 'search';


끝!

댓글 없음:

댓글 쓰기