max degree of parallelism 选项

当 SQL Server 2005 在具有多个微处理器或 CPU 的计算机上运行时,它将为每个并行计划执行检测最佳并行度(即运行一个语句所使用的处理器数)。您可以使用 max degree of parallelism 选项来限制并行计划执行时所用的处理器数。如果默认值为 0,则使用所有可用的处理器。将 max degree of parallelism 设置为 1 以取消生成并行计划。将该值设置为大于 1 的数字(最大为 64)来限制执行单个查询时所用的最大处理器数。如果指定的值比可用的处理器数大,则使用实际可用数量的处理器。如果计算机只有一个处理器,则将忽略 max degree of parallelism 值。

覆盖 max degree of parallelism 值

SQL Server 将考虑为查询、索引数据定义语言 (DDL) 操作、静态的和由键集驱动的游标填充实施并行执行计划。有关并行执行的详细信息,请参阅并行度

您可以通过在查询语句中指定 MAXDOP 查询提示来覆盖查询中的 max degree of parallelism 值。有关详细信息,请参阅查询提示 (Transact-SQL)

索引操作(如创建或重新生成索引、或删除聚集索引)可能会大量占用资源。您可以通过在索引语句中指定 MAXDOP 索引选项来覆盖索引操作的 max degree of parallelism 值。MAXDOP 值在执行时应用于语句,但不存储在索引元数据中。有关详细信息,请参阅配置并行索引操作

除了查询和索引操作之外,此选项还控制 DBCC CHECKTABLE、DBCC CHECKDB 和 DBCC CHECKFILEGROUP 的并行。使用跟踪标志 2528,可以禁用为这些语句所做的并行执行计划。有关详细信息,请参阅跟踪标志 (Transact-SQL)

ms181007.note(zh-cn,SQL.90).gif注意:
如果 affinity mask 选项不设置为默认值,则可能会限制可用于对称多处理 (SMP) 系统上的 SQL Server 的处理器数。

设置 max degree of parallelism 选项

max degree of parallelism 选项是一个高级选项。如果使用 sp_configure 系统存储过程来更改该设置,则只有在 show advanced options 设置为 1 时才能更改 max degree of parallelism。更改后的设置将立即生效,而不需要重新启动 MSSQLSERVER 服务。

下面的示例将 max degree of parallelism 选项设置为 8。

sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'max degree of parallelism', 8;
GO
RECONFIGURE WITH OVERRIDE;
GO

有关在 SQL Server Management Studio 中设置 max degree of parallelism 值的详细信息,请参阅如何配置可用于并行查询的处理器数 (SQL Server Management Studio)

请参阅

概念

affinity mask 选项
cost threshold for parallelism 选项
设置服务器配置选项
并行查询处理
配置并行索引操作
设置索引选项
max worker threads 选项

其他资源

RECONFIGURE (Transact-SQL)
sp_configure (Transact-SQL)
CREATE INDEX (Transact-SQL)
ALTER INDEX (Transact-SQL)
ALTER TABLE (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)
DBCC CHECKDB (Transact-SQL)
DBCC CHECKFILEGROUP (Transact-SQL)
查询提示 (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助