クエリ計画管理のパラメータリファレンス - Amazon Aurora

クエリ計画管理のパラメータリファレンス

apg_plan_mgmt エクステンションでは、以下のパラメータを使用できます。

クエリ計画管理パラメータを次のように適切なレベルに設定します。

apg_plan_mgmt.max_databases パラメータおよびapg_plan_mgmt.max_plans パラメータを Aurora DB クラスターレベルまたは DB インスタンスレベルで設定できます。

apg_plan_mgmt.capture_plan_baselines

SQL ステートメントの実行計画の取得を有効にします。

SET apg_plan_mgmt.capture_plan_baselines = [off | automatic |manual];
説明
off 計画の取得を無効にします。これがデフォルト値です。
automatic 要件基準を満たす後続の SQL ステートメントの計画の取得を有効にします。
manual 後続の SQL ステートメントの計画取り込みを有効にします。

apg_plan_mgmt.max_databases

クエリ計画管理を使用できるデータベースの最大数を設定します。psq1 メタコマンド (\l) を使用して、Aurora PostgreSQL DB クラスター内の DB インスタンスにあるデータベースの数を調べます。デフォルトでは、クエリ計画管理では 10 個のデータベースをサポートできます。このパラメータの値は、DB クラスターレベルまたは DB インスタンスレベルで変更できます。

重要

apg_plan_mgmt.max_databases の値を変更すると、新しい値が有効になるように DB インスタンスを再起動してください。

SET apg_plan_mgmt.max_databases = integer-value;
Value デフォルト 説明
正の整数 10 正の整数値。

apg_plan_mgmt.max_plans

クエリプランマネージャが apg_plan_mgmt.dba_plans ビューで保持できる SQL ステートメントの最大数を設定します。Aurora PostgreSQL のすべてのバージョンで、このパラメータを 10000 以上に設定することをお勧めします。

重要

apg_plan_mgmt.max_plans パラメータをクラスターレベルまたは DB インスタンスレベルで設定できます。新しい値が有効になるように、DB インスタンスを再起動してください。

SET apg_plan_mgmt.max_plans = integer-value;
Value デフォルト バージョン
正の整数 >= 10

10000

Aurora PostgreSQL バージョン 11 以上のバージョン

1000

Aurora PostgreSQL バージョン 10 以前のバージョン

apg_plan_mgmt.plan_retention_period

計画が自動的に削除されるまでに apg_plan_mgmt.dba_plans ビューに保持される日数。現在の日付が、計画の last_used 日付からこの指定された日数が経過した時点で計画が削除されます。デフォルトは 32 日間です。last_used の日付は、オプティマイザが最小コスト計画としてプランを選択したか、プランが実行された最新の日付です。

SET apg_plan_mgmt.plan_retention_period = integer-value;
Value デフォルト 説明
正の整数 32 日数を表す 32 以上の正の整数値。

apg_plan_mgmt.unapproved_plan_execution_threshold

計画総コスト見積もりしきい値。これを下回ると、オプティマイザは未承認の計画を実行します。デフォルトでは、オプテマイザは未承認の計画を実行しません。ただし、最新の未承認計画に対して実行しきい値を設定できます。この設定では、オプティマイザは承認された計画のみを適用するというオーバーヘッドを回避します。

SET apg_plan_mgmt.unapproved_plan_execution_threshold = integer-value;
デフォルト 説明
正の整数 0 0 以上の正の整数値。値 0 は、use_plan_baselinestrue のときに未承認の計画が実行されないことを意味します。

以下の例では、use_plan_baselinestrue であっても、推定コストが 550 未満の場合、オプティマイザは未承認計画を実行します。

SET apg_plan_mgmt.unapproved_plan_execution_threshold = 550;

apg_plan_mgmt.use_plan_baselines

管理ステートメントに管理計画を使用するようにオプティマイザを強制します。

SET apg_plan_mgmt.use_plan_baselines = [true | false];
説明
true

管理計画の使用を強制します。SQL ステートメントが実行され、それが apg_plan_mgmt.dba_plans ビュー内の管理ステートメントである場合、オプティマイザは次の順序で管理計画を選択します。

  1. 有効になっている最小コストの優先計画。

  2. 有効になっている最小コストの承認済み計画。

  3. apg_plan_mgmt.unapproved_plan_execution_threshold パラメータで設定する場合に、有効で、しきい値を満たす最小コストの未承認計画。

  4. オプティマイザが生成した最小コスト計画。

false (デフォルト) 管理計画を使用しません。オプティマイザは、生成された最小コスト計画を使用します。

使用に関する注意事項

use_plan_baselinestrue の場合、オプティマイザは次の実行決定をします。

  1. オプティマイザの計画の見積もりコストが unapproved_plan_execution_threshold を下回っている場合は実行します。そうでない場合は以下を実行します。

  2. 計画が approved または preferred の場合は実行します。そうでない場合は以下を実行します。

  3. 可能であれば、最小コストの preferred 計画を実行します。そうでない場合は以下を実行します。

  4. 可能であれば、最小コストの approved 計画を実行します。そうでない場合は以下を実行します。

  5. オプティマイザの最小コスト計画を実行します。