跟踪标志用于设置特定服务器特征或更改特定行为。
例如,跟踪标志 3226 是一种常用的启动跟踪标志,可取消显示错误日志中的成功备份消息。
跟踪标志经常用于诊断性能问题或调试存储过程或复杂的计算机系统,但 Microsoft 支持部门还可能建议将它们用于解决会对特定工作负载产生负面影响的行为。
当按照指示使用时,所有记录的跟踪标志和 Microsoft 支持部门推荐的跟踪标志在生产环境中都完全受支持。
请注意,此列表中的跟踪标志在其特定用途方面可能会有一些其他注意事项,因此建议仔细查看此处和/或支持工程师提供的所有建议。
此外,与 SQL Server 中的任何配置更改一样,最好在部署标志之前在非生产环境中全面测试该标志。
Remarks
SQL Server 中,有三种跟踪标志:查询、会话和全局。
查询跟踪标志在特定查询的上下文中处于活动状态。
会话跟踪标志对某个连接有效,且只对该连接可见。
全局跟踪标志在服务器级别上进行设置,对服务器上的每一个连接都可见。
某些标志只能作为全局标志启用,而某些标志在全局或会话作用域都可以启用。
下列规则适用:
- 若要让跟踪标志生效,请重启 SQL Server。
- 在会话级别启用的跟踪标志永远不会影响另一个会话,并且当打开会话的 SPID 注销时,该跟踪标志将失效。
使用以下方法之一可将跟踪标志设置为开或关:
使用 DBCC TRACEON 和 DBCC TRACEOFF 命令。
DBCC TRACEON (2528, -1)。
重新启动服务器时,使用 DBCC TRACEON 启用全局跟踪标志的方法将失效。
若要关闭全局跟踪标志,请在使用 DBCC TRACEOFF 时使用 -1 参数。
使用 -T 启动选项可以指定跟踪标志在启动期间设置为开。
使用启动选项无法启动会话级别的跟踪标志。
数据库引擎服务启动选项。
QUERYTRACEON 选项只能用于上表中所述的查询优化器跟踪标志。
DBCC TRACESTATUS 命令确定哪些跟踪标志当前是活动的。
实例:
跟踪标志
下表列出了 SQL Server 中可用的跟踪标志,并进行了说明。
备注:
托管实例尚不支持会话跟踪标志。
有关适用版本的详细信息,请参阅与特定跟踪标志关联的 Microsoft 支持文章。
SQL Server 的未来版本可能不支持跟踪标志行为。
示例:
例如下面这个是开启
1204:返回参与死锁的锁的资源和类型,以及受影响的当前命令。
1222:以不符合任何 XSD 架构的 XML 格式,返回参与死锁的锁的资源和类型,以及受影响的当前命令。
开启以后,会打印死锁日志到errorlog
DBCC TRACEON(1204,1222,-1)
DBCC TRACESTATUS(1204,1222,-1)

