2. 跟踪标记 (Trace Flag) 3604, 3605 输出DBCC命令结果
跟踪标记: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) 这两个跟踪标记无官方文档记载。