Производительность с LIKE vs CONTAINS с использованием полнотекстовой индексации - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть таблица с большим (ish) количеством строк 500k, MSSQL Server 2008. У меня есть столбец, содержащий идентификатор продукта nvarchar, который обычно имеет длину 15 символов, алфавитный и числовой, например, FF93F348HJKCF5HW9.Я хотел бы иметь возможность искать этот идентификатор продукта с лучшей производительностью.Я провел некоторые исследования по использованию полнотекстовой индексации в этом столбце, и я не думаю, что использование полнотекстовой индексации с использованием CONTAINS дает какую-либо выгоду по сравнению с LIKE '%%'.Это похоже на тот факт, что полнотекстовая индексация более полезна при поиске целых слов, а не последовательности символов.

Может ли кто-нибудь подтвердить / опровергнуть это для меня?

1 Ответ

1 голос
/ 01 февраля 2012

Полнотекстовая индексация - это поиск слов языка в неструктурированных текстовых данных.Ваши данные не содержат слов, только последовательность символов.

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

Если ваше требование для "автозаполнения", то LIKE будет работать довольно хорошо, так как оптимизатор будет использовать INDEX SEEK, когда выискать что-нибудь, например LIKE 'F5521%'.

В этой статье MSDN объясняются основы ключевого слова CONTAINS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...