當 SQL Server 在具備多個微處理器或 CPU 的計算機上運行時,它將爲每一個並行計劃執行檢測最佳並行度(即運行一個語句所使用的處理器數)。您能夠使用 max degree of parallelism 選項來限制執行並行計劃時所用的處理器數量。若要使服務器可以肯定最大並行度,請將此選項設置爲默認值 0。若將 maximum degree of parallelism 設置爲 0,SQL Server 將可以使用至多 64 個可用的處理器。若要取消生成並行計劃,請將 max degree of parallelism 設置爲 1。將該值設置爲大於 1 的數值來限制執行單個並行查詢時所使用的最大處理器數。並行度設置的最大值由 SQL Server 的版本、CPU 類型和操做系統控制。若是指定的值比可用的處理器數大,則使用實際可用數量的處理器。若是計算機只有一個處理器,則將忽略 max degree of parallelism 值。服務器
值spa |
SQL Server 版本操作系統 |
---|---|
1code |
SQL Server Expressorm |
2索引 |
SQL Server Workgroupip |
4ci |
SQL Server 2008 Web資源 |
4get |
SQL Server 2008 Standard |
32 |
在 x86 操做系統上運行的 SQL Server 2008 Enterprise。 |
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 選項是高級選項。若是使用 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)。