今天遇到一個奇怪的問題,同一張表,同一個用戶下
select count(*) from bt_user;
select TABLE_NAME,NUM_ROWS,owner from dba_all_tables where owner='用戶名大寫' order by num_rows desc;下統計的數據量不一致。count爲1000條,dba_all_tables顯示錶裏有31萬條。確實以前有刪數據行爲。數據庫是oracle11。
網上搜了下資料:
num_rows是用來表示row的行數的,不過須要對錶作了統計纔會準確,在10g中awr會自動收集信息,可是是有時間的,你能夠手工收集statistic sql
SQL>exec dbms_stats.gather_table_stats(OWNNAME =>'username', TABNAME => 'tablename',METHOD_OPT => 'FOR ALL');數據庫
收集完以後發現是同樣的。
另外這個問題,可能會影響索引,不能在查看錶裏看索引,有時候可能沒有生效,必定要執行sql看執行計劃,若是有索引纔是真的走了索引。oracle