設定 cost threshold for parallelism (伺服器組態選項)
適用於:SQL Server
本文章描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中設定 cost threshold for parallelism 伺服器組態選項。 [平行處理原則的成本閾值] 選項會指定 SQL Server 為查詢建立及執行平行計劃的閾值。 SQL Server 只有當執行相同查詢的序列計劃其估計成本高於 [平行處理原則的成本閾值] 中所設定值時,才會建立並執行查詢的平行計劃。 成本是指在特定硬體組態下,執行序列計畫所需的估計成本,並不是時間單位。 cost threshold for parallelism 選項可設成從 0 到 32767 的任何值。
限制
成本是指成本的抽象單位,而非預估時間單位。 只有在對稱式多重處理器上才應該設定 cost threshold for parallelism 。
在下列條件中,SQL Server 會忽略 [平行處理原則的成本閾值] 值:
您的電腦只有一個邏輯處理器。
因為 [親和性遮罩] 組態選項的關係,只有一個邏輯處理器可供 SQL Server 使用。
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 伺服器層級權限。 系統管理員 (sysadmin) 及 serveradmin 固定伺服器角色會隱含 ALTER SETTINGS 權限。
使用 SQL Server Management Studio
在物件總管中,請以滑鼠右鍵按一下伺服器,然後選取 [屬性]。
選取 [進階] 節點。
在 [平行處理原則] 下,將 [平行處理原則的成本閾值] 選項變更為所需的值。 輸入或選取 0 到 32767 之間的值。
使用 Transact-SQL
此範例示範如何使用 sp_configure 將 cost threshold for parallelism
選項的值設定為 10
。
USE master;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE
GO
EXEC sp_configure 'cost threshold for parallelism', 10;
GO
RECONFIGURE
GO
如需詳細資訊,請參閱伺服器組態選項 (SQL Server)。
待處理:設定 cost threshold for parallelism 選項之後
設定會立即生效,不需要重新啟動伺服器。