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

Откуда:
Сообщений: 1089
вот такой запрос
with cte(extcode) as
(select '90031'
union
select '90011'
union
select '90139'
union
select '90025'
union 
select '90150'
)
select pp.extcode,cast(prday as DATE),SUM(weight),COUNT(weight) 
from proc_packs pp with (nolock)
join cte c on pp.extcode=c.extcode
where 1=1
and site=1
and station=109
and rtype=1

and prday between '20141101' and GETDATE() -- Plan1



--and prday between '20151101' and GETDATE() -- Plan2
--and prday between '20151120' and GETDATE() -- Plan3



group by prday,pp.extcode
order by extcode,prday


К сообщению приложен файл (Plan1.sqlplan - 37Kb) cкачать
21 мар 16, 12:14    [18958310]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1089
waszkiewicz,

К сообщению приложен файл (Plan2.sqlplan - 43Kb) cкачать
21 мар 16, 12:15    [18958315]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1089
waszkiewicz,

ниасилил в одно сообщение :(

К сообщению приложен файл (Plan3.sqlplan - 42Kb) cкачать
21 мар 16, 12:15    [18958317]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
invm
Member

Откуда: Москва
Сообщений: 9687
Потому что запросы разные.
21 мар 16, 12:27    [18958380]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1089
Понятно, что разные. Почему в первом случае в скан валится?
21 мар 16, 12:31    [18958395]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
waszkiewicz,

потому что скан становится дешевле поиска с кей-лукапом.
21 мар 16, 12:36    [18958418]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
Konst_One
Member

Откуда:
Сообщений: 11593
странно другое - почему в певом варианте так мало данных запрос возвращает
21 мар 16, 12:36    [18958421]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1089
waszkiewicz,

вернее (если я правильно понимаю сервер) в третьем случае ему достаточно индекса по prday, а в первых двух (особенно в первом) - он не уверен и идет сканировать?
21 мар 16, 12:37    [18958426]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
invm
Member

Откуда: Москва
Сообщений: 9687
Потому что оптимизатор счел это более выгодным.
Укажите индекс хинтом и сравните оценки.
21 мар 16, 12:37    [18958428]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1089
Konst_One
странно другое - почему в певом варианте так мало данных запрос возвращает


третий вариант отрабатывает 1 сек
за 3 минуты результатов первого я не дождался
21 мар 16, 12:38    [18958432]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
Konst_One
Member

Откуда:
Сообщений: 11593
waszkiewicz
Konst_One
странно другое - почему в певом варианте так мало данных запрос возвращает


третий вариант отрабатывает 1 сек
за 3 минуты результатов первого я не дождался


теперь понятно. индекс у вас не очень для такого запроса
21 мар 16, 12:40    [18958440]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1089
Konst_One
waszkiewicz
пропущено...


третий вариант отрабатывает 1 сек
за 3 минуты результатов первого я не дождался


теперь понятно. индекс у вас не очень для такого запроса


создать другой можно конечно, но есть но. Значения station (тот, что в where) могут в базу писать достаточно интенсивные устройства (причем пишут сразу в базу, без всякого буфера - тут я не при чем), поэтому включение еще и station (да и заодно rtype) может повлиять на процесс (ЯТД) Или не стоит переживать? База продуктивная, эмулировать ее поведение нет возможности
21 мар 16, 13:06    [18958607]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
Konst_One
Member

Откуда:
Сообщений: 11593
я бы в индекс ix_proc_packs_prday сделал INCLUDE(extcode, weight)
21 мар 16, 13:32    [18958752]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Konst_One
странно другое - почему в певом варианте так мало данных запрос возвращает


Если учесть что "какие то устройства" валят много инсертов, видимо статистика устаревает быстро, а обновляют её редко, вот и результат.
21 мар 16, 13:47    [18958855]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1089
WarAnt
Konst_One
странно другое - почему в певом варианте так мало данных запрос возвращает


Если учесть что "какие то устройства" валят много инсертов, видимо статистика устаревает быстро, а обновляют её редко, вот и результат.


Да никто её не обновляет. Где почитать про обновление?
21 мар 16, 14:09    [18959003]     Ответить | Цитировать Сообщить модератору
 Re: Иной раз иной план. Почему?  [new]
Konst_One
Member

Откуда:
Сообщений: 11593
https://msdn.microsoft.com/ru-ru/library/ms187348(v=sql.120).aspx
21 мар 16, 14:16    [18959045]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить