KB3172787 - 修正:無法在 SQL Server 2016 中使用工作階段或查詢層級追蹤旗標 9347 來強制執行資料列模式排序

套用到
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)

症狀

請考慮以下案例:

  • 在 Microsoft SQL Server 2016 中,您會執行使用 SQL Server 2016 查詢處理器功能的查詢。 例如,您在批次模式中執行 SORT 運算子。
  • 相較於在 [列模式] 中執行相同的 SORT 運算子,您會遇到查詢效能降低的情形。
  • 若要解決此問題,請嘗試在工作階段層級啟用追蹤旗標 9347,或使用 QUERYTRACEON。 這樣做可停用批次模式排序。

在此案例中,SORT 運算子仍然以批次模式執行,並且忽略工作階段層級或查詢層級追蹤旗標。

解決方式

在 SQL Server 2016 中,您可以使用追蹤旗標 9347 來強制 SORT 運算子以資料列模式執行,而不是以批次模式執行。 套用 SQL Server 2016 累積更新 1 之後,您可以在工作階段層級或查詢層級成功啟用追蹤旗標 9347。

您也可以在伺服器層級、工作階段層級或查詢層級全域啟用此追蹤旗標。

注意: 不正確地使用追蹤旗標可能會降低工作負載效能。

如需詳細資訊,請參閱下列 Microsoft 知識庫文章的「簡介」一節:

2801413 啟用可由特定查詢層級上不同追蹤旗標控制的會影響計劃的SQL Server查詢最佳化器行為

狀態

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

參考資料

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