Очень полезный скрипт- Database size growth as a list

Источник: Сценарий Database size growth as a list

 

Очень полезный скрипт- позволяет по размеру бакапа определить изменение размера базы с течением времени, рост базы. Это может оказаться крайне полезно при планировании размера используемого дискового пространства.

У скрипта один явный косяк- в случае если бакап производится по файловым группам он мешает все в кучу, надо будет допилить.

-- Transact-SQL script to analyse the database size growth using backup history. 
DECLARE @endDate datetime@months smallintSET @endDate = GetDate();  -- Include in the statistic all backups from today 
SET @months = 6;           -- back to the last 6 months. 
 
;WITH HIST AS 
   (SELECT BS.database_name AS DatabaseName 
          ,YEAR(BS.backup_start_date) * 100 
           + MONTH(BS.backup_start_dateAS YearMonth 
          ,CONVERT(numeric(101), MIN(BF.file_size / 1048576.0)) AS MinSizeMB 
          ,CONVERT(numeric(101), MAX(BF.file_size / 1048576.0)) AS MaxSizeMB 
          ,CONVERT(numeric(101), 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(mm, - @months@endDateAND @endDate 
    GROUP BY BS.database_name 
            ,YEAR(BS.backup_start_date) 
            ,MONTH(BS.backup_start_date)) 
SELECT MAIN.DatabaseName 
      ,MAIN.YearMonth 
      ,MAIN.MinSizeMB 
      ,MAIN.MaxSizeMB 
      ,MAIN.AvgSizeMB 
      ,MAIN.AvgSizeMB  
       - (SELECT TOP 1 SUB.AvgSizeMB 
          FROM HIST AS SUB 
          WHERE SUB.DatabaseName = MAIN.DatabaseName 
                AND SUB.YearMonth < MAIN.YearMonth 
          ORDER BY SUB.YearMonth DESCAS GrowthMB 
FROM HIST AS MAIN 
ORDER BY MAIN.DatabaseName 
        ,MAIN.YearMonth

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *