启用计划影响 SQL Server 查询优化程序行为,可以通过不同的跟踪标志的特定查询级别进行控制

文章翻译 文章翻译
文章编号: 2801413 - 查看本文应用于的产品
展开全部 | 关闭全部

简介

从 Microsoft SQL Server 2000 Service Pack 3 (SP3),查询处理器小组采用的策略,可能会影响执行的任何修复程序计划查询的 SQL Server 必须通过跟踪标志进行控制。除可能会导致不正确的结果或损坏的 bug 的修复程序,关闭了默认情况下,这些修补程序,并启用该修补程序所需的跟踪标志。此策略有助于避免意外的更改现有安装修补程序或安全更新时可能出现的工作负载的执行计划。

通常在启动时或在用户会话中启用跟踪标记。但是,这可能在现有的数据库应用程序产生意外的影响某些查询。例如,请考虑应用程序或工作负荷包含多个查询,并用这些查询的一些为提高控制相应的修补程序的跟踪标记系统低效的查询执行计划。但是,其他查询可能会遇到非最佳的执行计划时将应用相同的跟踪标志。这是因为执行计划选择将影响所有的实例中进行编译的查询,或启用的会话时相应的跟踪标志。这取决于查询和数据,更改所使用的查询优化器的模型可能会同时提高并降低对特定查询执行计划的效率和编译时间。

如果跟踪标记以有害的方式,影响任何查询执行计划,但提高了其他查询的执行计划,您可能需要启用相应的跟踪标记特定查询。可以通过启用批处理 (通过使用 DBCC TRACEON 命令) 从右前该目标查询时,跟踪标记,然后查询后禁用跟踪标志 (通过使用 DBCC TRACEOFF 命令) 的权限来执行此操作。但是,这不总是可能控制事务处理性 SQL 批处理文本为现有应用程序。您可能会在现有的工作负荷,导致较差的查询性能,并且想要应用对查询可用的影响计划的更改,而无需更改批处理文本本身。可以使用查询级别选项以启用特定查询的跟踪标记来执行此操作。

"QUERYTRACEON"从 Microsoft SQL Server 2005 Service Pack 2 (SP2) 和 Microsoft SQL Server 2008 中,该查询级别选项才可用。此选项允许您仅在单个查询编译期间启用的计划影响的跟踪标记。像其他查询级别的选项,可以计划参考线一起使用以匹配项从任何会话中,正在执行的查询的文本并此查询在编译时自动应用的影响计划的跟踪标记。

更多信息

QUERYTRACEON 提示是可用查询提示,查询优化器跟踪标志由控制影响计划的更改。QUERYTRACEON 提示指定到其他类似OPTION子句的一部分 查询提示.

语法

<querytraceon_hint> ::=
       { QUERYTRACEON trace_flag_number }

参数

QUERYTRACEON trace_flag_number

指定查询的编译期间启用了影响计划的跟踪标记号。支持下面的跟踪标记号:
收起该表格展开该表格
跟踪标记 Microsoft 知识库文章在可用
4199974006对于 SQL Server 2005 的服务包 3; 累积更新 6
累积更新 7 为 SQL Server 2008 中 ;
SQL Server 2008 Service pack 1 ; 累积更新 7
SQL Server 2008 R2 及更高版本。
按 4199 涵盖的所有跟踪标记974006对于 SQL Server 2005 的服务包 3; 累积更新 6
累积更新 7 为 SQL Server 2008 中 ;
SQL Server 2008 Service pack 1 ; 累积更新 7
SQL Server 2008 R2 及更高版本。
23352413549SQL Server 2005 及更高版本。
23402009160SQL Server 2005 及更高版本。
2389、 2390年SQL Server 2005 及更高版本。有关 SQL Server 2005 中的已知问题的环境,请参阅 929278。
4136980653对于 SQL Server 2005 的服务包 3; 累积更新 9
SQL Server 2008 Service pack 1 ; 累积更新 7
SQL Server 2008 R2 及更高版本的累积更新 2。
41372658214SQL Server 2008 Service pack 2; 累积更新 8
SQL Server 2008年服务包 3; 累积更新 7
SQL Server 2008 R2 Service pack 1 ; 累积更新 5
SQL Server 2012年及更高版本的累积更新 1。
41382667211SQL Server 2008 r2 ; 累积更新 13
SQL Server 2008 R2 Service pack 1 ; 累积更新 7
累积更新 1 的 SQL Server 2008 R2 Service Pack 2;
对于 SQL Server 2012年及更高版本的累积更新 2.


以下计划影响跟踪标志是 Microsoft SQL Server 2014年社区技术预览 1 (CTP1) 和 Microsoft SQL Server 2014年社区技术预览 2 (CTP2) 中可用:

收起该表格展开该表格
跟踪标记说明
9481当使用默认数据库兼容级别 120 运行 SQL Server 2014年时使用。跟踪标志 9481 强制查询优化器版本 70 (SQL Server 2012年版本) 的基数评估程序创建时要使用的查询计划。
2312当数据库兼容级别 110,即数据库兼容级别为 SQL Server 2012年与运行 SQL Server 2014年时使用。跟踪标志 2312年强制查询优化器版本 120 (SQL Server 2014年版本) 的基数评估程序创建时要使用的查询计划。

备注

QUERYTRACEON 选项不支持跟踪标记之外的表中列出的跟踪标志。但是,此选项不会返回任何错误或警告如果使用不受支持的跟踪标记号。如果指定的跟踪标记不会影响查询的执行计划,将以静默方式忽略选项。

如果可以OPTION子句中指定多个跟踪标记 QUERYTRACEON trace_flag_number 与不同的跟踪标记号重复。

可以在中使用 QUERYTRACEON 选项 计划指南.

示例

  • 您可以启用所有影响计划的修补程序由特定查询的跟踪标记 4199 控制。例如,您可以使用下面的查询:
    SELECT x FROM correlated WHERE f1 = 0 and f2 = 1 OPTION (QUERYTRACEON 4199)
  • 您可以启用所有影响计划的修补程序由跟踪标记 4199 和特定查询 4137 控制。例如,您可以使用下面的查询:
    SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137)

属性

文章编号: 2801413 - 最后修改: 2014年1月7日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2014 Enterprise Community Technology Preview 2
  • Microsoft SQL Server 2014 Standard Community Technology Preview 2
关键字:?
kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 2801413
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com