'오라클 테이블 인덱스'에 해당되는 글 1건

  1. 2020.05.21 text index, contains
DB2020. 5. 21. 17:27

대용량 테이블에서 특정 설명 컬럼에서 값을 조회할 때 사용되는 index다.

 

create index 인덱

스명 on 테이블명(컬럼명) indextype is ctxsys.context;

위와 같은 식으로  text 인덱스를 사용한다.

 

데이터 건수가 엄청 많은 테이블에서 text 내용을 검색할 때 유리하다.

 

총 3400만건의 데이터에서 Dox라는 검색어로 조회를 하니

19초 가량이 걸렸다.

 

contains 함수를 이용하여, Dox 검색어를 조회하니. 0.7초의 조회 결과가 나온다.

생각보다 괜찮은 것 같다.

 

결과값이 달라서 확인해보니, contains 함수는 대소문자 구분없이 검색을 하는 듯 하다.

위에 쿼리에 upper 함수를 사용해서 조회를 해보니 245760이 나왔는데.

시간은 36초 걸렸다.

 

단 요즘에, 18c 오라클에서 같은 트랜잭션 내에서 서로 다른 DB 업데이트를 하는 경우가 있을 때

text index가 설정된 곳에서 분산트랜잭션 오류가 발생하는 경우가 많이 있다.

 

DBA에게 문의도 해보고 하지만 아직 확실한 결과를 얻지 못했다.

대용량 텍스트 검색에서 사용하면 유용할 듯 싶다.

 

'DB' 카테고리의 다른 글

오라클 instr, substr을 이용한 특정문자열 자르기.  (0) 2020.05.21
오라클 merge  (0) 2020.05.21
두 날짜 시간의 차 구하기..  (0) 2013.07.30
오라클 Outer 조인시 주의점.  (0) 2013.07.09
Posted by 달려라곰간지