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

適用於:SQL Server 2022 (16.x)

SQL Server 2022 (16.x) 加入了一項新功能,稱為「平行處理原則程度」(DOP) 意見回應,可根據耗用時間及等候狀況來識別重複查詢平行處理原則的效率低落情形,進而改善查詢效能。 DOP 意見反應是智慧查詢處理系列功能的一部分,可解決重複查詢平行處理原則的欠佳使用狀況。 過度的平行處理原則可能會造成效能問題,而此案例有助於最佳化資源使用量,並改善工作負載的延展性。

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

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

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

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

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

  • 若要啟用 DOP 回饋,請在資料庫中啟用DOP_FEEDBACK資料庫範圍設定

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

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

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

DOP 意見反應適用於資料庫相容性層級 160 以上 (自 SQL Server 2022 (16.x) 加入) 所執行的查詢。

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

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

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

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

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

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

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

注意

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

平行處理原則程度 (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) 意見反應的持續性

適用於:SQL Server (從 SQL Server 2022 (16.x) 開始)

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

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