適用於:SQL Server
Azure 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。- CXPACKET 並 CXCONSUMER 主導等待類型統計資料。 你也可能會看到 THREADPOOL 並 SOS_SCHEDULER_YIELD 等待。 |
| 太高了 | - 工作負載的 CPU 密集型查詢沒有足夠平行,因此 CPU 使用率高於最佳。 - SOS_SCHEDULER_YIELD 主導等待類型統計資料。 |
權限
不含參數或只含第一個參數之 sp_configure 上的執行權限預設會授與所有使用者。 以同時設定兩個參數的 sp_configure 來變更組態選項或執行 RECONFIGURE 陳述式時,使用者必須取得 ALTER SETTINGS 伺服器層級權限。
ALTER SETTINGS 和 serveradmin 固定伺服器角色隱含地持有 權限。
使用 SQL Server Management Studio
在物件總管中,請以滑鼠右鍵按一下伺服器,然後選取 [屬性]。
選取 [進階] 節點。
在 [平行處理原則] 下
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
如需詳細資訊,請參閱伺服器設定選項。
後續操作:設定平行處理原則的成本閾值選項之後
設定會立即生效,不需要重新啟動伺服器。