[メモ]PostgreSQLでテーブルの統計情報を取得するクエリ [コンピュータ]
pgAdminで見れるテーブルの統計情報
合計
pg_size_pretty(bigint)
容量単位で目で見て理解できる形式にバイト数に領域を変換します。
pg_relation_size(oid)
指定されたOIDを持つテーブルもしくはインデックスで使用されるディスク領域
pg_relation_size(text)
指定された名前を持つテーブルもしくはインデックスで使用されるディスク領域。テーブル名はスキーマ名で条件付けられることもあります。
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
コメント 0