by Bilgehan
16. Şubat 2009 22:41
Eğer birden çok SQL Server ve bunların içerisinde çok sayıda veri tabanına sahipseniz,haliyle bu Serverlar ve Veri Tabanları'nın kapladıkları büyükler hakkında bilgi sahibi olma ihtiyacı duyabilirsiniz.Özellikle Hosting hizmeti sağlayan makinelerin üzerinde,her bir site için bir Veri Tabanı sağlandığı bir durumda aşağıda sorguyla genel durum hakkında bilgi sahibi olabiliriz.
SELECT @@SERVERNAME AS serverAdi,
db.name AS databaseAdi,
SUM(CASE WHEN af.groupid = 0 THEN 0 ELSE af.size / 128.0E END) AS databaseBuyuklugu,
SUM(CASE WHEN af.groupid = 0 THEN af.size / 128.0E ELSE 0 END) AS logBuyuklugu,
SUM(af.size / 128.0E) AS toplamBuyukluk
FROM master..sysdatabases AS db
INNER JOIN master..sysaltfiles AS af ON af.[dbid] = db.[dbid]
WHERE db.name NOT IN ('distribution', 'Resource', 'master', 'tempdb', 'model', 'msdb') -- Sistem Veritabanları
AND db.name NOT IN ('Northwind', 'pubs', 'AdventureWorks', 'AdventureWorksDW') -- Örnek Veri Tabanlarını almıyoruz
GROUP BY db.name
Yukardaki sorgunun çıktısı da aşağıdaki gibi olmaktadır.(Aslında daha çok Server'a ve Veri Tabanına sahip bir makinede sorgu amacına daha çok hizmet edecektir.)
730798ac-60d7-4053-a982-0216bdbce841|0|.0