Aurora PostgreSQL クエリプラン管理の更新 - Amazon Aurora

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Aurora PostgreSQL クエリプラン管理の更新

- AWS apg_plan_mgmt 拡張機能は、Aurora PostgreSQL DB クラスターにクエリプラン管理機能を提供します。これにより、オプティマイザによって生成されたクエリ実行プランを管理してSQL、アプリケーションの安定性を向上させ、リグレッションを防ぐことができます。詳細については、「Amazon Aurora ユーザーガイド」の「Aurora Postgre のクエリ実行プランの管理SQL」を参照してください。

PostgreSQL 16 バージョン

Aurora PostgreSQL 16.3 用の apg_plan_mgmt バージョン 2.7

Aurora PostgreSQL 16.3 の バージョン 2.7 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • を更新する必要はありませんplan_hash_version。データベースエンジンをアップグレードすると、 は新機能QPMを自動的に有効にします。新機能が利用可能になるためにアクションを実行する必要はありません。

その他の改善と機能強化
  • 64 個を超えるパーティションテーブルを含むQPMプランの適用に関する問題を修正しました。

  • 追加演算子を含むQPMプランの適用に関する問題を修正しました。

  • update_plan_hash アクションを使用する QPM validate_plans の問題を修正しました。

Aurora PostgreSQL 16.2 用の apg_plan_mgmt バージョン 2.6

Aurora PostgreSQL 16.2 の バージョン 2.6 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • QPM は、集計演算子を持つプランを適用できます。

その他の改善と機能強化
  • データベースを削除しても、関連するキャプチャされた計画が共有メモリから削除されない問題を修正しました。

  • ビューを含むプランの適用に関する問題を修正しました。

  • Parallel Append プランの適用が改善されました。

  • 計画キャプチャに関連する問題を修正しました。

  • 集合ノードを含むプランの適用に関する問題を修正しました。

Aurora PostgreSQL 16.1 用の apg_plan_mgmt バージョン 2.6

Aurora PostgreSQL 16.1 の バージョン 2.6 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • プラン概要は、apg_plan_mgmt.validate_plans 関数の update_plan_hash アクションの一環として、最新のフォーマットバージョンに更新されます。

  • 並列クエリ適用の一環として、並列追加適用のサポートを追加しました。並列追加ノードを正しく適用するには、以下を実行する必要があります。

    1. apg_plan_mgmt.plan_hash_version を 5 に設定します。

    2. apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出します。

その他の改善と機能強化
  • プランハッシュ計算のパフォーマンスが向上しました。

  • 繰り返しの多いサブプランを含むプラン概要のメモリ使用率が向上しました。

  • 並列クエリ適用で、GatherMerge を適用できない問題を修正しました。

  • 適用プランの見積コストが不正確だった問題を修正しました。

  • パーティション化されたテーブルとサブプランが概要に含まれる、承認済みプランの適用に関する問題を修正しました。

PostgreSQL 15 バージョン

Aurora PostgreSQL 15.7 用 apg_plan_mgmt バージョン 2.7、2024 年 8 月 8 日

Aurora PostgreSQL 15.7 の バージョン 2.7 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • を更新する必要はありませんplan_hash_version。データベースエンジンをアップグレードすると、 は新機能QPMを自動的に有効にします。新機能が利用可能になるためにアクションを実行する必要はありません。

その他の改善と機能強化
  • 64 個を超えるパーティションテーブルを含むQPMプランの適用に関する問題を修正しました。

  • 追加演算子を含むQPMプランの適用に関する問題を修正しました。

  • update_plan_hash アクションを使用する QPM validate_plans の問題を修正しました。

Aurora PostgreSQL 15.6 用の apg_plan_mgmt バージョン 2.6

Aurora PostgreSQL 15.6 の バージョン 2.6 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • QPM は、集計演算子を持つプランを適用できます。

