PostgreSQLをスロークエリのログを取得できるように設定する
- 作成日 2021.03.29
- PostgreSQL
- PostgreSQL
PostgreSQLで、スロークエリのログを時間を設定して、取得できるようにする手順を記述してます。
環境
- OS CentOS 7.9.2009 (Core)
- PostgreSQL 13.1
スロークエリ設定
「postgresql.conf」に「log_min_duration_statement」に、まずlogとして吐き出したいクエリ時間を設定します。
ここでは「0.5」秒に設定してます。
log_min_duration_statement = 500
次に「log」を吐き出す設定になっていなければ、以下を「on」に変更しておきます。
logging_collector = on
logの形式は、下記で変更可能です。
log_line_prefix = '%m [%p] ' # special values:
# %a = application name
# %u = user name
# %d = database name
# %r = remote host and port
# %h = remote host
# %b = backend type
# %p = process ID
# %t = timestamp without milliseconds
# %m = timestamp with milliseconds
# %n = timestamp with milliseconds (as a Unix epoch)
# %i = command tag
# %e = SQL state
# %c = session ID
# %l = session line number
# %s = session start timestamp
# %v = virtual transaction ID
# %x = transaction ID (0 if none)
# %q = stop here in non-session
# processes
# %% = '%'
# e.g. '<%u%%%d> '
再起動します。
sudo systemctl restart postgresql-13
log確認
「log」配下にあるlogデータに設定した値を超えるクエリのみがlogに書き出されていることが確認できます。
2021-xx-xx 11:11:04.370 JST [11786] LOG: 期間: 1716.706 ミリ秒 文: SELECT * FROM public.ptests
-
前の記事
python EXCELのセルの値を取得する 2021.03.28
-
次の記事
javascript ctrlKeyプロパティでctrlキーが押されているかを判定する 2021.03.29
コメントを書く