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

SELECT * FROM Tbl WHERE 
[condition1]  AND
[condition2]  AND
[condition3]  AND
[condition4]  AND
[condition5]  

В случае FALSE "condition1" следующие condition-ы будут анализироваться или нет ? То есть перво-очередность наиболее "массовых" условий влияет на скорость выполнения запроса или нет ?
4 май 05, 15:09    [1516206]     Ответить | Цитировать Сообщить модератору
 Re: этапность выполнения запроса  [new]
ChA
Member

Откуда: Москва
Сообщений: 11125
Новяк
То есть перво-очередность наиболее "массовых" условий влияет на скорость выполнения запроса или нет ?
Вообще говоря, нет, как оптимизатор решит, так и будет...
4 май 05, 15:13    [1516227]     Ответить | Цитировать Сообщить модератору
 Re: этапность выполнения запроса  [new]
unicode
Member

Откуда:
Сообщений: 810
можно просмотреть пдан выполнения

set showplan_all

например запрос типа

set showplan_all on
go
select 'Plan1' as Field1
where (1=2 and 2=2)
go
select 'Plan2' as Field1
where (1=1 and 2=2)
go
set showplan_all off

и сравнить результаты
4 май 05, 15:15    [1516236]     Ответить | Цитировать Сообщить модератору
 Re: этапность выполнения запроса  [new]
Новяк
Guest
ChA
Новяк
То есть перво-очередность наиболее "массовых" условий влияет на скорость выполнения запроса или нет ?
Вообще говоря, нет, как оптимизатор решит, так и будет...


оч. интересный момент. А этот оптимизатор ошибаться может ? То есть можно ли как-то принудительно указывать порядок выполнения условий запроса. Ведь если я априори знаю что такое то условие отбрасывает скажем 60% значений из запроса , и хочу поставить его впереди всех условий запроса, чтобы на остальные менее существенные условия не тратилось время а оптимизатор решит по другому .. (( Все-таки стоит ему доверять или нет ?
4 май 05, 16:19    [1516489]     Ответить | Цитировать Сообщить модератору
 Re: этапность выполнения запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
Новяк
оч. интересный момент. А этот оптимизатор ошибаться может ? То есть можно ли как-то принудительно указывать порядок выполнения условий запроса. Ведь если я априори знаю что такое то условие отбрасывает скажем 60% значений из запроса , и хочу поставить его впереди всех условий запроса, чтобы на остальные менее существенные условия не тратилось время а оптимизатор решит по другому .. (( Все-таки стоит ему доверять или нет ?

Оптимизатор минимизирует число операций чтения с диска. На основе индексов и статистик.
4 май 05, 16:26    [1516516]     Ответить | Цитировать Сообщить модератору
 Re: этапность выполнения запроса  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
оптимизатор в SQL Server - Cost Based, а не Rule Based, поэтому он принимает решения на основе стоимостной статистики, а не порядка условий в запросе.
4 май 05, 16:32    [1516551]     Ответить | Цитировать Сообщить модератору
 Re: этапность выполнения запроса  [new]
Новяк
Guest
Glory
Оптимизатор минимизирует число операций чтения с диска. На основе индексов и статистик.


хмм .. ну индексы допустим я задаю ... а по поводу других статистик - о чем речь ? Я могу как-то ускорить скорость выполнения запроса за их счет ?
Или это Сиквел Делает автоматом , анализируя перед выполнением запроса все что делаеть тот же оптимизатор/квери аналайзер ?
4 май 05, 16:51    [1516627]     Ответить | Цитировать Сообщить модератору
 Re: этапность выполнения запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
хмм .. ну индексы допустим я задаю ...
Где задаете ?

а по поводу других статистик - о чем речь ?
Речь о Statistical Information
"Microsoft® SQL Server™ 2000 allows statistical information regarding the distribution of values in a column to be created. ..."
4 май 05, 17:04    [1516680]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить