Aurora PostgreSQL のクエリ実行計画とピークメモリのモニタリング - Amazon Aurora

Aurora PostgreSQL のクエリ実行計画とピークメモリのモニタリング

Aurora PostgreSQL DB インスタンスのクエリ実行計画をモニタリングして、現在のデータベース負荷の原因となる実行計画を検出し、aurora_compute_plan_id パラメータを使用して実行計画のパフォーマンス統計を経時的に追跡できます。クエリを実行するたびに、クエリで使用される実行計画に識別子が割り当てられ、同じ計画の後続の実行でも同じ識別子が使用されます。

Aurora PostgreSQL バージョン 14.10、15.5 以降のバージョンの DB パラメータグループでは、aurora_compute_plan_id がデフォルトでオンになっています。計画識別子の割り当てはデフォルトの動作であり、パラメータグループで aurora_compute_plan_id を OFF に設定することでオフにできます。

このプラン識別子は、異なる用途の複数のユーティリティで使用されます。

以下のバージョンから、DB インスタンスのクエリのピークメモリ使用量をモニタリングして、高いデータベースメモリ使用量の原因となっているクエリを検出できます。

  • 16.3 以降のすべてのバージョン

  • 15.7 以降のバージョン

  • 14.12 以降のバージョン

クエリが実行されるたびに、そのクエリが使用するピークメモリが追跡されます。通常、クエリは複数回実行されます。全実行回数の平均、最小、最大メモリ使用量の値をクエリごとに表示できます。

Aurora 関数を使用したクエリ実行計画とピークメモリへのアクセス

aurora_compute_plan_id では、次の関数を使用して実行計画にアクセスできます。

  • aurora_stat_activity

  • aurora_stat_plans

クエリピークメモリには、クエリ処理の開始前に割り当てられたメモリは含まれません。ピークメモリ使用量は、各クエリの計画フェーズと実行フェーズで個別に追跡され、報告されます。

クエリのピークメモリについて理解します。

次の関数を使用してクエリピークメモリの統計にアクセスできます。

  • aurora_stat_statements

  • aurora_stat_plans

これらの関数の詳細については、「Aurora PostgreSQL 関数のリファレンス」を参照してください。

Aurora PostgreSQL クエリ実行計画のパラメータリファレンス

DB パラメータグループの以下のパラメータを使用して、クエリ実行計画をモニタリングできます。

注記

aurora_stat_plans.with_* パラメータの設定は、新しくキャプチャされた計画に対してのみ有効になります。

aurora_compute_plan_id

off に設定すると、計画識別子が割り当てられなくなります。

デフォルト 許可される値 説明
オン 0 (オフ) off に設定すると、計画識別子が割り当てられなくなります。
1 (オン) プラン識別子を割り当てるには、on に設定します。

aurora_stat_plans.minutes_until_recapture

計画が再キャプチャされるまでに経過する分数。デフォルトは 0 で、計画の再キャプチャが無効になります。aurora_stat_plans.calls_until_recapture しきい値を超えた場合、計画は再キャプチャされます。

デフォルト 許可される値 説明
0 0-1073741823

計画が再キャプチャされるまでに経過する分数を設定します。

aurora_stat_plans.calls_until_recapture

計画が再キャプチャされるまでの計画の呼び出し回数。デフォルトは 0 で、呼び出し回数後に計画の再キャプチャが無効になります。aurora_stat_plans.minutes_until_recapture しきい値を超えた場合、計画は再キャプチャされます。

デフォルト 許可される値 説明
0 0-1073741823

計画が再キャプチャされるまでの計画の呼び出し回数を設定します。

aurora_stat_plans.with_costs

推定コストを含む EXPLAIN 計画を取得します。指定できる値は、on および off です。デフォルト: on

デフォルト 許可される値 説明
オン 0 (オフ)

各計画ノードの推定コストと行は表示されません。

1 (オン)

各計画ノードの推定コストと行が表示されます。

aurora_stat_plans.with_analyze

ANALYZE で EXPLAIN 計画を制御します。このモードは、計画が初めてキャプチャされたときにのみ使用されます。指定できる値は、on および off です。デフォルト: off

デフォルト 許可される値 説明
オフ 0 (オフ)

計画の実際のランタイム統計は含まれません。

1 (オン)

計画の実際のランタイム統計が含まれます。

aurora_stat_plans.with_timing

ANALYZE を使用すると、計画のタイミングが説明にキャプチャされます。デフォルト: on

デフォルト 許可される値 説明
オン 0 (オフ)

実際の起動時間と各計画ノードで費やされた時間は含まれません。

1 (オン)

実際の起動時間と各計画ノードで費やされた時間が含まれます。

aurora_stat_plans.with_buffers

ANALYZE を使用すると、計画のバッファの使用統計が説明にキャプチャされます。デフォルト: off

デフォルト 許可される値 説明
オフ 0 (オフ)

バッファの使用に関する情報は含まれません。

1 (オン)

バッファの使用に関する情報が含まれます。

aurora_stat_plans.with_wal

ANALYZE を使用すると、計画の WAL 使用統計が説明にキャプチャされます。デフォルト: off

デフォルト 許可される値 説明
オフ 0 (オフ)

WAL レコード生成に関する情報は含まれません。

1 (オン)

WAL レコード生成に関する情報が含まれます。

aurora_stat_plans.with_triggers

計画トリガー実行統計は、ANALYZE の使用時に説明にキャプチャされます。デフォルト: off

デフォルト 許可される値 説明
オフ 0 (オフ)

トリガー実行統計は含まれません。

1 (オン)

トリガー実行統計が含まれます。