その他の改善と機能強化
  • データベースを削除しても、関連するキャプチャされた計画が共有メモリから削除されない問題を修正しました。

  • ビューを含むプランの適用に関する問題を修正しました。

  • Parallel Append プランの適用が改善されました。

  • 計画キャプチャに関連する問題を修正しました。

  • 集合ノードを含むプランの適用に関する問題を修正しました。

Aurora PostgreSQL 15.5 用の apg_plan_mgmt バージョン 2.6

Aurora PostgreSQL 15.5 の バージョン 2.6 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • プラン概要は、apg_plan_mgmt.validate_plans 関数の update_plan_hash アクションの一環として、最新のフォーマットバージョンに更新されます。

  • 並列クエリ適用の一環として、並列追加適用のサポートを追加しました。並列追加ノードを正しく適用するには、以下を実行する必要があります。

    1. apg_plan_mgmt.plan_hash_version を 5 に設定します。

    2. apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出します。

その他の改善と機能強化
  • プランハッシュ計算のパフォーマンスが向上しました。

  • 繰り返しの多いサブプランを含むプラン概要のメモリ使用率が向上しました。

  • 並列クエリ適用で、GatherMerge を適用できない問題を修正しました。

  • 適用プランの見積コストが不正確だった問題を修正しました。

  • パーティション化されたテーブルとサブプランが概要に含まれる、承認済みプランの適用に関する問題を修正しました。

Aurora PostgreSQL 15.4 用の apg_plan_mgmt バージョン 2.5

Aurora PostgreSQL 15.4 の バージョン 2.5 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • QPM は、並列追加ノードを除く並列演算子を持つようにクエリプランを適用できます。並列クエリプランを正しく適用するには、15.4 または 14.9 にアップグレードした後で次のことを行う必要があります。

    • apg_plan_mgmt.plan_hash_version を 4 以上に設定します。

    • apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出します。

    • plan_outline に Gather ノードがある承認済みプランを再キャプチャします。

  • QPM は、マテリアライズノードを使用してクエリプランを適用できます。Materialize ノードを適用するには、15.4 または 14.9 にアップグレードした後で次のことを行う必要があります。

    • apg_plan_mgmt.plan_hash_version を 4 以上に設定します。

    • apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出します。

  • レプリカからクエリプランをキャプチャするには、apg_plan_mgmt ALTER EXTENSION を呼び出してapg_plan_mgmt拡張機能を更新する必要がありますUPDATE。

  • apg_plan_mgmt.plan_capture_threshold がクエリプランをキャプチャしないようにするにはQPM、 を指定する必要があります。

その他の改善と機能強化
  • plan_hash 計算のパフォーマンスが向上しました。

Aurora PostgreSQL 15.3 用の apg_plan_mgmt バージョン 2.4

Aurora PostgreSQL 15.3 の バージョン 2.4 の apg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • 新しい GUC auto_explain.hashes を導入しました。true (デフォルト: false) に設定すると、sql_hash と plan_hash が auto explain 結果の最後に表示されます。

  • 新しい GUC apg_plan_mgmt.explain_hashes を導入しました。true (デフォルト: false) に設定すると、ハッシュ true オプションがない場合でも、sql_hash と plan_hash がEXPLAIN結果に表示されます。

  • 新しい GUC apg_plan_mgmt.log_plan_enforcement_result を導入しました。その値 (デフォルト: なし) に応じて、プラン適用の結果が Postgres ログファイルに書き込まれます。

  • パーティション化されたテーブルをサポートするための新しいプランハッシュ計算バージョンを導入しました。ユーザーは、apg_plan_mgmt.plan_hash_version を 3 に設定するとともに、apg_plan_mgmt がインストールされていて、プランテーブルにエントリがある各データベースで、apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出す必要があります。

  • QPM は Memoize ノードでクエリプランを適用できます。

  • apg_plan_mgmt.copy_outline 関数は新しい 5 番目の引数 force_update_target_plan_hash を取ることができます。true に設定すると、ソースプランがターゲット sql_hash で再現できなくても、ターゲットプランのハッシュは更新されます。

