select table_name,num_rows from (select * from user_tables) order by table_name asc索引
问:同步
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显示的表的记录数是对表进行分析之后才与表的真正记录数同步一次的
问:
有没有什么其余办法来实现让它及时同步呢?
答
在要统计的时候来一次同步it
exec dbms_stats.gather_table_stats(OWNNAME =>'CSID', TABNAME => 'dba_extents',METHOD_OPT => 'FOR ALL');table