2

有谁知道如何获取托管在不同服务器上的数据库的大小?我基本上想在我的服务器上的作业中监视该数据库的大小。我试过类似的东西:

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 仅在服务器重新启动时更新?这将使其无法用于监控,那么您有更好的选择吗?

4

1 回答 1

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]
于 2012-10-17T18:02:11.053 回答