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

 

posted @ 2017-11-24 15:32  davidhou  阅读(391)  评论(0编辑  收藏  举报