2014-02-18 5 views
0

인터넷에서 검색을 수행 한 결과 전체 텍스트 검색이 일반적으로 더 나은 성능을 제공한다는 사실을 발견했습니다.SQL 전체 텍스트 검색과 LIKE 검색 성능 비교

this post에 대한 지침에 따라 컴퓨터에 시소러스 테이블을 설치 했으므로 전문 지식을 습득하고 전체 텍스트 검색에 익숙해졌습니다. 내가 쿼리를 실행하면

나는 마이크로 소프트 SQL Server 관리 Studio 2008

모든 것을보고하고있다. 내 LIKE 검색이 내 FREETEXT 검색보다 빠르다는 것을 알게되었습니다. 이는 대부분의 위키 사이트/페이지에서 발견 된 것과 모순됩니다.

select * 
from TheThesaurus 
where freetext(TheDefinition, 'aspire') 

select * 
from TheThesaurus 
where TheDefinition like '%aspire%' 

LIKE 검색이 FREETEXT 검색이 6 초를했다 0 초를했다 :

다음은 내가 실행 한 쿼리입니다.

LIKE 검색은 703 행을 반환하며 FREETEXT은 94를 반환하며 FREETEXT은 더 정확하고 나은 결과를 검색합니다.

FREETEXT 검색이 LIKE 검색보다 느리게 진행되는 이유가 있습니까?

더 많은 히트 곡 (더 많은 데이터 수집)을 반환하기 때문에 내 프로그램에서 FREETEXT 검색을 사용하고 싶지만 속도는 중요한 문제였습니다.

도움 주셔서 감사합니다.

+0

실행 계획을 보았습니까? –

+0

'UPDATE STATISTICS TheThesaurus' 사용해보기 – Mihai

답변

0

전체 텍스트 색인을 만들었습니까? 그렇지 않은 경우에는 MSDN 사이트의 CREATE FULLTEXT CATALOG을 참조하십시오.이 링크는 SQL 2008을 사용하여 안내합니다. http://www.codeproject.com/Articles/29237/SQL-SERVER-2008-Creating-Full-Text-Catalog-and-Ful

실행 시간이 다른 또 다른 이유는 조건 자의 작업과 관련이 있습니다. LIKE는 정확한 일치에 가깝습니다. FREETEXT 함수는 FREETEXT 명령이 더 많은 작업을 수행하기 때문에 "단어의 의미와 일치하는 단어의 값을 검색합니다". 그것이 "Microsoft SQL Server 2012 쿼리"의 것입니다