9 sql-server best-practices parallelism
一般设置并行性的最佳实践是什么?我知道 SQL Server 默认0
使用所有可用的处理器,但是在什么情况下您要更改此默认行为?
我记得在某处读到过(我必须寻找这篇文章),对于 OLTP 工作负载,您应该关闭并行性(将 maxdop 设置为1
)。我不认为我完全理解你为什么要这样做。
您什么时候将 maxdop 保持到 SQL Server (0)?您何时会关闭并行性 (1)?您何时会明确说明特定数量的处理器的 maxdop?
什么导致并行?
mrd*_*nny 12
您通常不想禁用并行性,因为这也会为管理任务禁用并行性。最好的办法是通过添加或修复索引或通过对架构进行全面更改来修复导致并行性的查询。
根据您更新的问题...
有些人会将供应商构建的应用程序的 MAXDOP 更改为 1,因为他们无法控制数据库或架构,并且他们不希望单个查询接管整个系统。
我个人总是将 MAXDOP 保持在 0,除了一些罕见的情况。
并行性是由执行计划中的单个操作引起的,其执行成本超过了预设设置(并行度设置的成本阈值)。发生这种情况时,SQL Server 将启动并行性,以便它可以对请求进行多线程处理,以尝试加快进程。并行性成本阈值的默认值是 5。在许多 OLTP 平台中,您可能希望将其提高到 30 或 40,这样并行性只会在真正昂贵的查询中发挥作用。