KB3171555 - 於 2016 SQL Server 新增追蹤旗標 9358,以停用複雜平行查詢中的批次模式排序操作

套用到
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

症狀

批次模式排序於 SQL Server 2016 中引入,相容性等級為 130。  如果查詢執行計畫包含平行批次模式排序,並搭配直接上游的平行運算子,你可能會遇到相較於列模式排序計畫的效能下降的情況。

這是因為平行批次排序透過單一執行緒將完全排序的資料輸出到上游的平行運算子 (例如平行合併連接運算子) 。  當上游平行運算子使用單執行緒處理時,因為輸入單執行緒批次模式排序運算子,效能下降。

此更新引入了追蹤旗標 9358,以禁用 大多數 平行運算子下的批次排序操作,包括合併連接、巢狀迴圈及串流聚合。 例外是排序上方的批次模式視窗聚合運算子,該操作符仍允許在排序下進行批次排序操作,因為 Windows 聚合運算子已優化用於讀取批次排序資料。

注意:若符合以下任一條件,批次模式排序操作也會被停用

  • 追蹤旗標 4199 已啟用。
  • QUERY_OPTIMIZER_HOTFIXES資料庫選項自 2016 年 CU6) SQL Server起啟用 (。
  • ENABLE_QUERY_OPTIMIZER_HOTFIXES查詢提示自 2016 SQL Server Service Pack 1 (SP1) CU4) 起 (使用。

解決方式

此問題首次在以下 SQL Server 累積更新中被修正:

建議:安裝最新的 SQL Server 累積更新

每次新的 SQL Server 累積更新都包含了之前累積更新中包含的所有熱修補與安全修補。 我們建議您下載並安裝最新的 SQL Server 累積更新:

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

了解 Microsoft 用來說明軟體更新的術語