监控数据库数据文件以及磁盘的空间情况是每个DBA必要的工作。sqlserver 2008 r2 sp1之后的版本提供了一个很实用的DMF sys.dm_os_volume_stats来返回数据文件以及文件所在磁盘的空间情况。相比之前的xp_fixeddrives更加的实用。
SELECT DB_NAME(df.database_id) as dbName,
physical_name AS DataFile,
size AS FileSize,
volume_mount_point AS Drive,
CAST(total_bytes/1024/1024/1024 AS VARCHAR) + ' GB' AS DriveSize,
CAST(available_bytes/1024/1024/ 1024 AS VARCHAR) + ' GB' AS SpaceAvailable
FROM sys.master_files df
CROSS APPLY sys.dm_os_volume_stats(df.database_id, df.file_id) ovs
where DB_NAME(df.database_id)='DEMO'
/*
dbName DataFile FileSize Drive DriveSize SpaceAvailable
------ ------------------------------------- -------- ------- --------- ---------------
DEMO C:\SQL2008R2\MSSQL\DATA\DEMO.mdf 10656 C:\ 97 GB 32 GB
DEMO C:\SQL2008R2\MSSQL\DATA\DEMO_log.LDF 264 C:\ 97 GB 32 GB
(2 row(s) affected)
*/
本文详细介绍了如何利用 SQL Server 2008 R2 SP1 及以后版本提供的 DMF sys.dm_os_volume_stats 函数来监控数据库的数据文件和磁盘空间状况,提供了实用的查询语句和实例分析,帮助数据库管理员实现高效的空间管理。

5840

被折叠的 条评论
为什么被折叠?



