num_rows和count的值为何不同?
(2011-06-08 11:40:38)
标签:
杂谈 |
分类: oracle学习笔记 |
问:
dba_tables表中的一行为NUM_ROWS数值为何不与该表用SELECT COUNT(*)得到的行数一样?
如在dba_tables表中有一行table_name为gang,其相应字段num_ROWS数值为39326,但我用 select
count(*) from
gang得到的行数为39328行,按理说后者应该是对的,为何具体表中的行数与系统表中保存相应表的行数不同步?
答:
num_rows 是对表做 statistics analysis
后填充,表和索引的统计分析工作,在9i是要手工做的,10i是可以自动做的。但肯定要有延迟。dba_tables显示的表的记录数是对表进行分析以后才与表的真正记录数同步一次的
问:
有没有什么其他办法来实现让它及时同步呢?
答
在要统计的时候来一次同步
exec dbms_stats.gather_table_stats(OWNNAME
=>'CSID', TABNAME =>
'dba_extents',METHOD_OPT => 'FOR ALL');
前一篇:生活我该如何应对?

加载中…