Marlock Homes Diary

備忘録。忘れないように書きます。

PostgreSQLのテーブル・インデックスのサイズを確認するSQL

PostgreSQLのテーブル・インデックスのサイズを確認する際には以下のSQLを利用する。

SELECT 
  nspname || '.' || relname AS "relation",
  relpages,
  pg_relation_size(C.oid) AS "size",
  reltuples
FROM 
  pg_class C
LEFT JOIN pg_namespace N 
ON (N.oid = C.relnamespace)
WHERE 
  nspname NOT IN ('pg_catalog', 'information_schema')
ORDER BY 
  pg_relation_size(C.oid) DESC;

上記SQLでは推定行数( reltuples)を出力しているため、レコード数とサイズの増加の関連性を確認する際にも利用できると考えております。

29.1. ディスク使用量の決定
Disk Usage/ja - PostgreSQL wiki