一个查看MSSQLServer数据库空间使用情况的存储过程 SpaceUsed

可以使用下面的存储过程来查看SQL Server数据库的空间使用情况:

CREATE PROCEDURE SpaceUsed
AS
BEGIN
  SET NOCOUNT ON;

  SELECT 
    DB_NAME() AS DatabaseName,
    ds.name AS FileName, 
    ds.type_desc AS FileType,
    ds.physical_name AS FilePath,
    size/128.0 AS CurrentSizeMB, 
    size/128.0 - CAST(FILEPROPERTY(ds.name, 'SpaceUsed') AS int)/128.0 AS FreeSpaceMB
  FROM sys.database_files ds
  ORDER BY ds.type, ds.name
END

运行:

EXEC SpaceUsed

结果类似:

DatabaseName FileName    FileType  FilePath                                 CurrentSizeMB FreeSpaceMB
TestDB       TestDB      ROWS      D:\SQLServer\DATA\TestDB.mdf              200           197
TestDB       TestDB_log  LOG       D:\SQLServer\DATA\TestDB_log.ldf          100           99

这个存储过程查询sys.database_files系统视图,获取数据库文件的名称、类型、路径、总大小和已使用空间信息,可以直观的查看数据库空间使用情况。

FILEPROPERTY函数获取每个文件的已使用空间字节数,与总大小计算可以得到可用空间。

这样可以方便地监控服务器上数据库的空间使用和剩余情况。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论