Прибыль от Performace при поиске в FTS по сравнению с LIKE на индексированных столбцах? - PullRequest
2 голосов
/ 30 сентября 2010

Подзапрос " Полнотекстовый поиск SQL Server 2005"

Будет ли использование FTS (полнотекстового поиска) быстрее по сравнению с поиском с использованием tsql LIKE по индексированным столбцам?
Почему?
И как много?

Ответы [ 3 ]

3 голосов
/ 30 сентября 2010

да FTS будет быстрее для поиска в середине столбца, как будет быстрее, только если вы ищете в начале столбца

where lastname like 'S%'

будет быстро

where lastname like '%S%'

будет медленным, и индекс не будет использоваться, потому что он должен пройти через весь столбец

1 голос
/ 30 сентября 2010

В зависимости от требований вашего приложения, первое, что нужно иметь в виду, это то, что FTS основан на словах, а LIKE соответствует шаблонам символов. Так, например, LIKE найдет «% rate%» в «переоцененном», в то время как поиск FTS по «rate» не будет.

Кроме того, ответ SQLMenace хорошо освещает тему.

0 голосов

Я, конечно, предпочитаю видеть ссылки на любые документы ...

"СОДЕРЖИТ (Transact-SQL). Электронная документация по SQL Server 2008 R2" имеет абзац:

  • "Сравнение LIKE с полнотекстовым поиском

    * В отличие от полнотекстового поиска, предикат LIKETransact-SQL работает только с символьными шаблонами.
    Также нельзя использовать предикат LIKE для запроса отформатированных двоичных данных.

    Кроме того, запрос LIKE для большого количества неструктурированных текстовых данных намного медленнее, чем эквивалентный полнотекстовый запрос для тех же данных.

    Запрос LIKE для миллионов строк текстовых данных может занять несколько минут, тогда как для полнотекстового запроса может потребоваться всего несколько секунд или меньше для тех же данных, в зависимости от количества возвращаемых строк * "

...