使用SSMS的所有数据库的磁盘使用情况摘要

时间:2010-09-10 21:27:21

标签: sql-server sql-server-2008 ssms

如何在一个查询中查看给定SQL Server上所有数据库的所有磁盘使用情况。我的服务器上有大约15个不同的数据库,我想知道哪个数据库正在使用最大磁盘空间。

我知道我可以在SSMS中看到每个数据库的磁盘使用情况报告或登录到服务器并查看MDF / LDF文件的大小,但这似乎是一个非常明显的功能,它应该与SSMS一起提供,我似乎无法找到它

2 个答案:

答案 0 :(得分:9)

我不知道任何内置方式,但你可以使用(未​​记录的)sp_MSforeachdb程序。

CREATE TABLE #files(
    [dbname] [sysname] NOT NULL,
    [name] [sysname] NOT NULL,
    [physical_name] [nvarchar](260) NOT NULL,
    [size] [int] NOT NULL,
    [max_size] [int] NOT NULL,
    [growth] [int] NOT NULL
)

EXEC sp_MSforeachdb ' 
insert into #files
select ''[?]'',name,physical_name,size,max_size,growth
from [?].sys.database_files'


SELECT [dbname]
      ,[name]
      ,[physical_name]
      ,[size]
      ,[max_size]
      ,[growth]
  FROM #files

答案 1 :(得分:9)

此存储过程将有所帮助。

exec sp_helpdb;

你会得到这样的东西:

name      db_size       owner         dbid created     status                                                                                                                                                                                                                                                                          compatibility_level
--------- ------------- ------------- ---- ----------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------- 
Database1    7262.81 MB DOMAIN\Admin  5    Aug 25 2010 Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=FULL, Version=661, Collation=SQL_Latin1_General_CP1_CI_AS, SQLSortOrder=52, IsAutoCreateStatistics, IsAutoUpdateStatistics                                                                             100
Project27   22781.81 MB DOMAIN\User42 13   Oct 13 2011 Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=FULL, Version=661, Collation=SQL_Latin1_General_CP1_CI_AS, SQLSortOrder=52, IsTornPageDetectionEnabled, IsAnsiNullsEnabled, IsAutoCreateStatistics, IsAutoUpdateStatistics, IsQuotedIdentifiersEnabled 100
MyDBName       84.69 MB DOMAIN\Me     14   Oct 14 2011 Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=FULL, Version=661, Collation=SQL_Latin1_General_CP1_CI_AS, SQLSortOrder=52, IsAutoCreateStatistics, IsAutoUpdateStatistics, IsFullTextEnabled                                                          100

要了解有关特定数据库的更多信息,请执行以下操作:

exec sp_helpdb DatabaseName;