data 는 30만건 정도 됩니다.

기존에는 검색 필드 를 단일로  선택해서 검색 했었습니다.

요청이 들어와서 통합 검색을 하다보니 저렇게 or 구문이 많습니다.

검색 하면 6초 정도 걸리는데요.

p_idx 는 PRIMARY KEY CLUSTERED  로 잡혀 있습니다.

replace 처리를 뻬면 3초 가 줄어 들긴 하는데요.

띄워 쓰기 를 해도 검색이 되게 해 달라는 요청이 있어서 저렇게 공백 처리를 했습니다.

좀더 빠르게 하고 싶습니다.

 

select top 100 a.p_tci_no, b.addr1 as cart, v_key --많아서 일부만 표시 했습니다.

from product a inner join product_pack b on a.p_tci_no = b.p_tci_no
where a.p_idx>0 and b.p_idx>0
and
 (
  Replace(a.p_tci_no,' ','') = 'ab' or
  Replace(a.p_product,' ','') like '%검색어%' or
  Replace(a.p_casno,' ','') = 'ab' or
  Replace(a.p_elements,' ','') like '%검색어%' or
  Replace(a.p_tci_no,' ','') = 'ab' or
  Replace(a.pdongil1_,' ','') like '%검색어%' or
  Replace(a.p_dongil2,' ','') like '%검색어%' or
  Replace(a.p_dongil3,' ','') like '%검색어%' or
  Replace(a.p_dongil4,' ','') like '%검색어%' or
  Replace(a.p_dongil5,' ','') like '%검색어%' or
  Replace(a.p_dongil6,' ','') like '%검색어%' or
  Replace(a.p_dongil7,' ','') like '%검색어%'

 )

and a.p_idx not in (

select top 0 a.p_idx from product a inner join product_pack b on a.p_tci_no = b.p_tci_no where a.p_idx>0
and b.p_idx>0 and

 (
  Replace(a.p_tci_no,' ','') = 'ab' or
  Replace(a.p_product,' ','') like '%검색어%' or
  Replace(a.p_casno,' ','') = 'ab' or
  Replace(a.p_elements,' ','') like '%검색어%' or
  Replace(a.p_tci_no,' ','') = 'ab' or
  Replace(a.p_dongil1,' ','') like '%검색어%' or
  Replace(a.p_dongil2,' ','') like '%검색어%' or
  Replace(a.p_dongil3,' ','') like '%검색어%' or
  Replace(a.p_dongil4,' ','') like '%검색어%' or
  Replace(a.p_dongil5,' ','') like '%검색어%' or
  Replace(a.p_dongil6,' ','') like '%검색어%' or
  Replace(a.p_dongil7,' ','') like '%검색어%'
 )

order by A.p_idx desc )

order by A.p_idx desc

No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 466
7409 반복 업데이트? 에 관한 질문드려요 [3] WhoAmI 2013.12.07 4148
7408 여러개의 필드를 하나의 필드로 만드는 qEURY 알려 주세요. [1] 항상비기너2 2013.12.06 3812
7407 필드명 정확하지 않을때 필드값을 가지고 필드명을 찾을 수 있나요? [4] dolphine 2013.12.06 4114
7406 XML type에서 white space 유지하기 [2] 재우 2013.12.06 3908
» 쿼리 속도 개선 좀 문의 드립니다. [6] 죠리퐁 2013.12.06 5534
7404 MSSQL 쿼리에서 테이블명 기술할 때 질문 [3] sams 2013.12.06 19285
7403 sql 2000에서 되던 쿼리가 sql2008R2 에선 안되네요;; [4] 마니워니 2013.12.05 4436
7402 선배님들 인덱스에 관하여 질문이 있습니다. [4] alima 2013.12.05 4409
7401 주어진 시간으로 일자와 오전 오후를 리턴할려고 하면 어떻게 하나요? [3] 동도리군 2013.12.05 4445
7400 bulk insert와 insert bulk의 차이점...은 뭔가요?? ^^;; [2] 없다 2013.12.04 6369
7399 쿼리 과부하 체크와 관련하여 질문드립니다. [4] dontcryme 2013.12.04 6766
7398 두테이블 비교해서 값 뽑기 질문이요. [8] 오리지널 2013.12.03 4676
7397 암호가 제공된 로그인의 암호화 일치하지 않습니다. 로그.. [3] 웨퐁 2013.12.03 9408
7396 bigint때문에 [1] 마에스트로 2013.12.02 3731
7395 SQL 작성하는 문제의 답을 알고싶습니다. [6] 몰러 2013.12.01 10765
7394 두테이블 비교해서 없는 값을 뽑고싶습니다. 오리지널 2013.11.30 5316
7393 특정 필드의 긴문자열을 여러로우로 분리하기 질문입니다. [3] 유앤미 2013.11.29 5028
7392 MSSQL 대량으로 Insert 할때...... [3] 석호 2013.11.29 31400
7391 트리거 생성시 deleted에서 text 사용하는 방법 없나요? [2] 아네사 2013.11.29 3867
7390 SQL Server Management Studio Express 에서 csv 파일 내보내기(백업하기) 기능 질문 주인님아 2013.11.29 6197





XE Login