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