내가이 전체 텍스트 색인 테이블에 의존하는 간단한 쿼리를 크롤링옵니다,하지만 난 가 추가 또는 검색과 결합 CONTAINS있을 때 매우 느리게 실행됩니다. 실행 계획에서 볼 수 있듯이 두 가지 전체 텍스트 검색은 성능을 저하시킵니다. 내가 CONTAINS 중 하나만 사용하여 쿼리하거나 둘 다 쿼리하지 않는 경우 쿼리는 잠시 초입니다. 그러나 또는을 쿼리에 추가하면 쿼리가 적합하지 않게됩니다.것을 함유하고 더 OR 검색을 추가하면 쿼리
두 테이블이 너무 넓지는 않습니다 (하나는 42 개, 다른 하나는 21 개, 각 10 개는 FT로 색인 됨). 또는 매우 많은 레코드를 포함 할 수도 있습니다. 두 사람).
나는 세 함께 두 을 분할하여 성능을 해결할 수 있었다 자신의 이 쿼리를 선택 자신에 검색을 포함하고 다음 UNION. 이 UNION 해결 방법이 유일한 희망입니까?감사합니다.
SELECT a.CollectionID
FROM collections a
INNER JOIN determinations b ON a.CollectionID = b.CollectionID
WHERE a.CollrTeam_Text LIKE '%fa%'
OR CONTAINS(a.*, '"*fa*"')
OR CONTAINS(b.*, '"*fa*"')
실행 계획 (나는 이미지를 게시하기 전에 더 명성을 필요로 추측) : http://yfrog.com/7dslowcontainsj http://desmond.yfrog.com/Himg265/scaled.php?tn=0&server=265&filename=slowcontains.jpg&xsize=640&ysize=640
@ChiragRoy는 SQL2008/R2에 공개 된 PSS 사례가있는 것으로 알려진 문제라고 지적해야합니다. 그러나 다른 사람들이 문제에 부딪혀 대안에 대한 해결책이나 이유가 발견되면 나는 궁금합니다. – scolja
응답으로 하나의 대답을 표시하기위한 프로토콜이 무엇인지 잘 모르겠습니다. 이 경우, UNION은 확실히이 문제를 해결하지만 문제를 해결하고 CONTAINSTABLE을 사용하여 성능을 향상시킬 수 있습니다. 질문에 대한 모든 사람들의 피드백에 정말 감사드립니다. – scolja