图灵小队—关于Oracle表的信息统计查看思路
一、oracle无法收集收集统计信息,诊断某些表统计信息不能自动收集原因
1、根据数据表变化量
因为oracle收集统计信息有前提条件是数据变化量是否超过10%,否则不会收集。查看变化量,使用视图DBA_TAB_MODIFICATIONS。(关于此视图见:https://www.topunix.com/post-6080.html)
select * from DBA_TAB_MODIFICATIONS where table_owner='MES_BZ' order by timestamp desc;
2、查看数据表的统计信息是否被锁定
如果表的统计信息被锁定,那么oracle是不会收集统计信息的。查看表的统计信息锁定情况。
查看视图dba_tab_statistics的字段stattype_locked的状态,如果是all,那么被锁定了。
select owner,table_name,stattype_locked from dba_tab_statistics where owner='MES_BZ';
锁定的可能原因:
(1)impdp导入数据时。
如果第一步是rows=N先导入metadata,然后导入数据,则会出现上述锁定情况。
官方有如下解释:If ROWS=n, then statistics for all imported tables will be locked after the import operation is finished。
二、查看统计信息
select * from dba_tables; select owner,table_name,tablespace_name,last_analyzed from dba_tables;