SQL Server’da Veritabanı Boyutu Büyümesi Geçmişini Görüntülemek
Herkese merhaba,
Bu yazıda sizlere SQL Server’da veritabanı boyutu büyümesi geçmişini görüntülemek hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda geçmişe yönelik de olmak üzere veritabanı boyutu büyümesini aylık olarak kontrol etmek isteyebiliriz.
Aşağıdaki kodu kullanarak tüm veritabanları için bu sonucu alabilirsiniz.
DECLARE @startDate DATETIME;
SET @startDate = GETDATE();
SELECT PVT.DatabaseName,
PVT.[0],
PVT.[-1],
PVT.[-2],
PVT.[-3],
PVT.[-4],
PVT.[-5],
PVT.[-6],
PVT.[-7],
PVT.[-8],
PVT.[-9],
PVT.[-10],
PVT.[-11],
PVT.[-12]
FROM
(
SELECT BS.database_name AS DatabaseName,
DATEDIFF(mm, @startDate, BS.backup_start_date) AS MonthsAgo,
CONVERT(NUMERIC(10, 1), AVG(BF.file_size / 1048576.0)) AS AvgSizeMB
FROM msdb.dbo.backupset AS BS
INNER JOIN msdb.dbo.backupfile AS BF
ON BS.backup_set_id = BF.backup_set_id
WHERE NOT BS.database_name IN ( 'master', 'msdb', 'model', 'tempdb' )
AND BF.[file_type] = 'D'
AND BS.backup_start_date
BETWEEN DATEADD(yy, -1, @startDate) AND @startDate
GROUP BY BS.database_name,
DATEDIFF(mm, @startDate, BS.backup_start_date)
) AS BCKSTAT
PIVOT
(
SUM(BCKSTAT.AvgSizeMB)
FOR BCKSTAT.MonthsAgo IN ([0], [-1], [-2], [-3], [-4], [-5], [-6], [-7], [-8], [-9], [-10], [-11], [-12])
) AS PVT
ORDER BY PVT.DatabaseName;
Kodu çalıştırdığımız zaman aşağıdaki sonucu göreceksiniz.
Görüldüğü üzere her ay için veri gelmiş oldu. Sorgu, işlemi yedekleme geçmişini kullanarak yapmaktadır. Veri gelmiyorsa yedekleme geçmişiniz yoktur. Buna dikkat edelim.
Eğer hali hazırda aktif ve yoğun olarak çalışan bir veritabanınız varsa değerlerin -12’den 0’a doğru arttığını göreceksiniz. -12 ifadesi 12 ay önceyi ifade etmektedir. 0 ise şu anki zamanı ifade etmektedir.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.