Как улучшить производительность запросов к SQL Server при выполнении LIKE для нескольких столбцов - PullRequest
1 голос
/ 20 июля 2010

В моем запросе должен быть выполнен ПОИСКОВЫЙ поиск по 3 столбцам.

SELECT * FROM Monkeys
WHERE [Name] LIKE '%pete%' OR [Desc] LIKE '%pete%' OR [Info] LIKE '%pete%';

Я хочу повысить производительность этого запроса.

Я не могу использовать полнотекстовые каталогиПросто простые таблицы.В нем около 200 000 строк (база данных SQL Server 2008), и это занимает от 3 до 6 секунд.

У кого-нибудь есть какие-либо советы?

1 Ответ

4 голосов
/ 20 июля 2010

Полнотекстовая индексация / поиск, если у вас есть символы подстановки.

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

Ваш лучший наименьший наихудший шанс - иметь составной индекс по 3 столбцам и надеяться, что оптимизатор отсканирует это, скорее, сканирование таблицы, но, честно говоря, я сам не пробовал. И, вероятно, вы не можете, потому что общая ширина столбца индекса ключа должна быть менее 900 байт

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