その他の改善と機能強化
  • JDBC 準備済みステートメントプランの適用に関する問題を修正しました。

  • pg_stat_statements と apg_plan_mgmt.dba_plans の間のクエリ ID に関するパリティを改善しました。

  • インデックス名が数字で終わる場合のプラン適用の問題を修正しました。

  • apg_plan_mgmt.copy_outline 関数が environment_variables をコピーするようになりました。

  • apg_plan_mgmt.plan_retention_period の最小値が 32 から 1 に変更されます。

  • クエリプラン管理では、ライターノードからの読み取り専用トランザクションでクエリのプランを保存できるようになりました。

  • apg_plan_mgmt.evolve_plan_baselines 関数の問題を修正しました。

  • apg_plan_mgmt を有効にすると、利用不能な状態を起こす場合がある問題を修正しました。

apg_plan_mgmt 拡張機能をインストール、アップグレード、使用する方法については、「Amazon Aurora ユーザーガイド」の「Aurora Postgre のクエリ実行プランの管理SQL」を参照してください。

PostgreSQL 14 バージョン

Aurora PostgreSQL 14.12 用 apg_plan_mgmt バージョン 2.7、2024 年 8 月 8 日

Aurora PostgreSQL 14.12 の バージョン 2.7 の apg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • を更新する必要はありませんplan_hash_version。データベースエンジンをアップグレードすると、 は新機能QPMを自動的に有効にします。新機能が利用可能になるためにアクションを実行する必要はありません。

その他の改善と機能強化
  • 64 個を超えるパーティションテーブルを含むQPMプランの適用に関する問題を修正しました。

  • 追加演算子を含むQPMプランの適用に関する問題を修正しました。

  • update_plan_hash アクションを使用する QPM validate_plans の問題を修正しました。

Aurora PostgreSQL 14.11 用の apg_plan_mgmt バージョン 2.6

Aurora PostgreSQL 14.11 の バージョン 2.6 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • QPM は、集計演算子を持つプランを適用できます。

その他の改善と機能強化
  • データベースを削除しても、関連するキャプチャされた計画が共有メモリから削除されない問題を修正しました。

  • ビューを含むプランの適用に関する問題を修正しました。

  • Parallel Append プランの適用が改善されました。

  • 計画キャプチャに関連する問題を修正しました。

  • 集合ノードを含むプランの適用に関する問題を修正しました。

Aurora PostgreSQL 14.10 用の apg_plan_mgmt バージョン 2.6

Aurora PostgreSQL 14.10 の バージョン 2.6 の apg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • プラン概要は、apg_plan_mgmt.validate_plans 関数の update_plan_hash アクションの一環として、最新のフォーマットバージョンに更新されます。

  • 並列クエリ適用の一環として、並列追加適用のサポートを追加しました。並列追加ノードを正しく適用するには、以下を実行する必要があります。

    1. apg_plan_mgmt.plan_hash_version を 5 に設定します。

    2. apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出します。

その他の改善と機能強化
  • プランハッシュ計算のパフォーマンスが向上しました。

  • 繰り返しの多いサブプランを含むプラン概要のメモリ使用率が向上しました。

  • 並列クエリ適用で、GatherMerge を適用できない問題を修正しました。

  • 適用プランの見積コストが不正確だった問題を修正しました。

  • パーティション化されたテーブルとサブプランが概要に含まれる、承認済みプランの適用に関する問題を修正しました。

Aurora PostgreSQL 14.9 用の apg_plan_mgmt バージョン 2.5

Aurora PostgreSQL 14.9 の バージョン 2.5 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • QPM は、並列追加ノードを除く並列演算子を持つようにクエリプランを適用できます。並列クエリプランを正しく適用するには、15.4 または 14.9 にアップグレードした後で次のことを行う必要があります。

    • apg_plan_mgmt.plan_hash_version を 4 以上に設定します。

    • apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出します。

    • plan_outline に Gather ノードがある承認済みプランを再キャプチャします。

  • QPM は、マテリアライズノードを使用してクエリプランを適用できます。Materialize ノードを適用するには、15.4 または 14.9 にアップグレードした後で次のことを行う必要があります。

    • apg_plan_mgmt.plan_hash_version を 4 以上に設定します。

    • apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出します。

  • レプリカからクエリプランをキャプチャするには、apg_plan_mgmt ALTER EXTENSION を呼び出してapg_plan_mgmt拡張機能を更新する必要がありますUPDATE。

  • apg_plan_mgmt.plan_capture_threshold がクエリプランをキャプチャしないようにするにはQPM、 を指定する必要があります。

その他の改善と機能強化
  • plan_hash 計算のパフォーマンスが向上しました。

Aurora PostgreSQL 14.8 用の apg_plan_mgmt バージョン 2.4

Aurora PostgreSQL 14.8 の バージョン 2.4 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • 新しい GUC auto_explain.hashes を導入しました。true (デフォルト: false) に設定すると、sql_hash と plan_hash が auto explain 結果の最後に表示されます。

  • 新しい GUC apg_plan_mgmt.explain_hashes を導入しました。true (デフォルト: false) に設定すると、ハッシュ true オプションがない場合でも、sql_hash と plan_hash がEXPLAIN結果に表示されます。

  • 新しい GUC apg_plan_mgmt.log_plan_enforcement_result を導入しました。その値 (デフォルト: なし) に応じて、プラン適用の結果が Postgres ログファイルに書き込まれます。

  • パーティション化されたテーブルをサポートするための新しいプランハッシュ計算バージョンを導入しました。ユーザーは、apg_plan_mgmt.plan_hash_version を 3 に設定するとともに、apg_plan_mgmt がインストールされていて、プランテーブルにエントリがある各データベースで、apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出す必要があります。

  • QPM は Memoize ノードでクエリプランを適用できます。

  • apg_plan_mgmt.copy_outline 関数は新しい 5 番目の引数 force_update_target_plan_hash を取ることができます。true に設定すると、ソースプランがターゲット sql_hash で再現できなくても、ターゲットプランのハッシュは更新されます。

その他の改善と機能強化
  • JDBC 準備済みステートメントプランの適用に関する問題を修正しました。

  • pg_stat_statements と apg_plan_mgmt.dba_plans の間のクエリ ID に関するパリティを改善しました。

  • インデックス名が数字で終わる場合のプラン適用の問題を修正しました。

  • apg_plan_mgmt.copy_outline 関数が environment_variables をコピーするようになりました。

  • apg_plan_mgmt.plan_retention_period の最小値が 32 から 1 に変更されます。

  • クエリプラン管理では、ライターノードからの読み取り専用トランザクションでクエリのプランを保存できるようになりました。

  • apg_plan_mgmt.evolve_plan_baselines 関数の問題を修正しました。

  • apg_plan_mgmt を有効にすると、利用不能な状態を起こす場合がある問題を修正しました。

apg_plan_mgmt 拡張機能をインストール、アップグレード、使用する方法については、「Amazon Aurora ユーザーガイド」の「Aurora Postgre のクエリ実行プランの管理SQL」を参照してください。

PostgreSQL 13 バージョン

Aurora PostgreSQL 13.15 用 apg_plan_mgmt バージョン 2.7、2024 年 8 月 8 日

Aurora PostgreSQL 13.15 の バージョン 2.7 の apg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • を更新する必要はありませんplan_hash_version。データベースエンジンをアップグレードすると、 QPMは自動的に新機能を有効にします。新機能が利用可能になるためにアクションを実行する必要はありません。

