共用方式為


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

適用於:SQL ServerAzure SQL 受控執行個體

本文說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中設定 cost threshold for parallelism 伺服器組態選項。

關於平行處理原則的成本臨界值

cost threshold for parallelism 選項會指定 SQL Server 在具有多個 邏輯處理器的電腦上考慮平行計劃的臨界值。 此 cost threshold for parallelism 選項可以設定為 0 到 32,767 之間的任何值。

成本是查詢計劃中 預估 運算子成本的總和 (例如 CPU 和 I/O)。 這是一個僅用於計劃選擇的相對衡量標準;它不會測量實際運行時間。

某些 Transact-SQL 組件可能會抑制並行計劃。 例如,不可內嵌純量使用者定義函數 (UDF)、表格變數修改,以及某些系統呼叫。 SQL Server 只有在最佳序列方案的預估成本超過 cost threshold for parallelism 值時,才會評估平行替代方案,然後可能會選擇更便宜的平行方案。

限制

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

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

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

  • max degree of parallelism伺服器配置選項設定為 1

建議

此選項是進階選項,只能由經驗豐富的資料庫專業人員變更。

5 預設值是起點,而不是建議。 在新式 SQL Server 系統上,提高它有助於讓較小的 OLTP 查詢以序列計劃執行。 在進一步更改之前使用小增量並觀察完整的業務週期。 若需要將應用程式效能最佳化,請以較高和較低值來執行應用程式測試。

備註

在 Azure SQL 資料庫中,您無法設定 cost threshold for parallelism。 改用來 MAXDOP 控制平行處理原則。 如需詳細資訊,請參閱 變更 Azure SQL 資料庫 和 Azure SQL 受控執行個體中的預設 MAXDOP

在某些情況下,即使查詢的計劃成本小於目前 cost threshold for parallelism 值,仍可能選擇平行計劃。 使用平行或序列計劃的決定是基於最佳化程序早期提供的成本估計。 如需詳細資訊,請參閱查詢處理架構指南

備註

若要查看 cost threshold for parallelism 伺服器配置選項是否針對您的工作負載設定得太高或太低,請尋找下列指標。

平行處理原則設定的成本閾值 Description
太低了 - 太多 CPU 輕量查詢平行處理。

- 在 查詢存放區中,許多方案已 is_parallel_plan 設定為 1

- CXPACKETCXCONSUMER 主導等待類型統計資料。 你也可能會看到 THREADPOOLSOS_SCHEDULER_YIELD 等待。
太高了 - 工作負載的 CPU 密集型查詢沒有足夠平行,因此 CPU 使用率高於最佳。

- SOS_SCHEDULER_YIELD 主導等待類型統計資料。

權限

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

使用 SQL Server Management Studio

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

  2. 選取 [進階] 節點。

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

使用 Transact-SQL

此範例示範如何使用 sp_configure 將 的 cost threshold for parallelism 值設定為 20

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

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

RECONFIGURE;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

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

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

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