SQL Server 默认跟踪(Default Trace)获取某个Trace跟踪了哪些Event和column
检查Default Trace是否已经开启,如果返回Figure1中value为1,那就说明已经开启默认跟踪了;如果value为0表示关闭默认跟踪;
--查询Default Trace是否开启 SELECT * FROM sys.configurations WHERE configuration_id = 1568;
如果默认跟踪是关闭的,可以通过下面的方式进行开启和测试:
--开启Default Trace sp_configure 'show advanced options' , 1 ; GO RECONFIGURE; GO sp_configure 'default trace enabled' , 1 ; GO RECONFIGURE; GO --测试是否开启 EXEC sp_configure 'default trace enabled'; GO --关闭Default Trace sp_configure 'default trace enabled' , 0 ; GO RECONFIGURE; GO sp_configure 'show advanced options' , 0 ; GO RECONFIGURE; GO
获取当前正在使用的log.trc滚动更新文件的路径:
--获取当前跟踪文件的路径 SELECT * FROM ::fn_trace_getinfo(0)
选项property值代表的意义:
1:trace options,有2(滚动文件)、4、8(黑盒)三个值,请参考sp_trace_create;
2:file name,更准确来说是trace文件的路径;
3:max file size,设置最大滚动文件大小,当达到这个值就会创建新的滚动文件;
4:stop time,设置trace停止的时间;
5:当前状态(0=stopped, 1=running) ;
获取某个Trace跟踪了哪些Event和column
--获取某个Trace跟踪了哪些Event和column DECLARE @traceid INT SET @traceid = 1 SELECT TCA.category_id,TCA.name AS category_name ,TE.trace_event_id,TE.name AS trace_event_name ,TCO.trace_column_id,TCO.name AS trace_column_name FROM fn_trace_geteventinfo(@traceid) AS EI LEFT JOIN sys.trace_events AS TE ON EI.eventid = TE.trace_event_id LEFT JOIN sys.trace_categories AS TCA ON TE.category_id = TCA.category_id LEFT JOIN sys.trace_columns AS TCO ON EI.columnid = TCO.trace_column_id GO