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

ショコラ
ショコラ

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

SQLを用意しました。

もっさん先輩
もっさん先輩
SELECT
  ut.table_name,ut.num_rows,us.mb
FROM
  user_tables ut
  INNER JOIN (SELECT segment_name,SUM(bytes)/1024/1024 mb FROM user_segments GROUP BY segment_name) us ON (ut.table_name = us.segment_name)
ORDER BY us.mb desc;

行数が表示されない場合は、統計情報を更新しましょう。

ANALYZE TABLE [テーブル名] COMPUTE STATISTICS;

全てのテーブルを確認するのはこちら

SELECT
 owner, segment_name, segment_type, tablespace_name, bytes / 1024 / 1024 mb
FROM
  dba_segments s
WHERE
  segment_type = 'TABLE'
ORDER BY mb DESC;

以上

Scroll to Top