Oracle統計資訊的收集和維護
GATHER_STATS_JOB 自動統計資訊收集
物件之前從未收集過統計資訊,或由於某些原因沒有統計資訊
物件的統計資訊相對陳舊 (stale)
收集週期:
工作日: 22 點開始,持續 4 小時
週末: 6 點開始,持續 20 小時
11g 及以上 :
檢視自動收集任務及狀態:(11g及以上)
select client_name,status from Dba_Autotask_Client where client_name='auto optimizer stats collection';
檢視自動收集任務執行時間視窗:(11g及以上)
select WINDOW_NAME, WINDOW_NEXT_TIME, WINDOW_ACTIVE, OPTIMIZER_STATS from DBA_AUTOTASK_WINDOW_CLIENTS order by WINDOW_NEXT_TIME;
關閉自動收集任務:
BEGIN DBMS_AUTO_TASK_ADMIN.DISABLE( client_name => 'auto optimizer stats collection', operation => NULL, window_name => NULL); END; /
開啟自動收集任務:
BEGIN DBMS_AUTO_TASK_ADMIN.ENABLE( client_name => 'auto optimizer stats collection', operation => NULL, window_name => NULL); END; /
10g:
檢視自動收集任務及狀態:
select job_name,schedule_name,enabled,last_start_date,last_run_duration,next_run_date from dba_scheduler_jobs a where job_name = 'GATHER_STATS_JOB';
開啟 / 關閉自動收集任務:
方法一:
exec dbms_scheduler.disable('SYS.GATHER_STATS_JOB'); exec dbms_scheduler.enable('SYS.GATHER_STATS_JOB');
方法二:
alter system set "_optimizer_autostats_job"=false scope=spfile; alter system set "_optimizer_autostats_job"=true scope=spfile;
獲得當前自動收集統計資訊的執行時間
col WINDOW_NAME format a20 col DURATION format a20 col REPEAT_INTERVAL format a75 select t2.window_group_name,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;
修改統計資訊執行的時間
-- 修改 WEEKEND_WINDOW 的配置 ( 改成和 WEEKNIGHT_WINDOW 相同 , 即週一 ~ 週五 , 每日的 22:00 向後 8 小時 , 至次日凌晨 6 點 )
begin dbms_scheduler.set_attribute('WEEKEND_WINDOW','REPEAT_INTERVAL','freq=daily;byday=SAT,SUN;byhour=22;byminute=0;bysecond=0'); dbms_scheduler.set_attribute('WEEKEND_WINDOW','DURATION','+000 08:00:00'); end; /
-- 若要還原成以前預設設定 , 可執行如下
-- 週末兩天都是全天 :
begin dbms_scheduler.set_attribute('WEEKEND_WINDOW','REPEAT_INTERVAL','freq=daily;byday=SAT;byhour=0;byminute=0;bysecond=0'); dbms_scheduler.set_attribute('WEEKEND_WINDOW','DURATION','+002 00:00:00'); end; /
檢視統計資訊執行的歷史記錄
--JOB 執行歷史記錄
select * from dba_scheduler_job_log where job_name = 'GATHER_STATS_JOB';
-- 正在執行的 job
select * from dba_scheduler_running_jobs;
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70013625/viewspace-3008215/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle運維指令碼-收集統計資訊Oracle運維指令碼
- Oracle收集統計資訊Oracle
- Oracle 統計資訊收集Oracle
- 收集oracle統計資訊Oracle
- ORACLE 收集統計資訊Oracle
- 【統計資訊】Oracle常用的收集統計資訊方式Oracle
- ORACLE 統計資訊的收集與管理Oracle
- 收集oracle日常維護的工作命令Oracle
- [Oracle] Oracle收集統計資訊的取樣比例Oracle
- Oracle統計資訊自動收集Oracle
- oracle收集統計資訊job停止Oracle
- oracle統計資訊--直方圖的收集:Oracle直方圖
- 重新收集oracle表的統計資訊Oracle
- oracle 統計資訊檢視與收集Oracle
- oracle 11g統計資訊收集Oracle
- oracle 統計資訊過期判斷和自動收集Oracle
- 關於oracle自動收集統計資訊Oracle
- Oracle的自動統計資訊不收集直方圖的資訊Oracle直方圖
- [統計資訊系列7] Oracle 11g的自動統計資訊收集Oracle
- Oracle11g 統計資訊-----統計資訊自動收集任務Oracle
- Oracle11g 統計資訊——統計資訊自動收集任務Oracle
- Oracle10g 統計資訊的自動收集Oracle
- 【Oracle】11g Oracle自動收集統計資訊Oracle
- Oracle 11g手工收集表統計資訊Oracle
- Oracle 11g 統計資訊收集指令碼Oracle指令碼
- ORACLE 11g 自動收集統計資訊Oracle
- oracle統計資訊 使用dbms_stats包收集統計資料Oracle
- Oracle收集統計資訊之NO_INVALIDATE引數Oracle
- Oracle 11g 之自動收集統計資訊Oracle
- Oracle檢視查詢慢之統計資訊收集Oracle
- ORACLE10g自動收集CBO統計資訊Oracle
- 收集全庫統計資訊
- mysql如收集統計資訊MySql
- MySQL 5.5 統計資訊收集MySql
- [zt] Oracle10g 自動收集收集CBO統計資訊設定Oracle
- 收集統計資訊的簡單操作
- 統計資訊收集不完的解決
- 微課sql最佳化(3)、統計資訊收集(2)-如何收集統計資訊SQL