|
![]() |
#1 |
Модератор
|
Цитата:
Я бы даже создал два: {ItemId, PriceType, ActivationDate, InventDimId} и {ItemId, ActivationDate, PriceType, InventDimId}, задеплоил в sandbox и посмотрел статистику использования через пару дней P.S. Сайтов у нас один или больше одного? P.P.S. Кстати, хороший пример того как распределение данных и соответственно планы исполнения вполне себе могут меняться со временем. InventItemPrice ("активная" + "неактивная" себестоимость) может расти достаточно быстро (быстрее InventDim), а по стандартным индексам SEEK по "активной" ее части невозможен. Так что возможно в данном случае "классического" parameter sniffing и нет как такового, просто индексация кривая и это рано или поздно всплыло бы ![]()
__________________
-ТСЯ или -ТЬСЯ ? Последний раз редактировалось Vadik; 13.05.2020 в 12:02. |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от Vadik
![]() Не знаю на какой Вы версии (возможно 2009). В D365 (10.0.10) напрашивается индекс на InventItemPrice(ItemId, PriceType, ActivationDate, InventDimId)
Я бы даже создал два: {ItemId, PriceType, ActivationDate, InventDimId} и {ItemId, ActivationDate, PriceType, InventDimId}, задеплоил в sandbox и посмотрел статистику использования через пару дней Я описывал 2009, но схема данных на первый взгляд такая же. Индекс ItemIdx кластерный, поэтому врядли другие в этом случае будут браться, т.е. надо менять именно его(передвигать InventDimId). При этом я не поручусь что это не затронет чего-то другого(т.е. опять надо наблюдать) Ну т.е. в целом да, это оптимальный способ действий, если у вас есть актуальная копия рабочей бд и возможность смотреть пару дней. В консалтинге это будет сложно продать ![]() Совсем неправильный путь - это к примеру запустить сбор статистики или переиндексацию и сказать что все нормально |
|
Теги |
ax2009, parameter sniffing, sql server |
|
|