我们希望在Server实例上实现最佳实践。我们的所有实例仍然在默认设置MAXDOP = 0的情况下运行。
在阅读了建议设置的几页之后(包括微软支持和埃里克·达林的职位 on brentozar.com),我们希望检查我们是否正确地理解了这些建议的实例。我们所有的实例都运行在虚拟机上,许多实例只有一个套接字和少数几个虚拟处理器。
将MAXDOP从0改为6,还是从0更改为3?
既然这个实例只有一个套接字,那么从0更改到6肯定没有什么区别吗?我们有可能从改变这个设置中得到什么吗?
将MAXDOP从0改为6?我们有可能从改变这个设置中得到什么吗?
发布于 2018-09-18 10:35:05
将MAXDOP从0改为6?我们有可能从改变这个设置中得到什么吗?
简单地说,这取决于您的工作负载和查询的cpu使用情况。
示例1:
您的CPU使用情况如何,您是否在某些查询上看到了尖峰,这些查询是否阻碍了其他查询?
考虑将maxdop更改为2或4。此外,检查成本阈值是否为并行性,如果这是默认的5,则考虑将其设置得更高,但与往常一样,监控工作负载的前后是关键。
示例2:
这个问题有点棘手,因为一个实例可能占用计算机上的所有资源。
本例中的一个重要因素是确定哪些实例是始终运行其查询最关键的实例,而不影响其他五个实例。
监视之前和之后的工作负载,但是对所有实例保持在0,并且在2个或更多实例上运行大型查询将导致瓶颈。
我将再次考虑将不太重要的实例设置为2,对于更重要的实例,首先将其设置为4,并根据结果再次更改。(这里还考虑了并行化设置的成本阈值)。
https://dba.stackexchange.com/questions/217890
复制相似问题