Postgresでインデックスとテーブルのサイズを確認する方法を知っています(私はバージョン9.4を使用しています):
SELECT
relname AS objectname,
relkind AS objecttype,
reltuples AS "#entries", pg_size_pretty(relpages::bigint*8*1024) AS size
FROM pg_class
WHERE relpages >= 8
ORDER BY relpages DESC;
しかし、これは具体化されたビューを示しません。彼らが使用しているディスク容量を確認するにはどうすればよいですか?
これは、マテリアライズドビューがrelpages >= 8
pg_class
、そうである必要はありません。実際には空でもかまいません-pg_class.relispopulated = FALSE
。この場合、対応するディスクファイルのサイズはzeroです。
代わりに試してください:
SELECT relname AS objectname
, relkind AS objecttype
, reltuples AS entries
, pg_size_pretty(pg_table_size(oid)) AS size -- depending - see below
FROM pg_class
WHERE relkind IN ('r', 'i', 'm')
ORDER BY pg_table_size(oid) DESC;
r
=通常のテーブル、i
=インデックス、S
=シーケンス、v
=ビュー、m
=マテリアライズドビュー、c
=複合型、t
= TOASTテーブル、f
=外部テーブル
独自のものを作成するのではなく、 データベースオブジェクトサイズ関数 のいずれかを使用します。 「テーブルのサイズ」はさまざまな方法で定義できることに注意してください。詳細: