반응형
- 참고 http://database.sarang.net/?inc=read&aid=35146&criteria=oracle&subcrit=&id=&limit=&keyword=&page=
- ....
오라클 초보입니다.
CLOB 필드를 가진 데이터가 7만건 정도 있습니다.
초기 개발할때는 몰랐는데 데이터가 7만건이 쌓이니까 CLOB 에서 LIKE 검색을 하니 몇십초가 걸리는겁니다.
그래서 CTX 인덱스를 만들어서 CONTAINS 를 이용하니 2초 정도만에 검색이 되더군요.
그런데...
대소문자를 구별하는것 같습니다.
대소문자를 구별하지 않고 검색하는 방법은 없을까요?
DBMS_LOB.INSTR 을 이용해보니 4초 정도 걸려서 부득이하게 CONTAINS 를 쓸수밖에 없거든요.
그리고...
사실 CONTAINS 사용법도 잘 모릅니다.
게시판 두루 두루 검색해서 겨우 흉내낸것이 contains(필드명, 검색할 단어) > 0 이정도인데...
어떤 분의 게시판에서는 contains(필드명, 검색할 단어, 1) > 0 이렇게 쓰시기도 하더군요.
이건 또 무슨 차이이죠?
CLOB 필드를 가진 데이터가 7만건 정도 있습니다.
초기 개발할때는 몰랐는데 데이터가 7만건이 쌓이니까 CLOB 에서 LIKE 검색을 하니 몇십초가 걸리는겁니다.
그래서 CTX 인덱스를 만들어서 CONTAINS 를 이용하니 2초 정도만에 검색이 되더군요.
그런데...
대소문자를 구별하는것 같습니다.
대소문자를 구별하지 않고 검색하는 방법은 없을까요?
DBMS_LOB.INSTR 을 이용해보니 4초 정도 걸려서 부득이하게 CONTAINS 를 쓸수밖에 없거든요.
그리고...
사실 CONTAINS 사용법도 잘 모릅니다.
게시판 두루 두루 검색해서 겨우 흉내낸것이 contains(필드명, 검색할 단어) > 0 이정도인데...
어떤 분의 게시판에서는 contains(필드명, 검색할 단어, 1) > 0 이렇게 쓰시기도 하더군요.
이건 또 무슨 차이이죠?
- ....
CREATE INDEX test_clob_idx
ON test_clob(notes)
INDEXTYPE IS ctxsys.context;
CREATE INDEX BOARD_CLOB_IDX
ON BOARD(B_CONTENT)
INDEXTYPE IS CTXSYS.CONTEXT;
CREATE INDEX BOARD_CLOB_IDX
ON BOARD(B_TITLE,B_CONTENT)
INDEXTYPE IS CTXSYS.CONTEXT;
CREATE INDEX BOARD_CLOB_IDX
ON BOARD(B_CONTENT)
INDEXTYPE IS ctxsys.context
parameters ('storage storage_pref');
ON test_clob(notes)
INDEXTYPE IS ctxsys.context;
CREATE INDEX BOARD_CLOB_IDX
ON BOARD(B_CONTENT)
INDEXTYPE IS CTXSYS.CONTEXT;
CREATE INDEX BOARD_CLOB_IDX
ON BOARD(B_TITLE,B_CONTENT)
INDEXTYPE IS CTXSYS.CONTEXT;
CREATE INDEX BOARD_CLOB_IDX
ON BOARD(B_CONTENT)
INDEXTYPE IS ctxsys.context
parameters ('storage storage_pref');
반응형
'Story > oracle' 카테고리의 다른 글
VirtualBox 에서 The virtual machine.. has terminated unexpectedly during startup with exit code 1 (0x1). More details may be available in 오류발생 (0) | 2017.06.22 |
---|---|
`BIN$+......==$0` 알수없는 테이블 (0) | 2012.03.08 |
oracle 에서 랜덤값 (0) | 2012.03.08 |
오라클 테이블 정의서 (table layout) 출력하기 query 문 (0) | 2011.03.05 |
pear oracle 외부서버 연결 (0) | 2009.05.08 |