設定平行處理原則的成本閾值 (伺服器組態選項)

適用於:SQL Server

本文說明如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中設定平行處理原則 伺服器組態選項的成本閾值。 [平行處理原則的成本閾值] 選項會指定 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

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

  2. 選取 [進階] 節點。

  3. 在 [平行處理原則] 下,將 [平行處理原則的成本閾值] 選項變更為所需的值。 輸入或選取 0 到 32767 之間的值。

使用 Transact-SQL

此範例示範如何使用 sp_configurecost 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 選項之後

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