SSブログ

広告

[メモ]PostgreSQLでテーブルの統計情報を取得するクエリ [コンピュータ]

pgAdminで見れるテーブルの統計情報
SELECT
	st.relname,
	n_tup_ins,
	n_tup_upd,
	n_tup_del,
	pg_size_pretty(pg_relation_size(st.relid) + CASE WHEN cl.reltoastrelid = 0 THEN 0 ELSE pg_relation_size(cl.reltoastrelid) + COALESCE((SELECT SUM(pg_relation_size(indexrelid)) FROM pg_index WHERE indrelid=cl.reltoastrelid)::int8, 0) END + COALESCE((SELECT SUM(pg_relation_size(indexrelid)) FROM pg_index WHERE indrelid=st.relid)::int8, 0)) AS size
FROM
	pg_stat_all_tables st  JOIN pg_class cl on cl.oid=st.relid
WHERE
	schemaname = 'public'
ORDER BY
	relname

合計
SELECT
	pg_size_pretty(sum(pg_relation_size(st.relid) + CASE WHEN cl.reltoastrelid = 0 THEN 0 ELSE pg_relation_size(cl.reltoastrelid) + COALESCE((SELECT SUM(pg_relation_size(indexrelid)) FROM pg_index WHERE indrelid=cl.reltoastrelid)::int8, 0) END + COALESCE((SELECT SUM(pg_relation_size(indexrelid)) FROM pg_index WHERE indrelid=st.relid)::int8, 0))::bigint) AS size
FROM
	pg_stat_all_tables st  JOIN pg_class cl on cl.oid=st.relid
WHERE
	schemaname = 'public'

pg_size_pretty(bigint)
 容量単位で目で見て理解できる形式にバイト数に領域を変換します。
pg_relation_size(oid)
 指定されたOIDを持つテーブルもしくはインデックスで使用されるディスク領域
pg_relation_size(text)
 指定された名前を持つテーブルもしくはインデックスで使用されるディスク領域。テーブル名はスキーマ名で条件付けられることもあります。

タグ:postgres
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。