Показать сообщение отдельно
Старый 16.11.2016, 14:12   #1  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Как улучшить быстродействие запроса
Привет всем.
AX2012 R2.

По журналу трассировки запросов SQL вижу, что самое нагруженное место в моей Аксапте - это метод findSum на таблице IventSum
Конкретно, вот это место:

X++:
            default:
                select
                #inventSumFields
                from inventSum
                    where inventSum.ItemId      == _itemId   &&
                          inventSum.Closed      == NoYes::No
                #inventDimExistsJoin(inventSum.InventDimId,inventDim,_InventDimCriteria,_InventDimParm);
В моменты замедления работы пользователей, запрос в среднем выполняется 0,5 секунды. Но из-за того, что он вызывается многократно, получается приличная задежрка.
Проверил, индексы вроде все в порядке, в SQL Server Management Studio запрос отрабатывает моментально. Actual Execution Plan не показывает, что нужно добавить новые индексы.
По таблицам InventSum и InventDim ежедневно проводится перестроение индексов и обновление статистики.
Может, это из-за кратковременных блокировок получается задержка в 0,5 секунд ?