2013-03-04 93 views
0

我需要你的幫助,以便我可以解決我工作中的一些問題。個性化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表中。

+0

謝謝你的回答傑伊。我想到了這一點,我已經準備好了這部分工作。事情是,在開發工作區,當我做一個表上右鍵單擊(或在命令菜單上),我單擊同步它也刪除索引,但該進程不傳遞Application.dbSynchronize(),我可以告訴你,因爲我已經添加了一個斷點。你有什麼想法,從哪個類的進程運行? – JGutierrezC 2013-03-07 15:07:04