Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как ускорить поиск по тексту  [new]
Kudep
Member

Откуда: From Russia
Сообщений: 146
Есть вот такой поиск по тексту:
select id, fname, lname, mname, address
from Clients
where fname like '%' + @query + '%' 
   OR lname like '%' + @query + '%'
   OR mname like '%' + @query + '%'

В таблице порядка 200-300 тыс записей. Запрос возвращает 50-150 записей.

Выполняется 4 секунды. Индексы тут очевидно не помогут.
Подскажите, есть ли какие-либо средства или технологии SQL-Server, позволяющие ускорить данный поиск?
9 авг 12, 15:39    [12988617]     Ответить | Цитировать Сообщить модератору
 Re: Как ускорить поиск по тексту  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Денормализация.
9 авг 12, 15:42    [12988657]     Ответить | Цитировать Сообщить модератору
 Re: Как ускорить поиск по тексту  [new]
Glory
Member

Откуда:
Сообщений: 104760
Kudep
Есть вот такой поиск по тексту:

И что вы пытаетесь найти ? Вхождение скажем буквы в F во все поля ?
9 авг 12, 15:43    [12988671]     Ответить | Цитировать Сообщить модератору
 Re: Как ускорить поиск по тексту  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
select id, fname, lname, mname, address
from Clients
where isnull(fname, '') + isnull(lname,'') + isnull(mname ,'') like '%' + @query + '%' 



планы запросов конечно надо смотреть
9 авг 12, 15:46    [12988692]     Ответить | Цитировать Сообщить модератору
 Re: Как ускорить поиск по тексту  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5499
Блог
Перекинул статью "Что делать, когда Full-Text бессилен или зарисовки на тему LIKE '%искомое%'" на Technet WiKi
9 авг 12, 15:58    [12988792]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить