首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server Agent 作業效能監控清單:8 大關鍵檢查項目與優化策略

     編輯:關於SqlServer

前言:為什麼作業監控不可忽視?

每個 SQL Server 實例通常運行數十個排程作業(備份、索引維護、ETL、報表產生等)。DBA 常「設定後就忘記」,但設計不良或排程不當的作業會嚴重拖垮資料庫效能。本文提供系統性的 8 項檢查清單,助您主動發現並解決作業相關效能隱憂。

八大核心檢查項目

1. 是否執行了不必要的作業?

現象:報表已停用,但產生報表的每夜 ETL 作業仍在跑;維護精靈建立的作業與手動建立的重疊。

行動:

  • 盤點所有作業,確認各自業務必要性
  • 移除已無對應業務需求的作業
  • 檢查重複作業(如:兩個索引重組作業針對同資料庫)

2. 作業排程是否在離峰時段?

原則:非即時性作業(備份、索引維護、資料匯入)應排在 CPU/IO 閒置時段(通常深夜或週末)。

工具:使用 效能監視器 (PerfMon) 記錄一週以上的 Processor\% Processor Time、PhysicalDisk\% Disk Time,識別固定低載時段。

3. 同一伺服器上的作業是否有時間重疊?

風險:10 個資料庫同時備份會造成 IO 風暴、CPU 爭用、鎖升級。

策略:

  • 錯開啟動時間(如:DB1 01:00、DB2 01:30、DB3 02:00)
  • 使用 SQL Sentry 等第三方工具視覺化管理作業時間軸
  • 建立作業排程總表,標註預估執行時間與資源消耗

4. 非 SQL Server 作業(OS 層級)是否與資料庫作業衝突?

常見衝突:磁帶備份、磁碟重組、防毒掃描、Windows Update 重啟。

對策:將 OS 層級作業納入同一排程總表,確保與 SQL 作業錯峰。

5. 作業內的 T-SQL 是否經過優化?

檢查清單:

  • 在 SSMS 中開啟「實際執行計畫」分析每個作業步驟
  • 尋找:掃描而非尋找、鍵值查找、缺失索引建議、排序溢出至 tempdb
  • 執行 Database Engine Tuning Advisor (DTA) 分析工作負載
  • 為作業常用查詢建立覆蓋索引、篩選索引

6. 是否監控作業執行時間變化?

預警指標:平常 2 分鐘的作業,突然跑 15 分鐘(通常在特定日期如週日)。

原因:鎖爭用、統計資料過期導致計畫劣化、同時段有其他大型作業、磁碟 IO 瓶頸。

做法:建立基準線,設定閾值告警(如:執行時間超過平均值 3 倍發送通知)。

7. 目前作業是否有更好的替代方案?

傳統作業潛在替代方案優勢
T-SQL 批次匯入SSIS 封裝 / BULK INSERT / bcp平行處理、錯誤處理、資料流轉換內建
Agent 作業執行維護Ola Hallengren 維護腳本社群標準、參數化、支援 Availability Groups
自訂備份作業維護計畫 / 第三方備份工具 (Redgate, Veeam)壓縮、加密、雲端儲存、即時還原驗證
輪詢式資料同步Service Broker / Change Tracking / CDC事件驅動、低延遲、減少輪詢開銷

8. 作業失敗通知與重試機制是否完善?

  • 設定 Operators 接收 Email/NetSend/頁簽通知
  • 關鍵作業啟用「重試」(如:網路不穩導致的連結伺服器查詢)
  • 記錄作業歷程至資料表,定期分析失敗模式

實作建議:建立作業健檢儀表板

建議每季執行一次完整健檢,記錄下列指標:

SELECT 
    j.name AS JobName,
    j.enabled,
    h.run_date,
    h.run_time,
    h.run_duration,
    h.run_status,  -- 0=失敗 1=成功 2=重試 3=取消
    j.date_created,
    j.date_modified
FROM msdb.dbo.sysjobs j
JOIN msdb.dbo.sysjobhistory h ON j.job_id = h.job_id
WHERE h.step_id = 0  -- 僅看作業整體結果
ORDER BY h.run_date DESC, h.run_time DESC;

結合 PerfMon 數據與查詢存儲,即可建立「作業-資源-效能」三位一體的監控視野,讓 SQL Server Agent 真正成為穩定生產環境的守護者,而非隱形效能殺手。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved