Oracle 全てのテーブルのレコード数を調べるには?

ショコラ
ショコラ

Oracle 全てのテーブルのレコード数を調べるには?

SELECT COUNT(*) で1つづつやることもできますが、
手間が掛かりますので、user_tablesテーブル の num_rows を確認します。
結果がでてくるまでのスピードも速いですね~
少し誤差がでるみたいですが、私のやりたいことはこれで満たされます。

もっさん先輩
もっさん先輩

① 統計情報を更新します。テーブルの統計情報を更新しないと正確な num_rows の値が取得できません。

統計情報を更新する SQL は↓下になります。

ANALYZE TABLE {テーブル名}COMPUTE STATISTICS;

全テーブルの統計情報を更新する SQL を SELECT で作ってみました。

SELECT 'ANALYZE TABLE ' || table_name || ' COMPUTE STATISTICS;' FROM user_tables; 

② 全てのテーブルのレコード数を調べます。

SELECT table_name, num_rows FROM user_tables ORDER BY table_name;

以上

Scroll to Top