第一步:创建表格用于记录数据
use master
CREATE TABLE [dbo].[Rec_DBFile_Used](
[DBName] [nchar](30) NULL,
[FileName] [nchar](30) NULL,
[DataFileID] [nchar](10) NULL,
[Size_M] [numeric](18, 0) NULL,
[SpaceUsed] [numeric](18, 0) NULL,
[SpaceFree] [numeric](18, 0) NULL,
[SpaceUserate] [numeric](18, 0) NULL,
[MaxSize] [numeric](18, 0) NULL,
[Growth] [numeric](18, 0) NULL,
[is_percent_growth] [nchar](10) NULL,
[physical_name] [nchar](100) NULL,
[Rec_date] [datetime] NULL
) ON [PRIMARY]
第二步:创建 Job 定时写入记录
Job 详细配置请参考《SQL Server 邮箱告警配置》这里不做赘述。
将Job Step 中的代码替换如下即可:
use tempdb
go
insert into [master].[dbo].[Rec_DBFile_Used]
select
'tempdb',
name,
data_space_id,
size/128 ,
fileproperty(name,'spaceused')/128 ,
size/128 - fileproperty(name,'spaceused')/128 ,
fileproperty(name,'spaceused')*100.0/size ,
max_size/128 ,
growth ,
is_percent_growth ,
physical_name ,getdate()
from sys.database_files;
Job 成功执行后,可通过查询 [dbo].[Rec_DBFile_Used] 表观察 tempdb 的变化情况:
select * from [dbo].[Rec_DBFile_Used]