0
0

AWSのAuroraPostgreSQLで遅いSQLを調査する方法

Posted at

作業リスト

  1. SQLの実行ログを出力するように設定変更
  2. ログから指定した処理時間以上のログを抽出

作業内容

1. SQLの実行ログを出力するように設定変更

PostgreSQLのパラメータグループで以下の設定を変更します。
今回は、CloudWatchの方で処理時間を指定するのですが、処理時間が300ms未満を除外しておきたいので300を指定します。
これで、300ms以上かかるSQLと処理時間がログに出力されます。
※処理時間に関わらず全て出力したい場合は0を指定します。

項目名 設定値 備考
log_min_duration_statement 300 SQL実行にかかったミリ秒を指定

(参考)マネジメントコンソールの画面

RDSのパラメータグループの設定から、AuroraのClusterで利用する設定値を以下の通り変更

image.png

※タイプの適用がDynamicとなっているので動的に設定されます。

2. ログから指定した処理時間以上のログを抽出

今回は、1000ms超のログを抽出します。
CloudWatchのログのインサイトにて、以下のクエリを作成して実行します。

fields @message
| filter @message like /duration:/
| parse @message "duration: * ms" as duration
| filter duration > 1000
| sort duration desc
| display @timestamp, duration, @message

(参考)マネジメントコンソールの画面

image.png

最後に

  • 開発中は、この遅いSQLのログは開発中に随時チェックすることで変なSQLが無いか随時チェックしましょう
  • 開発者以外も見られるように、CloudWatchのダッシュボードを共有することでログを見られるようにするのもお勧めです
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0