0

我需要你的帮助,这样我才能解决我工作中的一些问题。

我们有一些在 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 上创建它,它包含“分区”列,不适合我的外部查询,因为它仍然很慢。

在此先感谢您的帮助。

4

1 回答 1

1

如果您需要在数据库同步时执行自定义 SQL 语句,您可以将代码添加到Application.dbSychronize(). 例如,您可以查看该函数以了解系统如何处理将存储过程添加到ShipCarrierStaging表中。

于 2013-03-06T23:42:23.840 回答