症狀
批次模式排序是在 SQL Server 2016 的相容性層級 130 中引進的。 如果查詢執行計劃包含平行批次模式排序與直接上游的平行運算子,則與資料列模式排序計劃對應項相比,您可能會遇到效能降低的問題。
發生這種情況的原因是平行批次排序透過單一線程將完全排序的資料輸出到上游平行運算子 (例如,平行合併連接運算子) 。 當上游平行運算子使用單一執行緒處理時,由於傳入的單一執行緒批次模式排序運算子,會發生效能降低。
此更新引進追蹤旗標 9358,以停用 大多數 平行運算子下的批次模式排序作業,包括合併聯結、巢狀循環和串流聚合。 例外狀況是排序上方的批次模式 Windows 彙總運算子,它會繼續允許在其底下進行批次模式排序作業,因為 Windows 匯總運算子已針對讀取批次排序資料進行了最佳化。
附註:如果下列任一條件成立,也會停用批次模式排序作業
- 已啟用追蹤旗標 4199。
- 從 SQL Server 2016 CU6) 開始 (啟用 [QUERY_OPTIMIZER_HOTFIXES資料庫] 選項。
- 從 SQL Server 2016 Service Pack 1 (SP1) CU4) 開始 (使用 ENABLE_QUERY_OPTIMIZER_HOTFIXES 查詢提示。
解決方式
此問題已先在下列 SQL Server 累積更新中修正:
建議:安裝最新的 SQL Server 累積更新
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 我們建議您下載並安裝 SQL Server 的最新累積更新:
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
參考資料
了解 Microsoft 用來說明軟體更新的術語。