oracle 表的統計信息,跟他的執行計劃頗有關聯數據庫
執行計劃的正常是否,跟SQL的執行速度頗有關係oracle
首先講解一下如何查看一個數據庫的是否開啓自動統計分析對象
一、查看參數:STATISTICS_LEVEL(在V$PARAMETER表中查看數據的狀況),10g中默認爲typical,只有將STATISTICS_LEVEL參數設置爲ALL或者typical才能讓ORACLE識別過時的統計信息。內存
二、自動錶分析天天晚上10開始,那說明應該是JOB定時在處理,自動統計分析的JOB是:GATHER_STATS_JOB。監控
每一個對象都有相應的屬性,JOB相應的屬性記錄在DBA_SCHEDULER_JOBS這個字典中。統計
在DBA_SCHEDULER_JOBS這個視圖中特別須要關注的,enabled這個字段,TRUE:表示啓用,FALSE: 表示關閉數據
三、查看天天JOB的執行狀況查詢
經過查看DBA_SCHEDULER_JOB_RUN_DETAILS這個視圖,能夠觀察自動錶分析的JOB有沒有執行過 GATHER_STATS_JOB字典
如何開啓自動統計信息收集參數
一、修改參數值
alter system set STATISTICS_LEVEL=typical;
二、啓動GATHER_STATS_JOB這個JOB
BEGIN
DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
END;
如何關閉統計信息
一、修改參數值
alter system set STATISTICS_LEVEL=basic;
二、關閉GATHER_STATS_JOB這個JOB
BEGIN
DBMS_SCHEDULER.ENABLED('GATHER_STATS_JOB');
END;
監控數據的變化程度,關於增、刪、改數據的變化量
記錄在DBA_TAB_MODIFICATIONS視圖裏面。咱們在查詢DBA_TAB_MODIFICATIONS視圖的時候有可能查詢不到結果,或者查詢的結果不許確,這個時候須要用DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO過程將內存中的信息刷新到該視圖中