2. 跟踪标记 (Trace Flag) 3604, 3605 输出DBCC命令结果

时间:2022-04-30 15:31:42

跟踪标记:3604

功能:

  • 输出DBCC命令返回结果到查询窗口(通常是SSMS窗口),类似print命令的显示效果;

用途:

  • 常用于获取DBCC IND, DBCC PAGE命令的输出结果,因为这2个命令默认不输出任何结果。

举例:

USE master
GO
--开启跟踪标记 3604
DBCC TRACEON(3604) --查看页:(1,1,10) dbid 1(master), file id 1, page 10
DBCC PAGE(1,1,10) --关闭跟踪标记 3604
DBCC TRACEOFF(3604) --无法查看页:(1,1,10) dbid 1(master), file id 1, page 10
DBCC PAGE(1,1,10)

 

跟踪标记:3605

功能:

  • 输出DBCC命令返回结果到SQL Server错误日志(errorlog)里;

用途:

  • 常用于获取死锁的明细,因为在抓取死锁信息时,往往会开启1204, 1222全局跟踪标记:DBCC TRACEON(1222,-1);
  • 事实上DBCC TRACEON(1222,-1) = DBCC TRACEON(3605,1222,-1),也就是死锁的跟踪标记是会默认输出到错误日志的;

举例:

USE master
GO
--开启跟踪标记 3605
DBCC TRACEON(3605) --查看页:(1,1,10) dbid 1(master), file id 1, page 10
DBCC PAGE(1,1,10) --结果被保存在错误日志里,不在查询窗口显示
exec xp_readerrorlog 0,1,N'',N'',NULL,NULL,N'DESC'

小结:

(1) 跟踪标记 3604 和 3605,可用来控制DBCC命令返回结果的打印方式;

(2) 通常仅是查看DBCC命令结果,不需要开启全局跟踪标记-1;

(3) 这两个跟踪标记无官方文档记载。