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;
DBMS_STATS.LOCK_TABLE_STATS) 或設定增量統計 (INCREMENTAL => TRUE)。DBA_AUTOTASK_JOB_HISTORY 確認任務實際完成狀態,避免長期失敗未察覺。