在2016年升级和创建新的SQL服务器场时,我研究了要在服务器上设置的内容,其中之一是MAXDOP设置。
通过阅读有关设置的内容,我在一个有8个逻辑CPU的服务器上将其设置为8。服务器是一个VM,我相信它有一个NUMA节点。最担心的是OTLP。
然而,我最近参加了一个培训课程,其中的建议是将MAXDOP设置为4,因此我开始对这种设置进行猜测。
CTFP设定为50。
如果能帮助确定正确的设置,我将不胜感激。
发布于 2020-11-10 13:13:14
用于MAXDOP的实际值将随工作负载的不同而变化。如果它是真正的纯OLTP,那么您应该可以将其设置为1并完成。
不过,
我们(皇家我们)几乎从来没有摆脱过一个纯粹的OLTP工作负载,总是会有报告被逐出,或者应用程序中的屏幕同时查看大量数据,或者你必须与BI共享服务器。因此,通常会选择一个更合理的数字。
我们有一个24核心服务器(用于内存、SQL托管实例),并将MAXDOP设置为8,CTFP设置为50。当我们遇到问题时,我正在尝试增加CTFP的想法,这是因为大规模的查询已经并行,并且占用了大量的资源。对速度没有好处,但需要大量增加资源。事实上,我们的许多大型查询都有MAXDOP提示,将它们限制为单个线程。
对于一个8核心服务器,我将MAXDOP设置为4,并将CTFP保留在现在(50)的位置。对于更多的核心,我会将MAXDOP设置为8,从CTFP开始设置为50。然后查看您的工作负载,特别是对于具有高CX等待的查询。如果您的大部分工作仍然是并行的,而且不应该这样做,那么就调整这些数字。否则,调优不应该并行的查询。
https://dba.stackexchange.com/questions/279458
复制相似问题