この記事ではテーブルのサイズを確認するSQLについて解説します。
テーブルのサイズを確認するSQL
テーブルやインデックスごとに使用している領域のサイズを確認したい場合があるかと思います。
そのような場合は以下のSQLで調べることができます。
SELECT owner, segment_name, segment_type, bytes / 1024 / 1024 AS SIZE_MB
FROM dba_segments WHERE owner = <スキーマ名> ORDER BY segment_name;
segment_nameにはテーブルやインデックスの名前、segment_typeにはTABLE、INDEX、TABLE PARTITTIONなどのオブジェクトの種類が表示されます。
パーティションをまとめて表示するSQL
上記のSQLではパーティションテーブルではパーティションごとのサイズが表示されます。
パーティションをまとめて、合計サイズを表示したい場合は以下のSQLを実行します。
SELECT owner, segment_name, segment_type, sum(bytes) / 1024 / 1024 AS SIZE_MB
FROM dba_segments where owner = <スキーマ名>
GROUP BY owner, segment_name, segment_type ORDER BY segment_name;
サイズに全てのパーティションの合計の値が表示されます。