SQL Server的每一個版本都已經逐漸層得越來越自我調整和自我維護了。然而,對於基本維護的需求,例如刪除索引片段,更新統計資料,檢查資料庫一致性,以及進行備份仍然是不會消失的。你可以想象一下,索引的維護就像是給你的汽車換油,備份就像是買保險。你可以沒有保險,但是一旦你需要它,它就在手邊。同樣的,你的汽車可以在沒有換油的情況下跑上幾千公裡,但是經常維護會產生更好的效能,並且可以讓你的汽車壽命延續幾年。
SQL Server 2005把維護計劃以SSIS包的方式予以實現,它為任務的定製提供更大的靈活性。現在開始計劃你要執行的Transact-SQL命令,以便察看,而不要用沒有文檔記載的SQL Server 2000中的預存程序。另一個你可以檢查的領域是執行曆史,它可以使解決問題的維護計劃在很大程度上簡單化。
SQL Server 2000中的維護計劃
讓我們簡單地回顧一下SQL Server 2000中的資料庫維護計劃是什麼樣子。你通過點擊一些嚮導的介面建立一個維護計劃,它讓你選擇完全備份、事務日至備份,索引維護和檢查資料庫一致性的選項。這聽起來很簡單,是嗎?是的,除非維護計劃是個“黑盒子”嚮導並沒有顯示給你剛才建立的任務會執行的Transact-SQL語句。
更進一步地講,如果你曾經檢查過通過維護計劃嚮導建立的任務的屬性,你就會知道任務的步驟看起來是下面這個樣子:
EXECUTE master.dbo.xp_sqlmaint N'-PlanID 7BCCF8E2-B8F4-4B92-BC3B-
F2FA1BAE25C0 -WriteHistory -VrfyBackup -BkUpMedia DISK -BkUpDB -UseDefDir -BkExt "BAK"'
為了瞭解這個維護計劃螢幕之後的事情,你必須讓你自己熟悉xp_sqlmaint擴充儲存程式。這個程式也叫做 SQLMAINT工具,大概有一打的開關。此外,你還可以從命令列調用SQLMAINT。如果維護計劃任務在任務曆史中曾經失敗過,在任務曆史中顯示了如下完全沒有意義的資訊片斷的話,也許這樣更重要: