|
![]() |
#1 |
Moderator
|
Если у вас там батчи/серийные номера используются - скороее всего, индексами делу не поможешь. Попробуй в этот метод НЕНАДОЛГО воткнуть forceliterals и потом посмотри по каким номенклатурам самые тяжелые запросы. (Forceliterals надо откатить потом - это просто способ диангостики).
У меня была похожая ситуация на одном из клиентов. Там было с десяток ключевых номенклатур, по каждой из которых было порядка 10-20 тысяч батчей и, соответственно, порядка 50-100 тысяч записей в inventSum. Удалось как-то сдвинуть ситуацию только построив за пределами Аксапты index clustered view, полученный запихиванием этого запроса в Database Tuning Advisor. Метод не очень надежный, но у них там уже речь шла не о 0.5 секунды, а о секундах 5-7... |
|
![]() |
#2 |
Участник
|
Цитата:
![]() |
|
![]() |
#3 |
Moderator
|
Цитата:
Сообщение от Alexius
![]() Сурово
![]() Кстати - как топикстартер верно заметил - это точно не его случай. У него там что-то другое происходит. |
|
![]() |
#4 |
Участник
|
Если запросы тормозит не всегда, а после какого-то времени или время от времени, то можно поэкспериментировать с процедурным кэшем. Для начала попробовать его сбросить DBCC FREEPROCCACHE.
Еще на БД есть свойство PARAMETERIZATION, если его установить в FORCED, то сервер не будет кэшировать планы для каждого набора параметров запросов. Ну и на закуску возможно неплохо бы отключить параллелизм на сервере, если в MS SQL 2012 я пока не встречал "паразитных" распараллеливаний запросов, то на более древних версиях они могли укладывать не самые хилые дисковые подсистемы. |
|
![]() |
#5 |
Участник
|
Цитата:
![]() из текста кстати непонтяно что за запрос - какие поля выбираются, еще из универсальных советов можно попробовать почистить InventSum от нулевых значений(closed=1) вообще перед тем как что-то оптимизировать лучше сперва понять цель запроса и кол-во выбираемых данных. может оказаться что надо не индексы делать, а настройки групп моделей менять Последний раз редактировалось trud; 16.11.2016 в 18:45. |
|
![]() |
#6 |
Moderator
|
Цитата:
Ну и да - согласен, в исходном вопросе не хватает данных. Не понятно что за запрос и с какой целью идет. В идеале, надо было бы его выловить в кэше запросов на SQL Server и выложить сюда план. Странно что запрос так медленно работает при таких скромных объемах. |
|
![]() |
#7 |
Участник
|
Цитата:
Сообщение от fed
![]() Если у вас там батчи/серийные номера используются - скороее всего, индексами делу не поможешь. Попробуй в этот метод НЕНАДОЛГО воткнуть forceliterals и потом посмотри по каким номенклатурам самые тяжелые запросы. (Forceliterals надо откатить потом - это просто способ диангостики).
У меня была похожая ситуация на одном из клиентов. Там было с десяток ключевых номенклатур, по каждой из которых было порядка 10-20 тысяч батчей и, соответственно, порядка 50-100 тысяч записей в inventSum. Удалось как-то сдвинуть ситуацию только построив за пределами Аксапты index clustered view, полученный запихиванием этого запроса в Database Tuning Advisor. Метод не очень надежный, но у них там уже речь шла не о 0.5 секунды, а о секундах 5-7... Посчитал : в среднем 72 партии (уникальных комбинаций аналитик) на одну номенклатуру. Последний раз редактировалось Ace of Database; 16.11.2016 в 16:26. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|