この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
pg_class からテーブルの物理容量を取得する
PostgreSQL にてテーブルの物理サイズを知るためには、pg_class テーブルを確認します。仕様書を確認しながらコマンドを用意したので備忘録として残します。
テーブルのサイズ(容量)とレコード数を確認するコマンド
relname as table_name,
reltuples as row_num,
(relpages * 8192) as byte_size
FROM
pg_class
WHERE
relname = ‘(テーブル名)’;
取得している要素の内容は下記をご覧ください。注意として、relpages はページ単位が 8kb のため、select する時、ページ数に対して 8192 を掛け算しています。
relname テーブル、インデックス、ビューなどの名前
reltuples テーブル内の生きている行数。 これはプランナで使用される単なる推測値です。 VACUUM、ANALYZE、CREATE INDEXなどの一部のDDLコマンドで更新されます。
relpages このテーブルのディスク上におけるページ単位(BLCKSZ)の表現サイズ。 これはプランナで使用される単なる推測値です。 VACUUM、ANALYZEおよびCREATE INDEXコマンドなどの一部のDDLコマンドで更新されます。
〇コマンドの実行履歴
1 2 3 4 5 |
test_db=> SELECT relname as table_name, reltuples as row_num, (relpages * 8192) as byte_size FROM pg_class WHERE relname = 'sample1'; table_name | row_num | byte_size ------------+---------+----------- sample1 | 785448 | 255400304 (1 row) |
最後に参考にした「日本PostgreSQLユーザ会」のサイト内にある参考 URL を載せておきます。
〇PostgreSQL 11.5文書 > 52.11. pg_class
https://www.postgresql.jp/document/11/html/catalog-pg-class.html
〇PostgreSQL 11.5文書 > 29.1. ディスク使用量の決定
https://www.postgresql.jp/document/11/html/disk-usage.html