Oracle-内部对象统计信息

安稳与你 提交于 2019-12-01 08:03:23

系统对象统计信息用来票数oracle数据库里的一些内部表(X$系列表)的详细信息。实际上X$系列表实际上只是Oracle自定义的内存结构,X$表里面会存储与示例相关的各种信息。

在数据库运行的阶段,X$是被频繁访问的。

一次性收集所有X$表的内部对象统计信息:

SQL> exec dbms_stats.gather_fixed_objects_stats();

一次性删除所有X$表的内部对象统计信息:

SQL> exec dbms_stats.delete_fixed_objects_stats();

 

当然也可以通过dbms_stats包来对单个对象收集统计信息:

SQL> exec dbms_stats.gather_table_stats('SYS','X$KCCRSR',cascade=>true,estimate_percent=>100);

相应的,也可以对单个内部表对象删除统计信息:

SQL> dbms_stats.delete_table_stats('SYS','X$KCCRSR');

 

不建议频繁的收集内部对象统计信息,因为在收集内部对象统计信息的时候oracle会持有相关对象的Latch(mutex)会损耗CPU资源,对于系统而言压力将非常大。

如果诊断出来是内部对象统计信息的问题,可以通过收集单个内部对象统计信息,而不要一次性收集所有内部对象统计信息。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!