【PostgreSQL】SQLパフォーマンス改善
重いSQLの判定方法
①実行計画の測定
調査したいクエリの先頭に、"EXPLAIN" / "EXPLAIN ANALYZE" を付けて実行
EXPLAIN SELECT * FROM …
※ANALYZEを付与すると、実際に実行し、実測値も出力される
※INSERT、UPDATE、DELETEのようなデータの変更を伴う問い合わせの実行計画を得たい場合には以下のように実行
(これで実際の更新は走らない)
BEGIN;
EXPLAIN ANALYZE …;
ROLLBACK;
②実行計画より、コストの高いクエリを特定
EXPLAINにより返却される結果の内、
(cost= xxx...yyy )の部分が実行時間に関わる
※xxx:最初の行が返されるまでの時間
※yyy:次の数字が全ての行が返されるまでの合計時間