uniface.hub

uniface.hub

ユニフェイスの開発者ブログ


Title PostgreSQL11でスロークエリの設定方法2 pg_stat_statements
  • 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

参考文献

PostgreSQLスキルアップノート