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 用于描述软件更新的术语。