建议和准则在 SQL Server 中的"最大并行度"配置选项

文章翻译 文章翻译
文章编号: 2806535 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

Microsoft SQL Server 最大并行度 (MAXDOP) 配置选项控制查询执行并行计划中使用的处理器数。此选项确定用于执行工作并行查询计划运算符的计算和线程资源。这取决于是否 SQL Server 设置对称多处理 (SMP) 计算机、 非统一内存访问 (NUMA) 计算机或启用超线程的处理器上,您必须配置 最大并行度 相应选项。本文讨论了可用于配置的一般原则 最大并行度 选项用于 SQL Server 时使用sp_configure系统存储过程。

可以重写选项 (MAXDOP) ° SQL 查询提示 最大并行度如果该查询指定了此选项,则sp_configure值中的选项。在 SQL Server 2000 中,该重写在提示中指定的值小于或等于sp_configure值时才会生效。在 SQL Server 2005 及更高版本,则重写始终将生效。在 SQL Server 2008年和更高版本中,如果 MAXDOP 值超出使用资源调控器,配置的值数据库引擎所使用的资源调控器 MAXDOP 值。与一起使用的所有语法规则 最大并行度当您使用 MAXDOP 查询提示选项都适用。可以重写或影响的 MAXDOP 设置其它两个选项如下所示:
  • 软 NUMA
  • 并行索引

更多信息

注意" 最大并行度 不会配置选项限制 SQL Server 使用的处理器数。若要配置 SQL Server 使用的处理器数,请使用 相似性掩码 配置选项。

当您配置 MAXDOP 值时,请遵循以下准则。

SQL Server 2005 及更高版本

  • 对于使用超过八个处理器的服务器,请使用下列配置:
    MAXDOP = 8
  • 对于使用 8 个或更少的处理器的服务器,请使用下列配置:
    MAXDOP = 0 到N

    注意在此配置中,N 表示处理器的数量。
  • 对于有 NUMA 配置的服务器,MAXDOP 不应超过分配给每个 NUMA 节点的 Cpu 的数量。
  • 对于服务器已启用超线程后,MAXDOP 值不应超过物理处理器的数量。
  • 对于服务器具有 NUMA 配置和启用超线程后,MAXDOP 值不应超过每个 NUMA 节点的物理处理器的数目。
注意在设置时使用这些相同的准则 最大并行度资源调控器工作负荷组的选项。

在这些原则中提到的最大值 8 也适用于典型的 SQL Server 活动和并行查询计划中使用的交换运算符的开销。可以改变此最大值,具体取决于特定的应用程序模式和 SQL Server 实例上的并发活动。例如,请考虑以下情况:
  • 如果有极少数与处理器的数目比较,同时执行的查询,您可以将 MAXDOP 值设置为较大的值。例如,您可以将 MAXDOP 值设置为 16。
  • 如果您有很大数量的比较与处理器数的同时执行的查询,可以将 MAXDOP 值设置为一个较小值。例如,您可以将 MAXDOP 值设置为 4。
注意任何值,则考虑使用应全面测试针对的特定应用程序的活动或查询模式在生产服务器上执行的值之前。

SQL Server 2000年或更高版本

如果 SQL Server 使用串行计划,它将使用只有一个处理器。但是,如果 SQL Server 使用并行机制,它必须执行的并行计划使用 (所确定的 MAXDOP 查询提示配置) 配置的所有处理器。例如,如果您使用 MAXDOP = 0 32 路服务器上 SQL Server 尝试使用所有 32 个处理器,即使 7 处理器可能会执行多个作业高效与串行计划使用只有一个处理器的比较。由于这种要么行为,如果 SQL Server 使用并行计划,并且不为第 8 的最大值限制 MAXDOP 查询提示 SQL Server 需要协调在高端服务器上的所有处理器的时间比使用并行计划的优点。

MAXDOP 设置将应用于该计划的每一步。每个步骤将使用一个 CPU 或由 MAXDOP 和永远不会将任何内容之间指定的 Cpu 数。如果并行执行步骤,由查询使用的线程数可能会超过 MAXDOP 设置。

MAXDOP 的定义,请参阅的"最大并行度选项"标题或 SQL Server 中的"并行度"主题。

要了解如何并行工作,请参阅 SQL Server 联机丛书中的"查询处理器体系结构"主题下的"并行查询处理"部分。

其他信息

有关并行查询的详细信息,请转到以下 Microsoft 开发人员网络 (MSDN) 网站:
并行度
最佳做法信息时有 64 多个 Cpu 的计算机上运行的 SQL Server 实例,请参阅下面的 SQL Server 联机丛书主题:
在有 64 多个 Cpu 的计算机上运行 SQL Server 的最佳做法
对于启用超线程的处理器运行的 SQL Server 实例,请按照以下文章在 Microsoft 知识库文章中的建议:
322385 SQL Server 支持超线程的环境中
注意这一建议可能不适用于诸如英特尔 Nehalem 系列中较新的处理器芯片。

有关 SQL Server 所使用的处理器数,SQL Server 通过识别的 NUMA 节点数的信息,请使用动态管理视图 sys.dm_os_sys_info 和 sys.dm_os_nodes。有关通过使用资源调控器强制的 MAXDOP 设置的详细信息,查看动态管理视图 sys.dm_resource_governor_workload_groups 中的信息。

有关的产品或工具会自动检查此条件和该产品版本的 SQL Server 上的 SQL Server 实例的详细信息,请参阅下表:
收起该表格展开该表格
规则软件规则标题规则说明对其计算规则的产品版本
SQL Server 2008 R2 最佳实践分析器 (SQL Server 2008 R2 BPA)为建议的值未设置并行度SQL Server 2008 R2 最佳实践分析器 (SQL Server 2008 R2 BPA) 提供了一条规则来检测这些条件在哪里为适当的值 最大并行度中的 Cpu 个数 NUMA 节点以及 MAXDOP 资源调控器工作负载配置和未配置选项。SQL Server 2008 R2 BPA 支持 SQL Server 2008年,SQL Server 2008 R2。

如果您运行 BPA 工具并遇到"数据库引擎的并行度未设置为建议的值"的警告,进行比较最大并行度选项值和推荐值,它们在"摘要"和"详细信息"部分中指定的资源调控器工作负荷 MAXDOP 值。
SQL Server 2008 中,SQL Server 2008 R2
SQL Server 2012年最佳实践分析器 (SQL Server 2012 BPA)为建议的值未设置并行度SQL Server 2012年最佳实践分析器 (SQL Server 2012 BPA) 提供了一条规则来检测这些条件在哪里为适当的值 最大并行度中的 Cpu 个数 NUMA 节点以及 MAXDOP 资源调控器工作负载配置和未配置选项。

如果您运行 BPA 工具并遇到"数据库引擎的并行度未设置为建议的值"的警告,进行比较最大并行度选项值和推荐值,它们在"摘要"和"详细信息"部分中指定的资源调控器工作负荷 MAXDOP 值。
SQL Server 2012

属性

文章编号: 2806535 - 最后修改: 2013年2月6日 - 修订: 2.0
这篇文章中的信息适用于:
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Enterprise Evaluation Edition
  • Microsoft SQL Server 2000 标准版
  • Microsoft SQL Server 2000 Developer Edition
关键字:?
kbinfo kbmt KB2806535 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 2806535
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com