- 2021年5月24日
PostgreSQL11でスロークエリの設定方法2 pg_stat_statements
TL;DR
標準機能についているスロークエリだと、テキストログに出力されます。
どのクエリが、どのくらい遅いのかを経過時間ごとに遅い順に対応したい場合、テキストの加工が必要となってしまいます。
PostgreSQLにはpg_stat_statementsという拡張機能利用すると、実行したSQLの経過秒数などを取得することが可能です。
環境
- OS: Windows Server 2019
- DB: PostgreSQL 11
設定方法
1. psqlにログインする。
psql -U postgres
2. pg_stat_statementsのインストール
CREATE EXTENSION pg_stat_statements
インストールの確認方法
select * from pg_available_extensions where name = 'pg_stat_statements
基本設定
postgresql.conの下記設定を変更することで、設定が変更可能です。
shared_preload_libraries = 'pg_stat_statements' pg_stat_statements.max = 30000 track_activity_query_size = 4096
確認方法
インストール完了後、SQLの実行履歴が、pg_stat_statementsから取得できるようになります。
select * from pg_stat_statements order by total_time desc