Oracle 11 sql tuning advisor sql access advisor關閉以及job檢視與停止

你好我是李白發表於2020-01-18

Oracle11g自動維護任務

參考部落格:http://blog.itpub.net/12798004/viewspace-1247636/

# 自動收集最佳化器統計資訊
    收集資料庫所有schema沒有統計資訊或統計資訊過期物件的最佳化器統計資訊。收集的統計資訊用於SQL查詢最佳化以改善SQL
    執行效能。
# 自動段建議
    評估高負載SQL的效能,給出如何調優這些SQL,可以配置將建議配置SQL profile自動實施。
# 自動SQL最佳化建議
    評估高負載SQL的效能,給出如何調優這些SQL,可以配置將建議配置SQL profile自動實施。
# 由於在實際中後兩者實際用處非常低,所以可以關閉,最佳化器收集統計資訊如果不需要可以選擇關閉,或者調整排程任務執行
window 
(1)scheduler job:透過dbms_scheduler建立與維護,可以透過
dba_scheduler_jobs,dba_scheduler_job_log,dba_scheduler_job_log
(2)job:透過dbms_job建立於維護,基本現在可以被dbms_scheduler代替,可以透過dba_jobs查詢。
(3)autotask:Oracle自動維護任務,可以透過dbms_auto_task_admin維護,可以透過
dba_autotask_task,dba_autotask_client,dba_autotask_window_clients查詢
(4)autotask client,自動維護任務透過client執行,client還有執行視窗client,可以透過*autotask*資料字典檢視查詢。
(5)window:任務執行視窗,透過dbms_scheduler與window相關procedure維護,即預先定義的固定或間隔的連續時間間隔
(6)window group/scheduler group:任務視窗組,可以由多個window member組成,可以透過
DBA_SCHEDULER_WINDOWS,DBA_SCHEDULER_WINDOW_DETAILS,DBA_SCHEDULER_WINDOW_GROUPS,DBA_SCHEDULER_WINDOW_LOG
DBA_SCHEDULER_JOBS中job_action為空,則program_name有相關程式,可以透過DBA_SCHEDULER_PROGRAMS檢視查詢相關
程式情況以及最終呼叫情況查詢相關資訊
# 自動維護期間會建立ORA$AT_開頭的任務,可以在dba_scheduler_job_log檢視中查詢
# DBA_AUTOTASK_CLIENT_JOB可以查詢正在執行的自動任務。
# 系統自動維護認為:自動收集統計資訊、SQL AUTOTUNE、SPACE ADVISOR是透過dbms_auto_task_admin管理,使用的
也是dbms_scheduler維護的window來定期執行自動維護任務系統自動維護任務只能啟用、禁用、修改週期、不能刪除。

2.維護視窗

# 維護視窗即自動維護任務執行的連續時間間隔
# 關閉sql tuning advisor
BEGIN
  dbms_auto_task_admin.disable(
    client_name => 'sql tuning advisor',
    operation   => NULL,
    window_name => NULL);
END;
/
BEGIN
  dbms_auto_task_admin.disable(
    client_name => 'auto space advisor',
    operation   => NULL,
    window_name => NULL);
END;
/
# 啟用
To enable this maintenance task again, use the ENABLE procedure, as follows:
BEGIN
  dbms_auto_task_admin.enable(
    client_name => 'sql tuning advisor',
    operation   => NULL,
    window_name => NULL);
END;
/
# 如果不想關閉,可以調整執行任務視窗,可以查詢dba_scheduler_windows查詢視窗
BEGIN
  dbms_auto_task_admin.disable(
    client_name => 'sql tuning advisor', 
    operation   => NULL, 
    window_name => 'MONDAY_WINDOW');
END;
/
# 關閉所有的自動任務
EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;

3.調整維護視窗時間

# 啟用或禁用特定任務某個指定的執行視窗
BEGIN
  dbms_auto_task_admin.disable(
    client_name => 'sql tuning advisor', 
    operation   => NULL, 
    window_name => 'MONDAY_WINDOW');
END;
/
# 啟用、禁用,修改某個視窗
BEGIN
  dbms_scheduler.disable(
    name  => 'SATURDAY_WINDOW');
  dbms_scheduler.set_attribute(
    name      => 'SATURDAY_WINDOW',
    attribute => 'DURATION',
    value     => numtodsinterval(4, 'hour'));
  dbms_scheduler.enable(
    name => 'SATURDAY_WINDOW');
END;
/
# 建立一個自定義視窗
BEGIN
  dbms_scheduler.create_window(
    window_name     => 'EARLY_MORNING_WINDOW',
    duration        =>  numtodsinterval(1, 'hour'),
    resource_plan   => 'DEFAULT_MAINTENANCE_PLAN',
    repeat_interval => 'FREQ=DAILY;BYHOUR=5;BYMINUTE=0;BYSECOND=0');
  dbms_scheduler.add_group_member(
    group_name  => 'MAINTENANCE_WINDOW_GROUP',
    member      => 'EARLY_MORNING_WINDOW');
END;
/
# 刪除一個任務視窗
BEGIN
  DBMS_SCHEDULER.REMOVE_GROUP_MEMBER(
    group_name  => 'MAINTENANCE_WINDOW_GROUP',
    member      => 'EARLY_MORNING_WINDOW');
END;
/

4.自動任務使用Resource Manager Plan說明

預設使用DEFAULT_MAINTENANCE_PLAN 資源管理計劃:需要透過DBMS_RESOURCE_MANAGER管理。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31439444/viewspace-2673938/,如需轉載,請註明出處,否則將追究法律責任。

相關文章