Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Помогите оптимизировать запрос

$
0
0
Уважаемые гуру SQL программирования, помогите оптимизировать или переписать запрос к БД.

Собственно имеем:
1. Таблицу индексов:
CREATE TABLE [Index-01]
(
Document varchar(255),
Word varchar(255),
Section int,
Paragraph int,
Indx int
)

2. Поисковый запрос:
Тест* или проверка поиска
3. Ну и собственно сам запрос на поиск в таблице индексов по поисковому запросу:
SELECT * FROM [Index-01] 
WHERE Word='поиска' 
and Document in (select document from [index-01] where word like 'тест%'
and section in (select section from [index-01] where word like 'тест%'
and Paragraph in (select Paragraph from [index-01] where word like 'тест%'
and Document in (select document from [index-01] where word = 'проверка'
and section in (select section from [index-01] where word = 'проверка'
and Paragraph in (select Paragraph from [index-01] where word = 'проверка'

Впринципе поиск работает и находит так как надо (слова должны встретиться в одном документе, в одном разделе и в одном параграфе(абзаце)).
Но смущает
IN SELECT
и сразу понятно что очень не оптимизирован запрос, а также не учитывается порядок следования слов.

Viewing all articles
Browse latest Browse all 7251

Trending Articles