修改自動收集統計資訊任務的執行時間

skyin_1603發表於2016-12-01
一般情況,oracle11G資料庫自動收集統計資訊任務的設定如下

1Oracle11g 的預設設定;

2user_tab_modifications 跟蹤記錄表的修改;

3、當分析物件的資料變化超過10% 時,Oracle 會重新分析;

4、定時任務gather_stats_job 負責定時排程收集統計資訊。

5、在Oracle11g 中,預設自動收集統計資訊的時間為:

# 週一~週五,22點啟動,收集4個小時

# 週六,週日,6點啟動,收集20個小時

---檢視自動統計資訊的時間:

sys@PROD>col WINDOW_NAME for a15

sys@PROD>col REPEAT_INTERVAL for a60

sys@PROD>col DURATION for a30

sys@PROD>set linesize 120

sys@PROD>SELECT t1.window_name, t1.repeat_interval, t1.duration

  2  FROM dba_scheduler_windows t1, dba_scheduler_wingroup_members t2

  3  WHERE t1.window_name = t2.window_name

  4  AND t2.window_group_name IN

  5  ('MAINTENANCE_WINDOW_GROUP', 'BSLN_MAINTAIN_STATS_SCHED');

 

WINDOW_NAME     REPEAT_INTERVAL                                              DURATION

--------------- ------------------------------------------------------------ ------------------------------

MONDAY_WINDOW   freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0        +000 04:00:00

TUESDAY_WINDOW  freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0        +000 04:00:00

WEDNESDAY_WINDO freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0        +000 04:00:00

W 

THURSDAY_WINDOW freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0        +000 04:00:00

FRIDAY_WINDOW   freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0        +000 04:00:00

SATURDAY_WINDOW freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0         +000 20:00:00

SUNDAY_WINDOW   freq=daily;byday=SUN;byhour=6;byminute=0; bysecond=0         +000 20:00:00

7 rows selected.

--備註:
#freq=daily:每天收集;
#;byday=SUN:一週之內的星期,例如這裡是星期日;
#
byhour=22 :每天的時間點時,這裡是22時;
#byminute=0:每天的的時間點分,這裡是0分,則第1分;
#
bysecond=0:每天的時間點秒,這裡是0秒,則第1秒;
#+000 20:00:00 :表示收集資訊的時間區間長,這裡表示20小時

---修改自動收集統計資訊計劃任務時間:

--首先停止原來計劃;

sys@PROD>BEGIN

  2  DBMS_SCHEDULER.DISABLE(

  3  name => '"SYS"."THURSDAY_WINDOW"');

  4  end;

  5  /

PL/SQL procedure successfully completed.

 

--修改計劃任務的執行時間:

sys@PROD>BEGIN

  2  DBMS_SCHEDULER.SET_ATTRIBUTE(

  3  name => '"SYS"."THURSDAY_WINDOW"',

  4  attribute => 'REPEAT_INTERVAL',

  5  value =>

  6  'freq=daily;byday=THU;byhour=22;byminute=0;bysecond=0');

  7  end;

  8  /

PL/SQL procedure successfully completed.


--啟用新的計劃任務的執行時間: 

sys@PROD>BEGIN

  2  DBMS_SCHEDULER.ENABLE(

  3  name => '"SYS"."THURSDAY_WINDOW"');

  4  end;

  5  /

PL/SQL procedure successfully completed.


--理解好的以上的檢視與修改過程,往後可以按照需求,可以自己按照需求去改動
自動收集統計資訊計劃任務的執行時間。

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

相關文章