その他の改善と機能強化
  • 64 個を超えるパーティションテーブルを含むQPMプランの適用に関する問題を修正しました。

  • 追加演算子を含むQPMプランの適用に関する問題を修正しました。

  • update_plan_hash アクションを使用する QPM validate_plans の問題を修正しました。

Aurora PostgreSQL 13.14 用の apg_plan_mgmt バージョン 2.6

Aurora PostgreSQL 13.14 の バージョン 2.6 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • QPM は、集計演算子を持つプランを適用できます。

その他の改善と機能強化
  • データベースを削除しても、関連するキャプチャされた計画が共有メモリから削除されない問題を修正しました。

  • ビューを含むプランの適用に関する問題を修正しました。

  • Parallel Append プランの適用が改善されました。

  • 計画キャプチャに関連する問題を修正しました。

  • 集合ノードを含むプランの適用に関する問題を修正しました。

Aurora PostgreSQL 13.13 用の apg_plan_mgmt バージョン 2.6

Aurora PostgreSQL 13.13 の バージョン 2.6 の apg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • プラン概要は、apg_plan_mgmt.validate_plans 関数の update_plan_hash アクションの一環として、最新のフォーマットバージョンに更新されます。

  • 並列クエリ適用の一環として、並列追加適用のサポートを追加しました。並列追加ノードを正しく適用するには、以下を実行する必要があります。

    1. apg_plan_mgmt.plan_hash_version を 5 に設定します。

    2. apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出します。

その他の改善と機能強化
  • プランハッシュ計算のパフォーマンスが向上しました。

  • 繰り返しの多いサブプランを含むプラン概要のメモリ使用率が向上しました。

  • 並列クエリ適用で、GatherMerge を適用できない問題を修正しました。

  • 適用プランの見積コストが不正確だった問題を修正しました。

  • パーティション化されたテーブルとサブプランが概要に含まれる、承認済みプランの適用に関する問題を修正しました。

Aurora PostgreSQL 13.12 の apg_plan_mgmt バージョン 2.5

Aurora PostgreSQL 13.12 の バージョン 2.5 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • QPM は、並列付加ノードを除く並列演算子を持つようにクエリプランを適用できます。並列クエリプランを正しく適用するには、15.4 または 14.9 にアップグレードした後で次のことを行う必要があります。

    • apg_plan_mgmt.plan_hash_version を 4 以上に設定します。

    • apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出します。

    • plan_outline に Gather ノードがある承認済みプランを再キャプチャします。

  • レプリカからクエリプランをキャプチャするには、apg_plan_mgmt ALTER EXTENSION を呼び出してapg_plan_mgmt拡張機能を更新する必要がありますUPDATE。

  • apg_plan_mgmt.plan_capture_threshold がクエリプランをキャプチャしないようにするにはQPM、 を指定する必要があります。

Aurora PostgreSQL 13.11 用の apg_plan_mgmt バージョン 2.4

Aurora PostgreSQL 13.11 の バージョン 2.4 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • 新しい GUC auto_explain.hashes を導入しました。true (デフォルト: false) に設定すると、sql_hash と plan_hash が auto explain 結果の最後に表示されます。

  • 新しい GUC apg_plan_mgmt.explain_hashes を導入しました。true (デフォルト: false) に設定すると、ハッシュ true オプションがない場合でも、sql_hash と plan_hash がEXPLAIN結果に表示されます。

  • 新しい GUC apg_plan_mgmt.log_plan_enforcement_result を導入しました。その値 (デフォルト: なし) に応じて、プラン適用の結果が Postgres ログファイルに書き込まれます。

  • パーティション化されたテーブルをサポートするための新しいプランハッシュ計算バージョンを導入しました。ユーザーは、apg_plan_mgmt.plan_hash_version を 3 に設定するとともに、apg_plan_mgmt がインストールされていて、プランテーブルにエントリがある各データベースで、apg_plan_mgmt.validate_plans('update_plan_hash') を呼び出す必要があります。

  • apg_plan_mgmt.copy_outline 関数は新しい 5 番目の引数 force_update_target_plan_hash を取ることができます。true に設定すると、ソースプランがターゲット sql_hash で再現できなくても、ターゲットプランのハッシュは更新されます。

