

# Aurora PostgreSQL のクエリ実行計画とピークメモリのモニタリング
<a name="AuroraPostgreSQL.Monitoring.Query.Plans"></a>

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

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

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

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

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

**Topics**
+ [Aurora 関数を使用したクエリ実行計画とピークメモリへのアクセス](#AuroraPostgreSQL.Monitoring.Query.Plans.Functions)
+ [Aurora PostgreSQL クエリ実行計画のパラメータリファレンス](#AuroraPostgreSQL.Monitoring.Query.Plans.Parameters)

## Aurora 関数を使用したクエリ実行計画とピークメモリへのアクセス
<a name="AuroraPostgreSQL.Monitoring.Query.Plans.Functions"></a>

`aurora_compute_plan_id` では、次の関数を使用して実行計画にアクセスできます。
+ aurora\_stat\_activity
+ aurora\_stat\_plans

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

![クエリのピークメモリについて理解します。](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/aurora-apg-peakmemory.png)


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

これらの関数の詳細については、「[Aurora PostgreSQL 関数のリファレンス](Appendix.AuroraPostgreSQL.Functions.md)」を参照してください。

## Aurora PostgreSQL クエリ実行計画のパラメータリファレンス
<a name="AuroraPostgreSQL.Monitoring.Query.Plans.Parameters"></a>

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

**Topics**
+ [aurora\_compute\_plan\_id](#aurora.compute_plan_id)
+ [aurora\_stat\_plans.minutes\_until\_recapture](#aurora.minutes_until_recapture)
+ [aurora\_stat\_plans.calls\_until\_recapture](#aurora.calls_until_recapture)
+ [aurora\_stat\_plans.with\_costs](#aurora.with_costs)
+ [aurora\_stat\_plans.with\_analyze](#aurora.with_analyze)
+ [aurora\_stat\_plans.with\_timing](#aurora.with_timing)
+ [aurora\_stat\_plans.with\_buffers](#aurora.with_buffers)
+ [aurora\_stat\_plans.with\_wal](#aurora.with_wal)
+ [aurora\_stat\_plans.with\_triggers](#aurora.with_triggers)

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

### aurora\_compute\_plan\_id
<a name="aurora.compute_plan_id"></a>

`aurora_compute_plan_id` は、クエリの実行中に計画識別子を割り当てるかどうかを制御する設定パラメータです。



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



### aurora\_stat\_plans.minutes\_until\_recapture
<a name="aurora.minutes_until_recapture"></a>

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


| デフォルト | 許可される値 | 説明 | 
| --- | --- | --- | 
| 0 | 0-1073741823 | 計画が再キャプチャされるまでに経過する分数を設定します。 | 

### aurora\_stat\_plans.calls\_until\_recapture
<a name="aurora.calls_until_recapture"></a>

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


| デフォルト | 許可される値 | 説明 | 
| --- | --- | --- | 
| 0 | 0-1073741823 | 計画が再キャプチャされるまでの計画の呼び出し回数を設定します。 | 

### aurora\_stat\_plans.with\_costs
<a name="aurora.with_costs"></a>

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



- **オン**
  - **許可される値:** 0 (オフ) / **説明:** 各計画ノードの推定コストと行は表示されません。
  - **許可される値:** 1 (オン) / **説明:** 各計画ノードの推定コストと行が表示されます。



### aurora\_stat\_plans.with\_analyze
<a name="aurora.with_analyze"></a>

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



- **オフ**
  - **許可される値:** 0 (オフ) / **説明:** 計画の実際のランタイム統計は含まれません。
  - **許可される値:** 1 (オン) / **説明:** 計画の実際のランタイム統計が含まれます。



### aurora\_stat\_plans.with\_timing
<a name="aurora.with_timing"></a>

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



- **オン**
  - **許可される値:** 0 (オフ) / **説明:** 実際の起動時間と各計画ノードで費やされた時間は含まれません。
  - **許可される値:** 1 (オン) / **説明:** 実際の起動時間と各計画ノードで費やされた時間が含まれます。



### aurora\_stat\_plans.with\_buffers
<a name="aurora.with_buffers"></a>

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



- **オフ**
  - **許可される値:** 0 (オフ) / **説明:** バッファの使用に関する情報は含まれません。
  - **許可される値:** 1 (オン) / **説明:** バッファの使用に関する情報が含まれます。



### aurora\_stat\_plans.with\_wal
<a name="aurora.with_wal"></a>

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



- **オフ**
  - **許可される値:** 0 (オフ) / **説明:** WAL レコード生成に関する情報は含まれません。
  - **許可される値:** 1 (オン) / **説明:** WAL レコード生成に関する情報が含まれます。



### aurora\_stat\_plans.with\_triggers
<a name="aurora.with_triggers"></a>

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



- **オフ**
  - **許可される値:** 0 (オフ) / **説明:** トリガー実行統計は含まれません。
  - **許可される値:** 1 (オン) / **説明:** トリガー実行統計が含まれます。

