1. 程式人生 > >Oracle快速統計大表總記錄數

Oracle快速統計大表總記錄數

你還在苦思冥想怎樣快速統計一張裝有大量資料的表的總記錄數嗎?

你還在用select count(*) from table_name 嗎?

可以來試試我的新發現:

如果想統計一張上千萬或上億的資料量的時候直接count(*)是非常耗時的,幾千萬的資料估計都要等上好幾分鐘。

快速查詢表的總記錄數:

select table_name, t.num_rows, t.last_analyzed  from tabs t;

這裡能查出資料庫中此使用者的所有表中的記錄數。

經過查詢資料發現,從tabs表中獲取的資料不是非常準確,在tabs表中存在一個欄位last_analyzed,有最後分析的日期,

好像都不是最新,可能導致資料不是非常準確。


可以通過在command下面執行

EXEC dbms_stats.gather_table_stats('【空間名稱】','【tablename】',cascade=>true);

可以重新整理tabs表中的num_rows列,以及最後更新時間