虚拟环境中的SQL Server MAXDOP调整

时间:2018-09-12 20:13:25

标签: sql-server amazon-ec2 sql-server-2012

曾经尝试为现有数据库研究SQL Server的不同最佳实践以提高性能,但今天偶然发现了Parallelism选项。不幸的是,关于如何在虚拟环境中配置MAXDOP似乎存在很多矛盾的意见。

当前在AWS EC2(r4.4xLarge)和SQL Server 2012 SP4上运行。

从0调整MAXDOP似乎对性能有重大影响吗?而且,将“最大程度”设置为系统具有的“虚拟”核心数是否准确?

2 个答案:

答案 0 :(得分:0)

MAXDOP仅会影响可并行化操作。有很多事情可以阻止并行化。 IOW如果查询只能使用1个处理器,则将MAXD​​OP = 64设置不会使其更快。

答案 1 :(得分:0)

不要将其保留为0,因为这意味着一个计划可以使用所有内核,然后您将获得大量的CXPACKET等待。请记住,当计划并行时,它们不一定会平均分配。因此,某些线程将更快地完成,并且工作量会减少……然后,您将陷入CXPACKET的困境,等待其他线程完成工作并重新编译所有内容。

此外,设置cost threshold for parallelism away from the default确实很重要。这就是确定您的计划能否并行的条件(假设它不是串行计划)。这里的成本低,意味着一个小的查询可以并行进行,只使用1个线程会更快。

我建议这些:

相关问题