数据字典统计信息是用来描述数据字典基表(如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;