Sql server 在SQL Server 2005中查找多个数据库的大小

Sql server 在SQL Server 2005中查找多个数据库的大小,sql-server,database,sql-server-2005,size,Sql Server,Database,Sql Server 2005,Size,我想知道是否有sql语句可以获取服务器上所有数据库的当前大小,而不是右键单击并转到每个数据库的属性 查看表格 此查询将提供实例中所有内容的总大小: SELECT SUM(size*8192.0) AS totalsize FROM sys.master_files; 如果您可以使用存储过程,这应该可以: exec sp_msforeachdb 'use ? exec sp_spaceused' 最简单的方法是使用: exec [sys].[sp_databases] go 这会产生如下结果

我想知道是否有sql语句可以获取服务器上所有数据库的当前大小,而不是右键单击并转到每个数据库的属性

查看表格

此查询将提供实例中所有内容的总大小:

SELECT SUM(size*8192.0) AS totalsize
FROM sys.master_files;

如果您可以使用存储过程,这应该可以:

exec sp_msforeachdb 'use ? exec sp_spaceused'

最简单的方法是使用:

exec [sys].[sp_databases]
go
这会产生如下结果:

Name        Size  Remarks
mydatabase1 29888 NULL
mydatabase2 13760 NULL
mydatabase3 11776 NULL
master      5376  NULL
model       3008  NULL
msdb        7616  NULL
tempdb      2560  NULL
Name        Log Size (MB) Log Space Used (%) Status
master      1.242188      50.9434            0
tempdb      0.7421875     61.25              0
model       0.7421875     38.94737           0
msdb        1.992188      35.88235           0
mydatabase1 5.554688      18.55661           0
mydatabase2 2.742188      32.9594            0
mydatabase3 8.992188      26.58015           0
有关与数据库关联的事务日志的大小,请使用:

dbcc sqlperf(logspace)
go
这会产生如下结果:

Name        Size  Remarks
mydatabase1 29888 NULL
mydatabase2 13760 NULL
mydatabase3 11776 NULL
master      5376  NULL
model       3008  NULL
msdb        7616  NULL
tempdb      2560  NULL
Name        Log Size (MB) Log Space Used (%) Status
master      1.242188      50.9434            0
tempdb      0.7421875     61.25              0
model       0.7421875     38.94737           0
msdb        1.992188      35.88235           0
mydatabase1 5.554688      18.55661           0
mydatabase2 2.742188      32.9594            0
mydatabase3 8.992188      26.58015           0
在一个表中列出服务器上所有数据库的数据大小、所有者、创建日期等

如果您想深入到特定的数据库中,查看可以使用的各个表的大小

use MyFunkyDb
go
EXECUTE sp_MSforeachtable 'EXECUTE sp_spaceused [?]'

虽然这会为每个数据库返回一个结果集,但看起来有点凌乱。我更喜欢使用我的答案,它给出了一个很好的表。嘿,托马斯,有没有办法直接将第一个查询的输出格式化为MB?非常感谢你!