在论坛看到一个帖子,说数据库变慢了一段时间,发现这段时间数据库文件的最后修改时间跟变慢的世界一致,想知道这段时间是否文件确实增长了。
其实SQL Server提供了数据增长的Event,而且Default Trace里面就记录了。
下面我们做个测试,我创建了一个新的数据库,创建表然后插入数据:
create table test(test varchar(100))
go
insert into test values (replicate('a',100))
go 100000
现在查询Default Trace:
declare @TraceFile as varchar(max)
select @TraceFile = path from sys.traces
select DatabaseName,FileName,StartTime
from ::fn_trace_gettable(@TraceFile,default)--替换你自己的Trace文件地址
where EventClass = 92 or EventClass = 93 and StartTime > '2013-06-2813:09:49.767'
关于Event 92和93的解释:
select * from sys.trace_events where trace_event_id = 92 or trace_event_id = 93
结果如下:
可以看到数据库增长的记录。