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スキルアップノート

>

株式会社ユニフェイスは製造業向けのシステムを開発している会社です。
紙運用からの脱却やIoTデバイスなどを利用した実績自動収集、リアルタイムな情報共有など製造現場の最適化をご提案しています。


株式会社ユニフェイス
製造実行システムとは?
製造実行システムIB-Mes
見える化システムIB-Skin