안녕하세요.
우선.. firebird님 스탠다드, 엔터프라이즈버젼의 차이점을 얘기해주셔서 감사합니다. (문태준님의 추가설명도 감사드림다^^)
방금 약 3000개정도의 데이타가 들어있는 게시판에서
본문(CLOB type)의 내용을 다음과 같이 질의해보니...
SELECT * FROM TB_IB_ADMIN12 WHERE DBMS_LOB.INSTR(B_CONTENT, '안녕하세요')<>0;
지금 테스트중인 서버라 사용자가 아무도 없는데..
약 7초가 걸리는군요.
속도 보완책은 없을까요?
그럼... 조언 부탁드립니다.
>>firebird 님께서 쓰시길<<
:: 회사에서 php로 게시판 구현하면서 썼던 소스 일부입니다. 참고가 되시길 바랍니다.
::
:: $query = "select ".BOARD_FIELD_ARTICLE_NO.
:: " from ".BOARD_TABLE_ARTICLE.
:: " where ".BOARD_FIELD_BOARD_ID."='".$HTTP_GET_VARS["id"]."'".
:: " and ".BOARD_FIELD_ARTICLE_NO.">$number";
::
:: // CLOB를 사용하는 경우의 예제
:: if (BOARD_USE_CLOB) {
:: $query .= " and dbms_lob.instr(".$HTTP_GET_VARS["field"].",'".$HTTP_GET_VARS["word"]."')<>0";
::
:: // BLOB를 사용하는 경우의 예제
:: } else {
:: $hex=bin2hex($HTTP_GET_VARS["word"]);
:: $query .= " and dbms_lob.instr(".$HTTP_GET_VARS["field"].",hextoraw('$hex'))<>0";
:: }
::
:: 음... 쿼리문 일부만 가져다 놓으니 좀 이해가 어려울지도 모르겠네요.
:: 일단 bin2hex 함수와 hextoraw 함수 사용 부분만 주목해서 보시면 이해하실 수 있을
:: 겁니다.
::
:: >>김현 님께서 쓰시길<<
::
:: :: 안녕하세요.
:: :: 게시판을 오라클로 만드는중 본문 내용의 한계를 없애기 위해 내용을 BLOB type으로
:: :: 저장했습니다.
:: :: 저장하고 조회하는건 잘 되는데...
:: :: 게시물이 많아지면 내용 검색을 할때 무척 골치 아플것 같더군요...
:: :: 하나 하나 내용을 조회하여 검색하는건 무척 비효율적일 것 같고
:: :: BLOB는 간단한 Query로 조회가 안되는 간단하게 할 수는 없을것 같은데...
:: :: 혹시 BLOB 데이터를 쉽게 일반 query로 Varchar type 조회하듯 할 수 있는
:: :: 방법이 없을까요?
:: :: 여기서 찾아보니 Intermedia를 사용하는 방법이 있는것 같긴 한데...
:: :: 그것이 맞는건지도 잘 모르겠고...
:: :: 아시는 분 좀 도와주세요. 감사합니다.
|