2009-04-08 4 views
0

Я думал, что полнотекстовый поиск позволит мне делать точный поиск фразы более оптимизированным способом, чем предикат LIKE, но я читаю, что он этого не делает в точку.Лучший способ литералов искать текстовый столбец в SQL Server

Является ли «LIKE» наиболее эффективным способом поиска тысяч строк полей TEXT в таблице для литеральной строки?

Это должно быть точное соответствие ...

ответ

0

Какая версия SQL Server включена? Я бы рекомендовал заменить TEXT на VARCHAR (MAX), если вы когда-нибудь сможете (SQL Server 2005 и выше).

Почему вы говорите, что полный текст не будет работать? Как настроить полнотекстовый текст и как выглядят ваши полнотекстовые запросы?

Марк

+0

Я создал полный текст с помощью студии SQL Server Management и создания полнотекстового каталога с полнотекстовым индексом в поле в одной из моих таблиц. Мой запрос: ВЫБРАТЬ TOP 10 serial_no, writer_id, писать, assignment_type, subdate, название ОТ write_onsite ГДЕ СОДЕРЖИТ (запись «взять его однажды"») – Caveatrob

+0

- запрос возвращает вещи, которые принимают в начале, любой количество слов в betwee, затем слово «один раз». Я просто хочу, чтобы буквальная фраза «взяла его один раз» – Caveatrob

+0

Все еще не ясно: какая версия SQL Server? –

1

LIKE (строка%) будет работать быстрее, если у вас есть надлежащий индекс на колонке и вы ищете «строку» только в начале значения. Вы должны использовать LIKE (% string%), если «строка» может находиться в середине вашего значения; сканирование таблицы будет запущено в этом случае, и оно будет медленным (медленнее, чем полнотекстовый поиск в основном). Вы можете использовать функцию CONTAINS() полнотекстового поиска для точного соответствия.