共用方式為


伺服器組態:平行處理原則的成本閾值

適用於:SQL Server

本文說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中設定 cost threshold for parallelism 伺服器組態選項。 選項 cost threshold for parallelism 會指定 SQL Server 建立和執行查詢平行計劃的臨界值。 只有在針對相同查詢執行序列計劃的估計成本高於 中所 cost threshold for parallelism設定的值時,SQL Server 才會建立並執行查詢的平行計劃。 成本是指在特定硬體組態下,執行序列計畫所需的估計成本,並不是時間單位。 選項 cost threshold for parallelism 可以設定為 0 到 32767 的任何值。

限制

成本是指成本的抽象單位,而非預估時間單位。 只在對稱多處理器上設定 cost threshold for parallelism

SQL Server 會 cost threshold for parallelism 忽略下列情況下的值:

  • 您的電腦只有一個邏輯處理器。

  • SQL Server 只能使用單一邏輯處理器,因為 affinity mask 組態選項。

  • 選項 max degree of parallelism 會設定為 1

邏輯處理器是處理器硬體的基本單位,允許作業系統分派工作或執行執行緒內容。 每個邏輯處理器一次只能執行一個執行緒內容。 處理器核心是譯碼和執行指令的電路。 處理器核心可能包含一或多個邏輯處理器。 下列 Transact-SQL 查詢可用於取得系統的 CPU 資訊。

SELECT (cpu_count / hyperthread_ratio) AS PhysicalCPUs,
       cpu_count AS logicalCPUs
FROM sys.dm_os_sys_info;

建議

此選項是進階選項,只有具經驗的資料庫管理員或通過認證的 SQL Server 專業人員才可變更。

在某些情況下,即使查詢的成本計劃小於目前的 cost threshold for parallelism 值,還是可能會選擇平行計劃。 之所以會發生這種情形,是因為在決定要使用平行或序列計畫時,所依據的成本預估值是稍早在最佳化程序中提供。 如需詳細資訊,請參閱查詢處理架構指南

雖然的預設值 5 適用於大部分系統,但可能適用不同的值。 若需要將應用程式效能最佳化,請以較高和較低值來執行應用程式測試。

權限

不含參數或只含第一個參數之 sp_configure 上的執行權限預設會授與所有使用者。 以同時設定兩個參數的 sp_configure 來變更組態選項或執行 RECONFIGURE 陳述式時,使用者必須取得 ALTER SETTINGS 伺服器層級權限。 sysadminserveradmin 固定伺服器角色隱含地持有 ALTER SETTINGS 權限。

使用 SQL Server Management Studio

  1. 在物件總管中,請以滑鼠右鍵按一下伺服器,然後選取 [屬性]。

  2. 選取 [進階] 節點。

  3. 在 [平行處理原則]cost threshold for parallelism,將 選項變更為您想要的值。 輸入或選取 0 到 32767 之間的值。

使用 Transact-SQL

此範例示範如何使用 sp_configurecost threshold for parallelism 選項的值設定為 10

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'cost threshold for parallelism', 10;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

如需詳細資訊,請參閱伺服器設定選項

後續操作:設定平行處理原則的成本閾值選項之後

設定會立即生效,不需要重新啟動伺服器。