Oracle修改統計信息收集計划時間


一、查詢收集統計信息計划 

select * from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2  where t1.window_name=t2.window_name and t2.window_group_name in ('MAINTENANCE_WINDOW_GROUP','BSLN_MAINTAIN_STATS_SCHED');

select t1.window_name,t1.repeat_interval,t1.duration from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2 where t1.window_name=t2.window_name and t2.window_group_name in ('MAINTENANCE_WINDOW_GROUP','BSLN_MAINTAIN_STATS_SCHED');

 

以下是默認是統計信息收集時間

 

 

二、修改集統計信息計划的開始時間

BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name=>'"SYS"."TUESDAY_WINDOW"',
attribute=>'REPEAT_INTERVAL',
value=>'freq=daily;byday=TUE;byhour=9;byminute=0; bysecond=0');
END;

 

三、修改收集統計信息計划的持續時間

BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name=>'"SYS"."TUESDAY_WINDOW"',
attribute=>'DURATION',
value=>numtodsinterval(1200, 'minute'));
END;

 

numtodsinterval中也可以用 小時hour為單位

 

關閉單個調度窗口

BEGIN
  DBMS_AUTO_TASK_ADMIN.disable(client_name => 'auto optimizer stats collection',
                               operation   => NULL,
                               window_name => 'MONDAY_WINDOW');
END;


開啟單個調度窗口
BEGIN
  DBMS_AUTO_TASK_ADMIN.enable(client_name => 'auto optimizer stats collection',
                               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;
        /

然而我們在生產中會經常發現,自動收集統計信息會漏掉很多表,我們就需要用到手動收集統計信息、創建計划任務自動執行

 

四、查詢表的統計信息,手動收集統計信息

在Oracle中,存在執行計划不准的情況,懷疑表的統計信息是否收集,需要以下操作:
select table_name,num_rows,blocks,last_analyzed from user_tables where table_name='EMP';

說明:
-- table_name:展示表名 --num_rows:最后一次統計時的行數 --blocks:非當前塊數,最后一次統計時的塊數 --last_analyzed :最后一次統計的時間
--上述字段為null說明未統計


手動收集統計信息,並再次查看:
exec dbms_stats.gather_table_stats(ownname=>'META',tabname=>'EMP',estimate_percent=>10,method_opt=>'for all indexed columns');




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM