본문 바로가기

Oracle Text

Oracle Text (오라클 텍스트) - Text Index 관리할때 주의사항 Oracle Text 인덱스를 사용할 때 주의해야 할 부분이 있습니다. Text Index 를 만들고나서 테이블에 데이터가 추가되는 경우에 인덱스에 자동으로 반영되지 않습니다. 이 부분이 일반 인덱스와 좀 다른 점입니다. 일반 인덱스의 경우에는 테이블에 데이터가 추가되면 그 즉시 인덱스에도 함께 반영되는데, Text 인덱스는 아래와 같이 반영되지 않아서 조회가 되지 않는 상황이 발생합니다. 이걸 일반 인덱스처럼 똑같이 만들어 줄수도 있고, 특정 시점에 비동기적으로 수행되게 할 수도 있고, 완전 수동으로 관리할 수도 있습니다. 각각의 구문은 다음과 같습니다. SQL> create index T1_IDX1 on T1(text) indextype is ctxsys.context parameters ('sync.. 더보기
Oracle Text 인덱스 생성/삭제시 Error ORA-29855, ORA-20000, DRG-50857, DRG-10502, DRG-10507 Oracle Text Index 생성 또는 삭제 할때 아래와 같은 에러를 만나는 경우가 있습니다. 분명히 처음에는 잘 되었었는데, 다시 지웠다 만들다 보면 이런 에러를 만나곤 합니다. SQL> create index T1_IDX1 on T1(text) indextype is ctxsys.context; create index T1_IDX1 on T1(text) indextype is ctxsys.context * ERROR at line 1: ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine ORA-20000: Oracle Text error: DRG-50857: oracle error in drixmd.PurgeKGL ORA-2.. 더보기
Oracle Text (오라클 텍스트) - "like" SQL문 빠르게 하는 방법 SQL문 만들때 like 연산을 많이 사용합니다. 데이터가 정확히 일치하지 않아서 like '%...%' 형태로 조회해야 하는 경우가 많기 때문이죠~ 하지만, 이 like SQL문에서 검색문자열 앞에 % 가 있는 경우에는 인덱스를 타지 않거나, Index Fast Full Scan 을 하게 됩니다. 인덱스를 통째로 읽어서 찾는 겁니다. Tabel Full Scan 과 비슷합니다. 따라서 많이 느리겠죠~~ ex) where A like '%노을' 이런 경우에, 빠르게 할 수 있는 방법이 있습니다. 바로 "Oracle Text" 라는 기능입니다. 예전에는 Intermedia Text 라고 불렸었습니다. 또는 Domain Index 라고 부르는 사람도 있고, Text Index 라고 부르는 사람도 있습니다. .. 더보기