その他の改善と機能強化
  • JDBC 準備済みステートメントプランの適用に関する問題を修正しました。

  • インデックス名が数字で終わる場合のプラン適用の問題を修正しました。

  • apg_plan_mgmt.copy_outline 関数が environment_variables をコピーするようになりました。

  • apg_plan_mgmt.plan_retention_period の最小値が 32 から 1 に変更されます。

  • クエリプラン管理では、ライターノードからの読み取り専用トランザクションでクエリのプランを保存できるようになりました。

  • apg_plan_mgmt.evolve_plan_baselines 関数の問題を修正しました。

  • apg_plan_mgmt を有効にすると、利用不能な状態を起こす場合がある問題を修正しました。

apg_plan_mgmt 拡張機能をインストール、アップグレード、使用する方法については、「Amazon Aurora ユーザーガイド」の「Aurora Postgre のクエリ実行プランの管理SQL」を参照してください。

PostgreSQL 12 バージョン

Aurora PostgreSQL 12.19 用 apg_plan_mgmt バージョン 2.7、2024 年 8 月 8 日

Aurora PostgreSQL 12.19 の バージョン 2.7 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • を更新する必要はありませんplan_hash_version。データベースエンジンをアップグレードすると、 QPMは自動的に新機能を有効にします。新機能が利用可能になるためにアクションを実行する必要はありません。

その他の改善と機能強化
  • 64 個を超えるパーティションテーブルを含むQPMプランの適用に関する問題を修正しました。

  • 追加演算子を含むQPMプランの適用に関する問題を修正しました。

  • update_plan_hash アクションを使用する QPM validate_plans の問題を修正しました。

Aurora PostgreSQL 12.18 用の apg_plan_mgmt バージョン 2.6

Aurora PostgreSQL 12.18 の バージョン 2.6 のapg_plan_mgmt拡張機能の改良点は次のとおりです。

その他の改善と機能強化
  • 計画キャプチャに関連する問題を修正しました。

Aurora PostgreSQL 12.17 用の apg_plan_mgmt バージョン 2.6

Aurora PostgreSQL 12.17 の バージョン 2.6 の apg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • プラン概要は、apg_plan_mgmt.validate_plans 関数の update_plan_hash アクションの一環として、最新のフォーマットバージョンに更新されます。

Aurora PostgreSQL 12.16 用の apg_plan_mgmt バージョン 2.5

Aurora PostgreSQL 12.16 の バージョン 2.5 の apg_plan_mgmt拡張機能の改良点は次のとおりです。

新機能
  • レプリカからクエリプランをキャプチャするには、apg_plan_mgmt ALTER EXTENSION を呼び出してapg_plan_mgmt拡張機能を更新する必要がありますUPDATE。

  • apg_plan_mgmt.plan_capture_threshold がクエリプランをキャプチャしないようにするにはQPM、 を指定する必要があります。

Aurora PostgreSQL apg_plan_mgmt 拡張機能のバージョン 2.3

apg_plan_mgmt 拡張機能バージョン 2.3 には、次のような改善点があります。

新しい拡張機能
  • 新しい関数 apg_plan_mgmt.copy_outline のサポート。この関数を使用すると、プランハッシュとプラン概要を 1 つのSQLハッシュとプランハッシュから別のハッシュにコピーできます。この関数は、インラインのヒントステートメントを毎回使用せずに、ヒントを使用するプランを他の同様のステートメントにコピーする場合に使用します。クエリを更新した結果としてプランが無効になった場合、この関数はエラーを発生させて更新をロールバックします。詳細については、「Amazon Aurora ユーザーガイド」の「Aurora PostgreSQL クエリプラン管理の関数リファレンス」を参照してください。

