max degree of parallelism 選項

SQL Server 在具有多個微處理器或 CPU 的電腦上執行時,會偵測平行處理原則的最佳程度,也就是說,針對每一個平行計畫的執行,執行單一陳述式所要採用的處理器個數。您可以使用 max degree of parallelism 選項來限制要用於平行計畫執行的處理器數目。預設值是 0,亦即使用所有可用的處理器 (最多 64 個 CPU)。將 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)>。

[!附註]

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