--- in SQL Server, for databases using FULL recovery model, their transaction logs are backed up --- quite frequently in a typical env. This query gives hourly log backup size of a database for --- each day in the tabular format with B (backup_day, backup_hour, LogBackupSize_MB) as ( select backup_day, backup_hour, cast(sum(backup_size)/1000000 as int) LogBackupSize_MB from ( select convert(char(23), bs.backup_start_date, 111) as backup_day , cast(datepart(hh, bs.backup_start_date) as varchar) backup_hour , bs.backup_size as backup_size from msdb.dbo.backupset bs WHERE (CONVERT(datetime, bs.backup_start_date, 102) >= GETDATE() - 14) and bs.database_name = 'MYDBNAME' and bs.type='L' ) A group by backup_day, backup_hour ) select * from B -- cols to pivot: backup_day, hour, LogBackupSize_MB pivot ( max(LogBackupSize_MB) -- Pivot on this column for backup_hour in ([0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12], [13],[14],[15], [16],[17],[18],[19],[20],[21],[22],[23],[24] )) -- make backup_hour one of this as LogBackupSizeHourly -- Pivot table alias
In one of our production SQL Server databases, the transaction log backup happens every 15 min. Below is the sample output from the query:
No comments:
Post a Comment