获取托管在链接服务器上的数据库的大小?

时间:2012-10-17 13:39:24

标签: sql sql-server sql-server-2008 tsql sql-server-2012

有谁知道如何获取托管在不同服务器上的数据库的大小?我基本上想要在我的服务器上的Job中监视该DB的大小。 我试过像:

select db_name(dbid), str(convert(dec(15),sum(size))* 8192/ 1048576,10) 
from [LINKEDSERVER].master.sys.sysaltfiles 
group by dbid order by 2 desc

由于某种原因,这给了我当前服务器而不是远程服务器上的数据。 另外,我在一个论坛上看到,sysaltfiles只在服务器重启时更新?这会使它无法用于监控,所以你有更好的选择吗?

1 个答案:

答案 0 :(得分:3)

尝试这个,它可以检查

EXEC ('SELECT d.name,
ROUND(SUM(mf.size) * 8 / 1024, 0) Size_MBs
FROM sys.master_files mf
INNER JOIN sys.databases d ON d.database_id = mf.database_id
WHERE d.database_id > 4 
GROUP BY d.name
ORDER BY d.name') AT [LINKEDSERVER]