本集手把手示範使用 **維護計畫精靈** 建立涵蓋完整性檢查、索引重組、索引重建、統計更新、歷程清除的生產級維護計畫。
精靈建立步驟完整實錄
- 啟動精靈:SSMS → 物件總管 → Management → Maintenance Plans → 右鍵「維護計畫精靈」。
- 計畫屬性:命名 (如 `Weekly_Full_Maintenance`)、描述、選擇 **「為每個任務建立獨立排程」** (SP2 新功能,強烈建議啟用,讓備份/索引/統計各自最佳時間窗)。
- 選擇維護任務:勾選
- 檢查資料庫完整性
- 重新組織索引
- 重新建立索引
- 更新統計資料
- 清除歷程記錄
注意:生產環境**不同時**包含「重新組織」與「重新建立」 (功能重疊)。此處為教學示範雙雙勾選。
- 任務執行順序:拖曳排序,**務必將「備份資料庫」 (若有) 或「檢查完整性」放第一順序**。原則:先備份/唯讀檢查,再執行任何會修改資料頁的任務 (索引/統計),確保失敗時可回滾至乾淨狀態。
- 配置各任務細節:
- 檢查完整性:所有資料庫、勾選「包含索引」、排程:每週日 02:00 (非尖峰)。
- 重新組織索引:所有資料庫、勾選「壓縮大型物件 (LOB)」、每週一 02:00。
- 重新建立索引:所有資料庫、填充因子「使用預設」、高級勾選「tempdb 排序」+「線上」、每週二 02:00。
- 更新統計資料:所有資料庫、更新「全部現有統計」、掃描「完整掃描」、每週三 02:00。
- 清除歷程:勾選三類歷程、保留 4 週、每週四 02:00。
- 報表與通知:勾選「寫入文字檔」指定資料夾 (如 `D:\SQLLogs\MaintLogs\`),**並啟用「郵件寄送操作員」** (需預先設定 Database Mail、Agent 操作員、啟用 Agent 郵件設定檔)。
- 完成精靈摘要確認:逐項檢視每任務高級選項,確無誤後點擊「完成」。
- 建立進度監控:精靈顯示每任務建立狀態 (建立 SSIS 套件、Agent 作業、排程),全綠燈後關閉。
精靈產生的物件
- 每個子計畫 → 一個 **SSIS 套件** (儲存於 `msdb.dbo.sysssispackages` 或檔案系統)。
- 每個子計畫 → 一個 **SQL Server Agent 作業** (含步驟執行對應套件、排程)。
- 維護計畫中繼資料 → `msdb.dbo.sysmaintplan_plans`、`sysmaintplan_subplans`、`sysmaintplan_log` 等。
常見精靈限制與對策
| 限制 | 對策 |
| 無法在單一任務中指定多資料庫不同排程 | 改用設計師手動建立子計畫,各自綁定排程 |
| 索引重組/重建無法指定碎片率閾值動態決定 | 改用自訂 T-SQL 任務或 SSIS 套件結合 `sys.dm_db_index_physical_stats` |
| 備份壓縮選項僅 Enterprise 顯示 | Standard 版無法使用,需升級或改用第三方工具 |
| 郵件通知失敗無詳細錯誤 | 檢查 Agent 郵件設定檔、Database Mail 記錄、操作員郵件地址 |
下集將示範**手動設計師建立進階工作流**、優先順序約束、平行執行、T-SQL 檢視、多伺服器部署。