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 (オン) | トリガー実行統計が含まれます。 |