拡張機能の改善
  • クエリプラン管理機能は、プロシージャと DO ブロック内にあるクエリのプランを保存するようになりました。バージョン 2.3 より古い apg_plan_mgmt のバージョンでは、これが制限となっていました。

apg_plan_mgmt 拡張機能をインストール、アップグレード、使用する方法については、「Amazon Aurora ユーザーガイド」の「Aurora Postgre のクエリ実行プランの管理SQL」を参照してください。

Aurora PostgreSQL apg_plan_mgmt 拡張機能のバージョン 2.1

Aurora PostgreSQL 11.20 の バージョン 2.1 のapg_plan_mgmt拡張機能の改良点には、次のものがあります。

Aurora PostgreSQL 11.20 の新機能
  • 新しい GUC apg_plan_mgmt.log_plan_enforcement_result を導入しました。その値 (デフォルト: なし) に応じて、プラン適用の結果が Postgres ログファイルに書き込まれます。

Aurora PostgreSQL 11.20 の拡張機能の改善
  • JDBC 準備済みステートメントプランの適用に関する問題を修正しました。

apg_plan_mgmt 拡張機能をインストール、アップグレード、使用する方法については、「Amazon Aurora ユーザーガイド」の「Aurora Postgre のクエリ実行プランの管理SQL」を参照してください。

Aurora PostgreSQL apg_plan_mgmt 拡張機能のバージョン 2.0

apg_plan_mgmt 拡張機能バージョン 2.0 の変更は次のとおりです。

新しい拡張機能
  1. パラメータの有無にかかわらず、SQL関数内のすべてのクエリを管理できるようになりました。

  2. パラメータの有無にかかわらず、PL/pgSQL 関数内のすべてのクエリを管理できるようになりました。

  3. パラメータがあるかどうかにかかわらず、汎用プランでクエリを管理できるようになりました。ジェネリックプランとカスタムプランの詳細については、PostgreSQL ドキュメントPREPAREステートメントを参照してください。

  4. クエリプラン管理を使用して、クエリプランで特定の種類の集計メソッドの使用を強制できるようになりました。

拡張機能の改善
  1. max_worker_processes パラメータの設定の 8KB 倍までのサイズでプランを保存できるようになりました。以前は、プランの最大サイズは 8KB でした。

  2. からのステートメントなど、名前のないプリペアドステートメントのバグを修正しましたJDBC。

  3. 以前は、 にロードされていないCREATE EXTENSION apg_plan_mgmtときに を実行しようとしたときにshared_preload_libraries、PostgreSQL バックエンド接続が切断されていました。現在は、エラーメッセージが出力され、接続は切断されません。

  4. cardinality_error の のデフォルト値apg_plan_mgmt.plans tableは ですがNULL、apg_plan_mgmt.evolve_plan_baselines関数中に -1 に設定できます。NULL が一貫して使用されるようになりました。

  5. テンポラリテーブルを参照するクエリのプランが保存されるようになりました。

  6. プランのデフォルトの最大数が 1000 から 10000 に増加しています。

  7. 次の pgss パラメータは、これらのパラメータの代わりに自動プラン取得モードを使用する必要があるため、非推奨です。

    • apg_plan_mgmt.pgss_min_calls

    • apg_plan_mgmt.pgss_min_mean_time_ms

    • apg_plan_mgmt.pgss_min_stddev_time_ms

    • apg_plan_mgmt.pgss_min_total_time_ms

Aurora PostgreSQL apg_plan_mgmt 拡張機能のバージョン 1.0.1

apg_plan_mgmt 拡張機能バージョン 1.0.1 の変更は次のとおりです。

