數據字典統計信息是用來描述數據字典基表(如TAB$,IND$等)、數據字典基表上的索引。
oracle在執行目標sql的過程中,需要查詢TAB$以獲得目標sql中相關表對象的統計信息,但是oracle使用內部遞歸sql(Recursive SQL)訪問TAB$時,也會需要TAB$的統計信息,以便CBO優化器知道以什麼方式去訪問TAB$。
可以使用 dbms_stats.gather_dictionary_stats和dbms_stats.delete_dictionaty_stats分別來收集很刪除數據字典統計信息。
當然也可以針對單個數據字典表收集統計信息。
dbms_stats.gather_table_stats('SYS','TAB$',cascade=>true,estimate_percent=>100);
SQL> select object_id,object_name from dba_objects where object_name='TAB$';
SQL> select SAVTIME,ROWCNT,BLKCNT,AVGRLN,ANALYZETIME from sys.wri$_optstat_tab_history where obj#=4;