SQL Serverda tüm veritabanlarının boyutlarını görmek isteyebiliriz. Tek tek bakmak yerine aşağıdaki scripti çalıştırarak tüm kullanıcı DBlerinin boyutlarını görüntüleyebiliriz.
use master declare @PageSize varchar(10) select @PageSize=v.low/1024.0 from master..spt_values v where v.number=1 and v.type='E' select name as DatabaseName, convert(float,null) as Size into #tem From sysdatabases where dbid>4 declare @SQL varchar (8000) set @SQL='' while exists (select * from #tem where size is null) begin select @SQL='update #tem set size=(select round(sum(size)*'+@PageSize+'/1024,2) From '+quotename(databasename)+'.dbo.sysfiles) where databasename='''+databasename+'''' from #tem where size is null exec (@SQL) end select DatabaseName as 'Veritabani Adi',Size as 'Boyut (MB)' from #tem order by DatabaseName drop table #tem
Sonucunda aşağıdakine benzer bir sonuç elde ediyor olmalısınız.
Mehmet Güzel Hocamın önerisi üzerine yukarıdaki uzun kodu kullanmak yerine şu kodla da istediğimizi elde edebiliriz.
select db_name(database_id) as Veritabani,sum(size)*8/1024 [Size (MB)] from sys.master_files where database_id>4 group by db_name(database_id)
/*Tüm kullanıcı veritabanlarını daha kısa bir SQL kodu ile aşağıdaki gibi de alabilirsiniz:*/select db_name(database_id),sum(size)*8/1024 [Size (MB)]from sys.master_files where database_id>4group by db_name(database_id)
Mehmet Hocam çok teşekkürler. Bu sorgu çok daha iyiymiş. Bende yazıyı editleyip altına ekliyorum hemen.Paylaşım için ayrıca teşekkürler.Saygılar.