Dynamics AX 2009 - 性能调整 - 参数嗅探和填充因子

问题描述

我目前正在对完全升级到最新内核/修补程序的 Microsoft Dynamics AX 2009 进行性能调整。

在此过程中,我遇到了数据库填充因子设置为 80。不知道为什么? 我现在已经把它改成 95 - 还不敢把最后的动作变成 100。 对此有什么想法吗?

现在我来这里的问题是:

建议在 sql Server 上使用哪些标志来支持 Dynamics AX 2009?

如前所述,它已完全升级,其设置调用参数化,但将 DataAreaId 作为文字,以便为每个公司制定专门的计划。

在过去的 10 年中,它的性能已经进行了几次调整。 当前设置了这些标志:1117、1118、1224、2371、4136、4199、7646

我想删除 4136

解决方法

关于我自己

根据我的经验,针对 AX 的数据库性能调整需要两种专业知识(AX 和 SQL Server)的交集,而这两种专业知识很少在一个人身上存在。我会认为自己是 AX 专家,并且拥有足够的 SQL Server 知识来应对危险(或勉强应付)。因此,在阅读本答案的其余部分时请注意这一点。

一般意见

首先,两个一般性观察:

  • AX 性能问题很少归结为数据库性能问题。首先检查应该总是在瓶颈所在的应用程序中。 10 次中有 9 次是应用程序、数据或 layer 8 的问题,而不是数据库的问题。
  • 如果您进行 SQL Server 性能优化,您应该知道自己在做什么。让事情变得更糟比让事情变得更好要容易得多。您应该有一个良好的性能监控,告诉您更改设置后情况发生了怎样的变化。仅仅因为看起来是个好主意就更改设置并不是一个好主意。

您的问题

现在,在您的问题中,您提到了两个不同的点:

在这个例子中,我们使用了 80% 的填充因子,但是没有任何表的基准测试是没有意义的。在大多数情况下,当表具有大量行和频繁更新行时,SQL Server 索引填充因子将有助于获得良好的执行。在设置填充因子之前,我们需要分析列的数据类型、行的实际单元格大小、页面中的平均行数和行单元格的估计更新大小。这种正确的计算会推导出需要应用于表格的实际填充因子值。

更多信息

如果您想进一步深入 AX 性能优化的兔子洞,我建议您阅读以下文章。它们主要适用于 AX 2012,但部分也应适用于 AX 2009 并提供一个起点:

有点元

对于 Stack Overflow,您的问题处于 on topic 的灰色地带。您可能在 serverfaultDatabase Administrators 上有更好的运气。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...