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
- [統計資訊系列7] Oracle 11g的自動統計資訊收集Oracle
- 手動收集——收集統計資訊
- 收集統計資訊方案
- ORACLE19c新特性-實時統計資訊收集Oracle
- 【統計資訊】Oracle統計資訊Oracle
- 收集全庫統計資訊
- 【TUNE_ORACLE】定製化收集統計資訊SQL參考OracleSQL
- 微課sql最佳化(3)、統計資訊收集(2)-如何收集統計資訊SQL
- Nebula Graph 特性講解——RocksDB 統計資訊的收集和展示
- 6 收集資料庫統計資訊資料庫
- Oracle 11g系統自動收集統計資訊的一些知識Oracle
- 修改oracle 的統計資訊Oracle
- ORACLE表統計資訊與列統計資訊、索引統計資訊Oracle索引
- 【TABLE】Oracle表資訊收集指令碼Oracle指令碼
- 保護自己之手機定位資訊收集
- Oracle 統計資訊介紹Oracle
- ORACLE 11G 維護視窗和自動維護任務Oracle
- 維護區間資訊
- ORACLE在各作業系統訊號量與共享記憶體的維護Oracle作業系統記憶體
- 微課sql最佳化(8)、統計資訊收集(6)-統計資訊查詢SQL
- 啟用與禁用統計資訊自動收集
- 基於Python的滲透測試資訊收集系統的設計和實現Python
- 【ASK_ORACLE】Oracle如何恢復舊的統計資訊Oracle
- 【SCRIPT】Oracle資料庫基本資訊收集指令碼Oracle資料庫指令碼
- Oracle OGG日常維護Oracle
- 【SQL】Oracle資料庫資料量及效能資訊收集SQLOracle資料庫
- 如何收集Oracle程式中的SQL跟蹤資訊KUOracleSQL
- 企業微信教程:如何匯出和檢視收集到的資訊統計
- Oracle錶的歷史統計資訊檢視Oracle
- ORACLE analyse table方式收集表統計資訊導致SQL執行計劃不準確而效能下降OracleSQL
- 【STATS】Oracle遷移表統計資訊Oracle
- 【SCRIPT】Oracle統計資訊相關SQLOracleSQL
- oracle常用維護查詢Oracle
- 【統計資訊】如何備份和還原統計資訊