--先确定是否开启了默认跟踪,没有则需开启跟踪一段时间 exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'default trace enabled'
--当前数据库文件历史增长记录 exec sp_executesql @stmt=N'begin try if (select convert(int,value_in_use) from sys.configurations where name = ''default trace enabled'' ) = 1 begin declare @curr_tracefilename varchar(500) ; declare @base_tracefilename varchar(500) ; declare @indx int ; select @curr_tracefilename = path from sys.traces where is_default = 1 ; set @curr_tracefilename = reverse(@curr_tracefilename); select @indx = patindex(''%\%'', @curr_tracefilename) ; set @curr_tracefilename = reverse(@curr_tracefilename) ; set @base_tracefilename = left( @curr_tracefilename,len(@curr_tracefilename) - @indx) + ''\log.trc'' ; select (dense_rank() over (order by StartTime desc))%2 as l1 , convert(int, EventClass) as EventClass , case convert(int, EventClass) when 92 then ''Data File Auto Grow'' when 93 then ''Log File Auto Grow'' when 94 then ''Data File Auto Shrink'' when 95 then ''Log File Auto Shrink'' end as description , DatabaseName , Filename , (Duration/1000) as [Duration(ms)] , StartTime , EndTime , (IntegerData*8.0/1024) as [ChangeInSize(MB)] from ::fn_trace_gettable( @base_tracefilename, default ) where EventClass >= 92 and EventClass <= 95 and ServerName = @@servername and DatabaseName = db_name() order by StartTime desc ; end else select -1 as l1, 0 as EventClass, 0 DatabaseName, 0 as Filename, 0 as Duration, 0 as StartTime, 0 as EndTime,0 as ChangeInSize end try begin catch select -100 as l1 , ERROR_NUMBER() as EventClass , ERROR_SEVERITY() DatabaseName , ERROR_STATE() as Filename , ERROR_MESSAGE() as Duration , 1 as StartTime, 1 as EndTime,1 as ChangeInSize end catch',@params=N''