問題
在數據庫管理員的日常任務中,數據庫備份占據了很重要的位置。這個任務一般通過維護計劃、定期的SQL Server Agent Jobs或者第三方工具的執行來完成。考慮到備份的重要性,有必要定期地分析這個過程的性能和效率。那麼我們要如何才能洞察任何數據備份過程的性能呢?
專家解答
讓我們通過一些不同的腳本來看看能夠洞察到什麼。為了達到這篇文章的目的,我在這個例子中創建了一個叫做BackupReport的數據庫。基於測試目的,執行全日志,差異日志和事務日志來列出腳本的值。查看下面的腳本:
腳本 – 創建備份過程統計數據
SELECT s.database_name,
m.physical_device_name, cast(s.backup_size/1000000 as varchar(14))+' '+'MB' as bkSize, CAST (DATEDIFF(second,s.backup_start_date , s.backup_finish_date)AS VARCHAR(4))+' '+'Seconds' TimeTaken, s.backup_start_date, CASE s.[type] WHEN 'D' THEN 'Full' WHEN 'I' THEN 'Differential' WHEN 'L' THEN 'Transaction Log' END as BackupType, s.server_name, s.recovery_model FROM msdb.dbo.backupset s inner join msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id WHERE s.database_name = 'BackupReport' ORDER BY database_name, backup_start_date, backup_finish_date
這是基於我們例子的結果:
現在,我們具有某個特定數據庫的所有備份過程的統計數據。有了這些數據,我們可以分析某個具體時期或不同備份類型的變化。