共用方式為


平行處理原則程度 (DOP) 意見反應

適用於: SQL Server 2022 (16.x) 及後版本 Azure SQL Database AzureSQL Managed InstanceMicrosoft Fabric 中的 SQL 資料庫

平行度(DOP)反饋會根據經過的時間和等待時間,找出重複查詢的平行度效率低下,藉此改善查詢效能。

DOP 意見反應是智慧查詢處理系列功能的一部分,可解決重複查詢平行處理原則的欠佳使用狀況。 過度的平行處理原則可能會造成效能問題,而此案例有助於最佳化資源使用量,並改善工作負載的延展性。

DOP 意見反應會自行調整 DOP 以避免這些問題,免於預設或手動進行全面調整的困擾。

DOP 反饋適用於在資料庫相容性級別 160(隨 SQL Server 2022(16.x)引進)或更高版本,Azure SQL 資料庫,Azure SQL 管理的實例(使用 SQL Server 2025一律即時更新更新政策),以及 Fabric 中的 SQL 資料庫中運作的查詢。

如需其他查詢意見反應功能,請參閱記憶體授與意見反應基數估計 (CE) 意見反應

平行處理原則程度 (DOP) 意見反應可避免過度平行處理原則

DOP 意見反應會自行調整 DOP 以避免過度平行處理,免於預設或手動進行全面調整的困擾。 若系統判斷平行處理原則的使用情形效率不佳,DOP 意見反應便會從已設定的任何 DOP 降低下一次執行查詢作業的 DOP,並驗證是否有效。

平行處理原則通常有助於產生報告和分析查詢,或是處理大量資料的查詢。 反之,以平行方式執行的 OLTP 中心查詢則可能會遇到效能問題,花在協調所有執行緒的時間超過使用平行計畫的優點。 如需詳細資訊,請參閱平行計畫執行

  • 若要啟用 DOP 意見反應,請在資料庫中啟用 DOP_FEEDBACK資料庫範圍設定。 例如,在使用者資料庫中:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = ON;
    
  • 若要停用資料庫層級的 DOP 意見反應,請使用 DOP_FEEDBACK資料庫範圍設定。 例如,在使用者資料庫中:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = OFF;
    
  • 若要在查詢層級停用 DOP 意見反應,請使用 DISABLE_DOP_FEEDBACK 查詢提示。

使用 DOP 意見反應的每個資料庫皆須啟用查詢存放區,並處於「讀取寫入」狀態。 當平行處理原則程度的意見反應值達到穩定時,意見反應將會保存在 sys.query_store_plan_feedback 目錄檢視中。

系統只會保存已驗證的意見反應。 若調整後的 DOP 導致效能迴歸,DOP 意見反應便會回到上一個已知的良好 DOP。 在此狀況下,使用者取消的查詢也會視為迴歸。 DOP 意見反應不會重新編譯計畫。

當計畫重新編譯時,穩定的意見反應會進行重新驗證,且可能會向上或向下調整,但絕不會高於 MAXDOP 設定 (含 MAXDOP 提示)。

自 2022 SQL Server 2022 (16.x) 起,當次要複本的查詢資料存放區啟用時,DOP 意見反應也會感知可用性群組的次要複本。 DOP 意見反應可以不同方式套用至主要複本和次要複本。 但 DOP 意見反應不會保存在次要複本上,且在容錯移轉時,舊主要複本的 DOP 意見反應不會套用至新的主要複本。 在容錯移轉時,主要或次要複本所套用的意見反應會遺失。 查詢儲存庫自 SQL Server 2025(17.x)起,已在次要可用性群組副本中提供。 如需詳細資訊,請參閱次要複本的查詢存放區

平行處理原則程度 (DOP) 意見反應實作

平行處理原則程度 (DOP) 意見反應會根據已耗用及等候的時間,識別重複查詢的平行處理原則效率不佳的情形。 如果系統判斷平行處理原則的使用情形效率不佳,DOP 回饋將會從任何已設定的 DOP 降低下一次執行查詢作業的 DOP,並驗證其是否有效。

若要評估查詢資格,則會透過幾次執行來測量調整後的查詢耗用時間。 系統將忽略平行查詢執行外部的緩衝區閂鎖、緩衝區 IO 和網路 IO 等候,以調整各查詢的總耗用時間。 DOP 意見反應功能的目標為增加整體並行量,並大幅減少等候量 (即使查詢耗用時間會微幅增加)。

系統只會保存已驗證的意見反應。 若調整後的 DOP 導致效能迴歸,DOP 意見反應便會回到上一個已知的良好 DOP。 在此狀況下,使用者取消的查詢也會視為迴歸。

Note

DOP 意見反應不會重新編譯計畫。

平行處理原則程度 (DOP) 意見反應考量

預設不會在 SQL Server 2022 (16.x) 中啟用 DOP 意見反應。

使用 DOP 意見反應調整的所有查詢最小 DOP 皆為 2。 序列執行不在 DOP 意見反應的範圍內。

您可使用 sys.query_store_plan_feedback 目錄檢視來追蹤意見反應資訊。

若某查詢的查詢計劃強制透過查詢存放區,DOP 意見反應仍可用於該查詢。

目前,DOP 意見反應與查詢提示不相容。 如需詳細資訊,請參閱提示 (Transact-SQL) - 查詢查詢存放區提示

平行處理原則程度 (DOP) 意見反應的擴充事件

下列 XE 適用於平行處理原則程度 (DOP) 意見反應:

  • dop_feedback_eligible_query:發生於查詢計劃符合 DOP 意見反應的資格時。 若發生重新編譯或 SQL Server 執行個體重新啟動,則可能會引發其他事件。
  • dop_feedback_provided:發生於 DOP 意見反應已提供指定查詢的資料時。 此事件包含第一次提供意見反應時的基準統計資料,以及提供後續意見反應時的先前意見反應統計資料。
  • dop_feedback_validation:發生於針對基準或先前的意見反應統計資料,進行查詢執行階段統計資料的驗證時。
  • dop_feedback_stabilized:發生於查詢的 DOP 意見反應穩定時。
  • dop_feedback_reverted:發生於 DOP 意見反應已還原時。 當提供第一項意見反應時的意見反應驗證失敗時,便會引發此事件。 系統將還原至無意見反應的狀態。
  • dop_feedback_analysis_stopped:發生於查詢的 DOP 意見反應分析停止時。
  • dop_feedback_reassessment_failed :當 DOP 意見反應重新評估先前保存的意見反應選擇時發生,但發現保存的值不再有效。 此狀態會重新啟動意見反應迴圈。

平行處理原則程度 (DOP) 意見反應的持續性

如果 DOP 意見反應機制發現新程度的平行處理原則良好,此優化會保存在查詢存放區內,並會適當地套用至查詢以供日後執行。

這項功能已在 SQL Server 2022 (16.x) 中加入,並適用於資料庫相容性層級 160 以上、或 QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n 提示 160 以上所運作的查詢,且資料庫已啟用查詢存放區,並處於「讀取寫入」狀態時。