如何解决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 性能优化,您应该知道自己在做什么。让事情变得更糟比让事情变得更好要容易得多。您应该有一个良好的性能监控,告诉您更改设置后情况发生了怎样的变化。仅仅因为看起来是个好主意就更改设置并不是一个好主意。
您的问题
现在,在您的问题中,您提到了两个不同的点:
- 索引填充因子:如果没有充分的理由,我不会更改此设置。 AX 中的许多表都有大量行并且经常更新。增加填充因子会降低这些表的性能。引用SQL Server Index Fill factor with a Performance Benchmark:
在这个例子中,我们使用了 80% 的填充因子,但是没有任何表的基准测试是没有意义的。在大多数情况下,当表具有大量行和频繁更新行时,SQL Server 索引填充因子将有助于获得良好的执行。在设置填充因子之前,我们需要分析列的数据类型、行的实际单元格大小、页面中的平均行数和行单元格的估计更新大小。这种正确的计算会推导出需要应用于表格的实际填充因子值。
- removing flag 4136(禁用参数嗅探):我会删除这个标志。据我所知,这不是在 AX 2009 的标准安装中设置的。它可能是出于好意而设置的,因为互联网上的一些博客文章提到它可以提高性能。我建议阅读以下两个链接,其中包含有关此标志的一些信息以及应该使用的内容:
更多信息
如果您想进一步深入 AX 性能优化的兔子洞,我建议您阅读以下文章。它们主要适用于 AX 2012,但部分也应适用于 AX 2009 并提供一个起点:
- AX Performance Troubleshooting Checklist Part 1A [Introduction and SQL Configuration]
- AX Performance Troubleshooting Checklist Part 1B [Application and AOS Configuration]
- AX Performance Troubleshooting Checklist Part 2
- AX Performance – Checking key SQL Server configuration and database settings
有点元
对于 Stack Overflow,您的问题处于 on topic 的灰色地带。您可能在 serverfault 或 Database Administrators 上有更好的运气。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。