| 跟踪 标志 |
描述 |
| 139 |
作用域:仅全局 |
| 174 |
作用域:仅全局 |
| 176 |
作用域:全局或会话 |
| 205 |
作用域:仅全局 |
| 260 |
作用域: 全局或会话 |
| 272 |
作用域:仅全局 |
| 460 |
作用域:全局或会话 |
| 610 |
作用域:全局或会话 |
| 634 |
作用域: 仅全局 |
| 652 |
作用域:全局或会话 |
| 661 |
作用域:仅全局 |
| 692 |
作用域:全局或会话 |
| 715 |
作用域: 全局或会话 |
| 834 |
作用域:仅全局 |
| 845 |
作用域:仅全局 |
| 902 |
作用域:仅全局 |
| 1117 |
作用域: 仅全局 |
| 1118 |
作用域: 仅全局 |
| 1204 |
作用域: 仅全局 |
| 1211 |
作用域:全局或会话 |
| 1222 |
作用域:仅全局 |
| 1224 |
数据库引擎会将行锁或页锁升级为表(或分区)锁:
- 只有在 sp_configure 的 locks 参数设置为 0 时,这才适用。
- 服务器配置选项 (SQL Server)版本的组合自动配置的最大工作线程数。
作用域: 全局或会话
|
| 1229 |
作用域:仅全局 |
| 1236 |
作用域:仅全局 |
| 1237 |
作用域:全局、会话或查询 |
| 1260 |
作用域:仅全局 |
| 1448 |
作用域:仅全局 |
| 1462 |
作用域:仅全局 |
| 1800 |
作用域: 仅全局 |
| 2301 |
作用域:全局、会话和查询 |
| 2312 |
作用域:全局、会话或查询 |
| 2335 |
作用域:全局、会话或查询 |
| 2340 |
作用域:全局、会话或查询 |
| 2371 |
作用域:仅全局 |
| 2389 |
作用域:全局、会话或查询 |
| 2390 |
作用域:全局、会话或查询 |
| 2422 |
作用域:全局 |
| 2430 |
作用域:仅全局 |
| 2451 |
作用域:仅全局 |
| 2453 |
作用域:全局、会话或查询 |
| 2467 |
作用域:仅全局 |
| 2469 |
作用域:全局、会话或查询 |
| 2528 |
作用域:全局或会话 |
| 2549 |
作用域:仅全局 |
| 2562 |
作用域:仅全局 |
| 2566 |
作用域:仅全局 |
| 2592 |
作用域:全局和会话 |
| 3023 |
作用域:全局和会话 |
| 3042 |
作用域:仅全局 |
| 3051 |
作用域:仅全局 |
| 3205 |
作用域:全局或会话 |
| 3226 |
作用域:仅全局 |
| 3427 |
作用域:仅全局 |
| 3459 |
作用域:仅全局 |
| 3468 |
作用域:仅全局 |
| 3608 |
作用域:仅全局 |
| 3625 |
作用域:仅全局 |
| 3656 |
作用域:全局和会话 |
| 4136 |
作用域:全局或会话 |
| 4137 |
作用域:全局、会话或查询 |
| 4138 |
作用域:全局、会话或查询 |
| 4139 |
作用域:全局、会话或查询 |
| 4199 |
Microsoft 支持文章。
作用域:全局、会话或查询
|
| 4610 |
作用域: 仅全局 |
| 4616 |
作用域:仅全局 |
| 4618 |
作用域: 仅全局 |
| 4621 |
作用域: 仅全局 |
| 5004 |
作用域: 仅全局 |
| 6498 |
作用域:仅全局 |
| 6527 |
该跟踪标志的行为如下所示:
- 但是,如果使用了其他跟踪标志,则可能会生成内存转储。
- 但是,如果已经由于 CLR 中的内存不足异常生成了内存转储,则此跟踪标志将没有任何效果。
作用域:仅全局
|
| 6532 |
作用域:全局和会话 |
| 6533 |
作用域:全局和会话 |
| 6534 |
作用域:仅全局 |
| 7314 |
作用域:全局和会话 |
| 7412 |
作用域:仅全局 |
| 7471 |
作用域:仅全局 |
| 7745 |
作用域:仅全局 |
| 7752 |
作用域:仅全局 |
| 7806 |
作用域:仅全局 |
| 8011 |
作用域:全局和会话 |
| 8012 |
作用域:仅全局 |
| 8015 |
作用域:仅全局 |
| 8018 |
作用域:仅全局 |
| 8019 |
作用域:仅全局 |
| 8020 |
作用域:仅全局 |
| 8032 |
作用域:仅全局 |
| 8048 |
作用域:仅全局 |
| 8075 |
作用域:仅全局 |
| 8079 |
作用域:仅全局 |
| 8207 |
作用域:仅全局 |
| 8721 |
作用域:仅全局 |
| 8744 |
作用域:全局和会话 |
| 9024 |
作用域:仅全局 |
| 9347 |
作用域:全局、会话或查询 |
| 9349 |
作用域:全局、会话或查询 |
| 9389 |
作用域:全局或会话 |
| 9398 |
作用域:全局、会话和查询 |
| 9453 |
作用域: 全局、会话和查询 |
| 9471 |
作用域:全局、会话或查询 |
| 9476 |
作用域:全局、会话或查询 |
| 9481 |
作用域:全局、会话或查询 |
| 9485 |
作用域:仅全局 |
| 9488 |
作用域:全局、会话或查询
|
| 9495 |
作用域:全局或会话 |
| 9567 |
作用域:全局或会话 |
| 9571 |
作用域:全局或会话 |
| 9591 |
作用域:全局或会话 |
| 9592 |
作用域:全局或会话 |
| 9929 |
作用域:仅全局 |
| 9939 |
作用域:全局、会话或查询 |
| 10204 |
作用域:全局或会话 |
| 10316 |
作用域:全局或会话 |
| 11023 |
作用域:全局或会话 |
| 11024 |
作用域:全局或会话 |