新しい拡張機能
  1. validate_plans 関数には、action という新しい update_plan_hash 値があります。この操作により、正確に再現できないプランの plan_hash ID が更新されます。このupdate_plan_hash値を使用すると、 を書き換えてプランを修正することもできますSQL。その後、元の のプランとして適切なApprovedプランを登録できますSQL。以下は、update_plan_hash アクションの使用例です。

    UPDATE apg_plan_mgmt.plans SET plan_hash = new _plan_hash, plan_outline = good_plan_outline WHERE sql_hash = bad_plan_sql_hash AND plan_hash = bad_plan_plan_hash; SELECT apg_plan_mgmt.validate_plans(bad_plan_sql_hash, bad_plan_plan_hash, 'update_plan_hash'); SELECT apg_plan_mgmt.reload();
  2. 指定されたEXPLAINステートメントの SQLステートメントのテキストを生成する新しいget_explain_stmt関数が利用可能です。この関数には、sql_hashplan_hashexplain_options などがあります。

    以下に示されているように、explain_options パラメータは、有効な EXPLAIN オプションのカンマ区切りのリストになります。

    analyze,verbose,buffers,hashes,format json

    パラメータexplain_optionsが NULLまたは空の文字列の場合、get_explain_stmt関数は単純なEXPLAINステートメントを生成します。

    ワークロードまたはその一部の EXPLAIN スクリプトを作成するには、\a\t、および \o オプションを使用して、出力をファイルにリダイレクトします。例えば、total_timeDESC順にソートされた PostgreSQL pg_stat_statementsビューを使用して、上位 (上位 K) ステートメントのEXPLAINスクリプトを作成できます。

  3. Gather parallel query 演算子の正確な位置は、コストによって決まり、時間とともにわずかに変化する可能性があります。これらの違いによって、プラン全体が無効になるのを防ぐために、Gather 演算子がプランツリーの別の場所に移動した場合でも、クエリプラン管理では同じ plan_hash が計算されるようになりました。

  4. pl/pgsql 関数内のパラメータ化されていないステートメントのサポートを追加。

  5. 2 つ以上のデータベースに同時にアクセスしているときに、同じクラスター内の複数のデータベースに apg_plan_mgmt 拡張機能をインストールすると、オーバーヘッドが削減されます。また、このリリースでは、プランが共有メモリに格納されない原因となっていたこのエリアのバグが修正されています。

拡張機能の改善
  1. evolve_plan_baselines 関数の改善。

    1. evolve_plan_baselines 関数では、プランのすべてのノードで、cardinality_error メトリクスが計算されるようになりました。このメトリクスを使用すると、カーディナリティ推定エラーが大きく、プランの質に問題があるプランを特定できます。高い cardinality_error 値で実行時間が長いステートメントは、クエリのチューニングを行う上で優先順位が高くなります。

    2. evolve_plan_baselines で生成されたレポートに、sql_hashplan_hash、およびプラン status が含まれるようになりました。

    3. これで、evolve_plan_baselines で、以前の Rejected プランを承認できるようになります。

    4. speedup_factorevolve_plan_baselines は、ベースラインプランが常に基準になります。例えば、値 1.1 は、ベースラインよりも 10% 速いことを意味します。値 0.9 は、ベースラインプランよりも 10% 遅いことを意味します。比較は、合計時間ではなく実行時間のみを使用して行われます。

    5. evolve_plan_baselines 関数では、キャッシュが新しい方法でウォームアップされるようになりました。この方法では、ベースラインプランを実行し、次にベースラインプランをもう 1 回実行してから、候補プランを 1 回実行します。以前は、evolve_plan_baselines で、候補プランが 2 回実行されていました。このアプローチでは、特に遅い候補プランの場合、実行時間が大幅に長くなっていました。ただし、ベースラインプランで使用されていないインデックスを候補プランで使用すると、候補プランを 2 回実行した方が信頼性が高くなります。

  2. クエリプラン管理では、システムテーブル/ビュー、テンポラリテーブル、またはクエリプラン管理自体のテーブルを参照するプランは保存されなくなりました。

  3. バグ修正には、保存時点のプランのキャッシュや、バックエンドが終了する原因となったバグの修正などが含まれます。