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

Откуда:
Сообщений: 11
Коллеги, хочу понять как работает Where часть в запросе. Т.е. есть запрос
Select .....
From Table
Where Table.Good = &Good and Table.quality = &quality

Сейчас индекс висит на Good. если повесить индекс на quality поможет ли ускорить запрос. А вообще хотелось бы почитать где нить (если можете дать ссылочку) как рабоатет Where часть. Заранее благодарен. СУБД MSSQL2005
21 май 12, 21:02    [12591203]     Ответить | Цитировать Сообщить модератору
 Re: Как работает Where часть в запросе  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18328
А еще можно делать составные индексы сразу на поля Good,Table.
Закладка на статьи смотри выше. Там много хороших статей, в частности про индексы.
21 май 12, 21:06    [12591213]     Ответить | Цитировать Сообщить модератору
 Re: Как работает Where часть в запросе  [new]
Vicious_sid
Member

Откуда:
Сообщений: 11
Вообщем то мне хотелось поянть как именно работает Where часть. вот ищу по инету описание (хоть русское хоть английское)
21 май 12, 21:12    [12591230]     Ответить | Цитировать Сообщить модератору
 Re: Как работает Where часть в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Vicious_sid,

&Good - это не MSSQL
21 май 12, 21:12    [12591232]     Ответить | Цитировать Сообщить модератору
 Re: Как работает Where часть в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
- Как работает трансформатор?
- Уууууу...

Чего-то вспомнилось

А если серьёзно и коротко, то логически
WHERE оставляет в результирующем наборе строк
только такие, для которых логическое выражение вернуло TRUE.
А вот если вернулись FALSE или UNKNOWN, то удаляет их оттуда.
21 май 12, 21:17    [12591246]     Ответить | Цитировать Сообщить модератору
 Re: Как работает Where часть в запросе  [new]
Vicious_sid
Member

Откуда:
Сообщений: 11
iap, Просто хотел выделить переменную наглядно
21 май 12, 21:17    [12591248]     Ответить | Цитировать Сообщить модератору
 Re: Как работает Where часть в запросе  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18328
Vicious_sid
Вообщем то мне хотелось поянть как именно работает Where часть. вот ищу по инету описание (хоть русское хоть английское)
where работает так, как ему логикой положено.

А вот дальше вступает в действие анализатор, который строит план запроса, исходя из того, какие индексы существуют и прочее.
21 май 12, 21:18    [12591253]     Ответить | Цитировать Сообщить модератору
 Re: Как работает Where часть в запросе  [new]
Vicious_sid
Member

Откуда:
Сообщений: 11
И еще просто вот нашел типа цитату
SELECT *

FROM Orders

WHERE OrderDate BETWEEN ‘1996-07-19’ AND ‘1996-07-25’

AND CustomerID = ‘FOLKO’
SQL Server найдет один индекс OrderDate и один CustomerID. Он будет использовать их обоих и результатом будет пересечение по этим двум условиям. Оценка дает 6 значений по OrderDate и только одно для CustomerID. В этом конкретном случае SQL Server вернет только одно значение.

Это из вот https://www.sql.ru/articles/mssql/03013101indexes.shtml
Но вот хотелось узнать а если одно поле не индексное, то он будет искать типа во все таблице.

просто смотрите есть таблица где находятся цены товара с качеством. У качество возможно всего значений может быть 5, у номенклатуры 65 000 и более.
21 май 12, 21:25    [12591277]     Ответить | Цитировать Сообщить модератору
 Re: Как работает Where часть в запросе  [new]
Vicious_sid
Member

Откуда:
Сообщений: 11
Deff, Так, а где почитать как действует анализатор при тех или иных параметрах.
21 май 12, 21:30    [12591294]     Ответить | Цитировать Сообщить модератору
 Re: Как работает Where часть в запросе  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18328
Vicious_sid
Но вот хотелось узнать а если одно поле не индексное, то он будет искать типа во все таблице.

Отрежет по существующему индексу. Например 5 записей. По кластерному индексу присоединит саму таблицу (к этим записям), и уже обрежет по доп. параметру.
21 май 12, 21:35    [12591308]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить