Персонализируйте синхронизацию Dynamics AX

Мне нужна ваша помощь, чтобы я мог решить некоторые проблемы на моей работе.

У нас есть некоторые отчеты, которые мы запускаем на Sql Server Reporting Services. Запрос на нем выполнен на языке T-SQL, но отчет действительно медленный, поэтому я запустил "Показать примерный план выполнения" в SQL Server Management Studio, и он сказал мне, что для запроса мне нужны следующие индексы:

CREATE NONCLUSTERED INDEX [InventJournalTable_JournalIdDataAreaId]
ON [dbo].[INVENTJOURNALTABLE] ([JOURNALID],[DATAAREAID])

CREATE NONCLUSTERED INDEX [InventTrans_InventTransOrigin]
ON [dbo].[INVENTTRANS] ([INVENTTRANSORIGIN],[DATAAREAID],[DATEPHYSICAL])
INCLUDE ([ITEMID],[QTY],[COSTAMOUNTPHYSICAL],[INVENTDIMID])

Я создал их, и запрос (раньше выполнялся за 25 и более минут) теперь выполняется за две секунды. Но всякий раз, когда синхронизация выполняется в AX, очевидно, созданные индексы должны быть удалены.

Есть ли какой-либо триггер или что-то, что я могу выполнить, когда синхронизация завершена, чтобы я мог снова создать нужные мне индексы или любое другое будущее действие?

Если я создаю его в AX, он включает столбец "Раздел" и не подходит для моего внешнего запроса, так как он все еще очень медленный.

Заранее спасибо за помощь.

1 ответ

Решение

Если вам нужно выполнить пользовательские операторы SQL при синхронизации базы данных, вы можете добавить свой код в Application.dbSychronize(), Например, вы можете посмотреть в этой функции, чтобы увидеть, как система обрабатывает добавление хранимой процедуры в ShipCarrierStaging Таблица.

Другие вопросы по тегам