了解 SQL Server 的復原效能

復原效能主要著重在損毀復原,而非還原備份之後的復原。不過,從備份還原之後,復原有可能達到最佳化。

復原時間是由兩種因素決定,一是上一次檢查點之後完成了多少工作,以及在資料遺失時,所有作用中交易完成了多少工作。SQL Server 使用名為**「復原間隔」的組態選項,來設定 SQL Server 復原資料庫時每個資料庫所需的最多分鐘數。此「復原間隔」設定會控制檢查點的頻率。對於線上交易處理系統 (OLTP) (使用短時間交易),「復原間隔」**是決定復原時間的主要因素。

安裝之後,SQL Server 會將**「復原間隔」設為零。只要「復原間隔」**設定是預設設定且現在沒有長時間執行的交易,每個資料庫的復原應該大約花一分鐘以內的時間。復原還原的資料時,如果資料遺失時正在進行長時間執行的交易,復原時間就由回復這些交易影響所花的時間來控制。不過,在 SQL Server 2005 及更新的版本中,損毀復原的恢復階段或資料庫鏡像容錯移轉時仍可使用資料庫,這個功能稱為「快速復原」。

如果資料庫的復原經常要花超過 1 分鐘的時間,**「復原間隔」**設定的值為零,而且不須復原長時間執行的交易,請考慮連絡主要支援提供者來解決復原效能問題。

復原時會依據資料庫的虛擬記錄檔來報告進度。復原作業在開始復原時,分析並掃描上一次檢查點之後的記錄檔。根據分析階段,復原作業會估計復原時需要讀取多少記錄檔。讀取的記錄檔數量可用來報告復原進度。

如果**「復原間隔」設定的預設值變更,資料庫復原就要同樣多倍的時間來完成。例如,如果「復原間隔」變更為 10,復原作業要比「復原間隔」**設定為預設值 (0) 花大約 10 倍長的時間來完成。

當記錄檔變大時,請使用較大的增量而不要用較小的增量,以確保 SQL Server 啟動的時間較短。記錄檔增量越小,SQL Server 要初始這些增量所花的時間就越久。

在還原作業之後復原時,如果長時間執行的交易已終止,請讓伺服器完成復原處理序。在復原長時間執行的交易期間內,中止伺服器處理序會導致長時間的復原。如果您擔心復原處理序的時間長度,請洽詢系統管理員以確定活動是否在伺服器上進行。

如果您正在執行長時間執行的交易,而且在交易期間內發生當機,SQL Server 會開始復原處理序。在此情況下,復原速度會增加,因為在重做階段仍可使用資料庫。

如需在完整復原模式下從備份中還原資料時,減少復原時間的方法,請參閱<縮短還原資料庫時的復原時間>。