oracle 表的統計資訊,跟他的執行計畫很有關聯
執行計畫的正常是否,跟sql的執行速度很有關係
首先講解一下如何檢視乙個資料庫的是否開啟自動統計分析
1、檢視引數:statistics_level(在v$parameter表中檢視資料的情況),10g中預設為typical,只有將statistics_level引數設定為all或者typical才能讓oracle識別過期的統計資訊。
2、自動表分析每天晚上10開始,那說明應該是job定時在處理,自動統計分析的job是:gather_stats_job。
每個物件都有相應的屬性,job相應的屬性記錄在dba_scheduler_jobs這個字典中。
在dba_scheduler_jobs這個檢視中特別需要關注的,enabled這個字段,true:表示啟用,false: 表示關閉
3、檢視每天job的執**況
通過檢視dba_scheduler_job_run_details這個檢視,可以觀察自動表分析的job有沒有執行過 gather_stats_job
如何開啟自動統計資訊收集
1、修改引數值
alter system set statistics_level=typical;
2、啟動gather_stats_job這個job
begin
dbms_scheduler.disable('gather_stats_job');
end;
如何關閉統計資訊
1、修改引數值
alter system set statistics_level=basic;
2、關閉gather_stats_job這個job
begin
dbms_scheduler.enabled('gather_stats_job');
end;
監控資料的變化程度,關於增、刪、改資料的變化量
記錄在dba_tab_modifications檢視裡面。我們在查詢dba_tab_modifications檢視的時候有可能查詢不到結果,或者查詢的結果不準確,這個時候需要用dbms_stats.flush_database_monitoring_info過程將記憶體中的資訊重新整理到該檢視中
oracle 自動表分割槽
oracle 新功能自動分割槽 實現 create table t interval partition by range created dba objects 檢視的乙個字段 interval numtoyminterval 1,month 分割槽劃分為乙個月 partition p1 valu...
Oracle 重新分析表使資料庫自動壓縮表。
oracle11g具有自動的表壓縮功能,但當insert語句未指定具體的列名時,會使用自動表壓縮功能失效。如該語句會使得表t test不能自動壓縮 insert into t test select from t test2 另外使用一些外部工具進行資料裝載 sqlload 也有可能使得表不能自動壓...
針對Oracle大表執行表分析
報表 資料庫相當於乙個資料倉儲,資料量一般來說都比較大,這個時候效能就要特別注意。為了促使 oracle 選擇最優的執行計畫,最好定期進行表分析,以使oracle得到正確的統計資訊。一般如果資料分布和表結構發生變化的話,就要重新進行表分析。報表資料庫資料分布發生變化時有發生。所以建議報表庫進行定期的...