Oracle 11g/12c 預設啟用自動維護任務 (Auto Optimizer Stats Collection, Auto Space Advisor, SQL Tuning Advisor) 在維護窗口 (預設每天深夜、週末) 執行。本文提供啟用/停用特定任務的標準 PL/SQL 呼叫與查詢驗證語句。
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
CLIENT_NAME => 'sql tuning advisor',
OPERATION => NULL,
WINDOW_NAME => 'MONDAY_WINDOW');
END;
/
-- 全局停用 (所有窗口)
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
CLIENT_NAME => 'auto optimizer stats collection',
OPERATION => NULL,
WINDOW_NAME => NULL);
END;
/
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
CLIENT_NAME => 'auto space advisor',
OPERATION => NULL,
WINDOW_NAME => NULL);
END;
/
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
CLIENT_NAME => 'sql tuning advisor',
OPERATION => NULL,
WINDOW_NAME => NULL);
END;
/
窗口名稱 觸發時間 (預設) 持續時間 MONDAY_WINDOW ~ FRIDAY_WINDOW 週一至週五 22:00 4 小時 SATURDAY_WINDOW, SUNDAY_WINDOW 週六、週日 06:00 20 小時 WEEKEND_WINDOW 週六 00:00 48 小時 (涵蓋雙日) 五、最佳實踐:生產環境自動任務策略
- 統計收集:保持啟用,但調整
REPEAT_INTERVAL避開業務高峰 (如改為凌晨 03:00)。- SQL Tuning Advisor:若無 SQL Profile 自動實施需求,建議停用或改為人工觸發,避免佔用資源。
- Space Advisor:保持啟用,定期收縮段空間、回收碎片。
- 資源計劃:確認維護窗口關聯的
RESOURCE_PLAN(預設DEFAULT_MAINTENANCE_PLAN) 限制 CPU/IO,避免影響線上業務。查詢當前資源計劃:
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME = 'resource_manager_plan';
查看窗口關聯資源計劃:SELECT WINDOW_NAME, RESOURCE_PLAN FROM DBA_SCHEDULER_WINDOWS WHERE RESOURCE_PLAN IS NOT NULL;