【Postgresql】負荷調査した時のメモ
基本的に仕事で使用しているSQLはMySQLかマイクロソフトのSQLなのですが
Postgresqlの負荷調査をすることになったのでその備忘録になります。
扱っているバージョンが8.4と古いですが、新しいバージョンでもできると思います。というよりもっといいツールがあるようです(*_*)
■各テーブルのサイズ
SELECT relname, reltuples, (relpages / 128) as mbytes, (relpages * 8192.0 / (reltuples + 1e-10)) as average_row_size FROM pg_class ORDER BY mbytes DESC;
■デットロック確認方法
SELECT l.pid, db.datname, c.relname, l.locktype, l.mode
FROM pg_locks l
LEFT JOIN pg_class c ON l.relation=c.relfilenode
LEFT JOIN pg_database db ON l.database = db.oid
ORDER BY l.pid;
■コミット・ロールバックの回数やデータベース単位のキャッシュヒット率、デットロック発生回数などを確認
SELECT * FROM pg_stat_database WHERE datname = '【データベース名】';
■各テーブルに対する処理の概要を確認
SELECT * FROM pg_stat_user_tables WHERE relname = '【テーブル名】';
■動作中のバックエンドプロセスの情報確認
SELECT * FROM pg_stat_activity;