首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 自動維護任務狀態快速檢查

     編輯:Oracle 資料庫相關知識

Oracle 11g+ 引入自動維護任務,包含優化器統計資訊收集、段空間建議、SQL 調優建議等。確認其啟用狀態是日常巡檢基本動作。本文提供一條 SQL 即可掌握三大核心任務狀態。

檢查查詢

SELECT client_name, status
FROM dba_autotask_client;

預期輸出範例

CLIENT_NAME                       STATUS
--------------------------------  --------
auto optimizer stats collection   ENABLED
auto space advisor                ENABLED
sql tuning advisor                ENABLED

三大任務功能說明

任務功能排程視窗 (預設)
auto optimizer stats collection自動收集表/索引/欄位統計資訊,支援優化器生成最佳執行計畫週一至週六 22:00-06:00,週日 06:00-14:00 (WEEKNIGHT_WINDOW, WEEKEND_WINDOW)
auto space advisor分析段空間碎片、建議壓縮/移動/重組同上
sql tuning advisor分析高負載 SQL、建議索引/剖析/重寫同上

常見管理操作

  • 啟用/停用單一任務:
    BEGIN
      DBMS_AUTO_TASK_ADMIN.ENABLE/DISABLE (
        client_name => 'auto optimizer stats collection',
        operation   => NULL,
        window_name => NULL);
    END;
    /
    
  • 修改維護視窗時間:
    BEGIN
      DBMS_SCHEDULER.SET_ATTRIBUTE(
        name      => 'WEEKNIGHT_WINDOW',
        attribute => 'repeat_interval',
        value     => 'freq=daily; byhour=22; byminute=0; bysecond=0');
    END;
    /
    
  • 檢查最近執行紀錄:
    SELECT client_name, window_name, job_status, job_start_time, job_duration
    FROM dba_autotask_job_history
    ORDER BY job_start_time DESC;

最佳實踐建議

  1. 生產環境 **建議保持啟用**,統計資訊過期是執行計畫劣化主因。
  2. 若維護視窗衝突業務高峰,調整視窗時間而非關閉任務。
  3. 大表統計收集耗時長,可鎖定統計 (DBMS_STATS.LOCK_TABLE_STATS) 或設定增量統計 (INCREMENTAL => TRUE)。
  4. 定期檢查 DBA_AUTOTASK_JOB_HISTORY 確認任務實際完成狀態,避免長期失敗未察覺。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved