max degree of parallelism 選項

SQL Server 在具有多個微處理器或 CPU 的電腦上執行時,會偵測平行處理原則的最佳程度,也就是說,針對每一個平行計畫的執行,執行單一陳述式所要採用的處理器個數。您可以使用 max degree of parallelism 選項來限制執行平行計畫所用的處理器數目。若要讓伺服器判斷平行處理原則的最大程度,請將此選項設定為 0 (預設值)。將平行處理原則的最大程度設定為 0 就會允許 SQL Server 使用所有可用的處理器 (最多 64 個處理器)。若要抑制平行計畫的產生,請將 max degree of parallelism 設定為 1。將此值設成大於 1 的數字會限制單一查詢執行所用的最大處理器數目。平行處理原則程度設定的最大值是由 SQL Server 版本、CPU 類型和作業系統所控制。如果指定的數值大於可用的處理器數目,就會使用可用處理器的實際數目。如果電腦只有一個處理器,則會忽略 max degree of parallelism 值。

SQL Server 版本

1

SQL Server Express

2

SQL Server Workgroup

4

SQL Server 2008 Web

4

SQL Server 2008 Standard

32

在 x86 作業系統上執行的 SQL Server 2008 Enterprise。

覆寫 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)>。

[!附註]

如果 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)>。