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

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

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

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

PostgreSQL 17 バージョン

Aurora PostgreSQL 17.4 用 apg_plan_mgmt バージョン 2.8、2025 年 5 月 1 日

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

新機能
  • クエリプラン管理では、サブクエリ変換が相関するプランを適用できます。

  • クエリプラン管理では、相関サブクエリキャッシュを持つプランを適用できます。

その他の改善と機能強化
  • クエリプラン管理でdba_plansビューのクエリまたは validate_plans および evolve_plan_baselines関数の呼び出し中にエラーまたは再起動が発生するパラメータリストの問題を修正しました。

  • クエリプラン管理の変換を関連付けることで最適化されたプランの適用に関する問題を修正しました。

  • 拡張機能のインストール直後にユーティリティステートメントを実行するか、共有メモリをリセットするクエリプラン管理の問題を修正しました。

  • クエリプラン管理でイミュータブルな関数を呼び出すクエリのプランを強制、検証、進化させる問題を修正しました。

  • クエリプラン管理でプランを適用、検証、進化させる問題を修正しました。

PostgreSQL 16 バージョン

Aurora PostgreSQL 16.8 用 apg_plan_mgmt バージョン 2.8、2025 年 4 月 8 日

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

新機能
  • クエリプラン管理では、サブクエリ変換が相関するプランを適用できます。

  • クエリプラン管理では、相関サブクエリキャッシュを持つプランを適用できます。

その他の改善と機能強化
  • クエリプラン管理でdba_plansビューのクエリまたは validate_plans および evolve_plan_baselines関数の呼び出し中にエラーまたは再起動が発生するパラメータリストの問題を修正しました。

  • クエリプラン管理の変換を関連付けることで最適化されたプランの適用に関する問題を修正しました。

  • 拡張機能のインストール直後にユーティリティステートメントを実行するか、共有メモリをリセットするクエリプラン管理の問題を修正しました。

  • クエリプラン管理でイミュータブルな関数を呼び出すクエリのプランを強制、検証、進化させる問題を修正しました。

  • クエリ計画管理で計画を適用、検証、進化させる問題を修正しました。

Aurora PostgreSQL 16.6 用 apg_plan_mgmt バージョン 2.7、2024 年 12 月 27 日

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

その他の改善と機能強化
  • クエリプラン管理でレプリカのプランキャプチャで、レプリカの共有メモリ配列がいっぱいになる問題を修正しました。

  • クエリプラン管理のバックグラウンドワーカーで、プランの保持期間が適用されず、最終使用日が更新されない問題を修正しました。

  • クエリプラン管理のバックグラウンドワーカーに関連する問題を修正しました。

  • ビットマップスキャンを含むクエリプラン管理プランの適用に関する問題を修正しました。

  • 複数のクエリを持つ関数またはプロシージャのプランが誤ってキャプチャされるクエリプラン管理の問題を修正しました。

  • クエリプラン管理でネストされたクエリ実行のプランをキャプチャする問題を修正しました。

  • 拡張クエリプロトコルを使用してクエリプラン管理でプランをキャプチャする問題を修正しました。

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

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

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

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

  • Append 演算子を含む 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.12 用 apg_plan_mgmt バージョン 2.8、2025 年 4 月 8 日

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

その他の改善と機能強化
  • クエリプラン管理でdba_plansビューのクエリまたは validate_plans および evolve_plan_baselines関数の呼び出し中にエラーまたは再起動が発生するパラメータリストの問題を修正しました。

  • クエリプラン管理の変換を関連付けることで最適化されたプランの適用に関する問題を修正しました。

  • 拡張機能のインストール直後にユーティリティステートメントを実行するか、共有メモリをリセットするクエリプラン管理の問題を修正しました。

  • クエリプラン管理でイミュータブルな関数を呼び出すクエリのプランを強制、検証、進化させる問題を修正しました。

  • クエリ計画管理で計画を適用、検証、進化させる問題を修正しました。

Aurora PostgreSQL 15.10 用 apg_plan_mgmt バージョン 2.7、2024 年 12 月 27 日

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

その他の改善と機能強化
  • クエリプラン管理でレプリカのプランキャプチャで、レプリカの共有メモリ配列がいっぱいになる問題を修正しました。

  • クエリプラン管理のバックグラウンドワーカーで、プランの保持期間が適用されず、最終使用日が更新されない問題を修正しました。

  • クエリプラン管理のバックグラウンドワーカーに関連する問題を修正しました。

  • ビットマップスキャンを含むクエリプラン管理プランの適用に関する問題を修正しました。

  • 複数のクエリを持つ関数またはプロシージャのプランが誤ってキャプチャされるクエリプラン管理の問題を修正しました。

  • クエリプラン管理でネストされたクエリ実行のプランをキャプチャする問題を修正しました。

  • 拡張クエリプロトコルを使用してクエリプラン管理でプランをキャプチャする問題を修正しました。

Aurora PostgreSQL 15.8 用 apg_plan_mgmt バージョン 2.7、2024 年 9 月 30 日

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

その他の改善と機能強化
  • Hash Aggregates を含むクエリプラン管理プランの適用に関する問題を修正しました。

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 プランの適用に関する問題を修正しました。

  • Append 演算子を含む 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 は、クエリプランが並列演算子 (Parallel Append ノードを除く) を持つように強制できます。並列クエリプランを正しく適用するには、15.4 または 14.9 にアップグレードした後で次のことを行う必要があります。

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

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

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

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

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

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

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

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

その他の改善と機能強化
  • 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) に設定すると、hashes 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 PostgreSQL のクエリ実行計画の管理」を参照してください。

PostgreSQL 14 バージョン

Aurora PostgreSQL 14.17 用 apg_plan_mgmt バージョン 2.8、2025 年 4 月 8 日

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

その他の改善と機能強化
  • クエリプラン管理でdba_plansビューのクエリまたは validate_plans および evolve_plan_baselines関数の呼び出し中にエラーまたは再起動が発生するパラメータリストの問題を修正しました。

  • クエリプラン管理の変換を関連付けることで最適化されたプランの適用に関する問題を修正しました。

  • 拡張機能のインストール直後にユーティリティステートメントを実行するか、共有メモリをリセットするクエリプラン管理の問題を修正しました。

  • クエリプラン管理でイミュータブルな関数を呼び出すクエリのプランを強制、検証、進化させる問題を修正しました。

  • クエリ計画管理で計画を適用、検証、進化させる問題を修正しました。

Aurora PostgreSQL 14.15 用 apg_plan_mgmt バージョン 2.7、2024 年 12 月 27 日

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

その他の改善と機能強化
  • クエリプラン管理でレプリカのプランキャプチャで、レプリカの共有メモリ配列がいっぱいになる問題を修正しました。

  • クエリプラン管理のバックグラウンドワーカーで、プランの保持期間が適用されず、最終使用日が更新されない問題を修正しました。

  • クエリプラン管理のバックグラウンドワーカーに関連する問題を修正しました。

  • ビットマップスキャンを含むクエリプラン管理プランの適用に関する問題を修正しました。

  • 複数のクエリを含む関数またはプロシージャのプランが誤ってキャプチャされるクエリプラン管理の問題を修正しました。

  • クエリプラン管理でネストされたクエリ実行のプランをキャプチャする問題を修正しました。

  • 拡張クエリプロトコルを使用してクエリプラン管理でプランをキャプチャする問題を修正しました。

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 プランの適用に関する問題を修正しました。

  • Append 演算子を含む 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 は、クエリプランが並列演算子 (Parallel Append ノードを除く) を持つように強制できます。並列クエリプランを正しく適用するには、15.4 または 14.9 にアップグレードした後で次のことを行う必要があります。

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

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

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

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

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

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

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

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

その他の改善と機能強化
  • 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) に設定すると、hashes 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 PostgreSQL のクエリ実行計画の管理」を参照してください。

PostgreSQL 13 バージョン

Aurora PostgreSQL 13.20 用 apg_plan_mgmt バージョン 2.8、2025 年 4 月 8 日

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

その他の改善と機能強化
  • クエリプラン管理でdba_plansビューのクエリまたは validate_plans および evolve_plan_baselines関数の呼び出し中にエラーまたは再起動が発生するパラメータリストの問題を修正しました。

  • クエリプラン管理の変換を関連付けることで最適化されたプランの適用に関する問題を修正しました。

  • 拡張機能のインストール直後にユーティリティステートメントを実行するか、共有メモリをリセットするクエリプラン管理の問題を修正しました。

  • クエリプラン管理でイミュータブルな関数を呼び出すクエリのプランを強制、検証、進化させる問題を修正しました。

  • クエリ計画管理で計画を適用、検証、進化させる問題を修正しました。

Aurora PostgreSQL 13.18 用 apg_plan_mgmt バージョン 2.7、2024 年 12 月 27 日

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

その他の改善と機能強化
  • クエリプラン管理でレプリカのプランキャプチャで、レプリカの共有メモリ配列がいっぱいになる問題を修正しました。

  • クエリプラン管理のバックグラウンドワーカーで、プランの保持期間が適用されず、最終使用日が更新されない問題を修正しました。

  • クエリプラン管理のバックグラウンドワーカーに関連する問題を修正しました。

  • ビットマップスキャンを含むクエリプラン管理プランの適用に関する問題を修正しました。

  • 複数のクエリを含む関数またはプロシージャのプランが誤ってキャプチャされるクエリプラン管理の問題を修正しました。

  • クエリプラン管理でネストされたクエリ実行のプランをキャプチャする問題を修正しました。

  • 拡張クエリプロトコルを使用してクエリプラン管理でプランをキャプチャする問題を修正しました。

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 プランの適用に関する問題を修正しました。

  • Append 演算子を含む 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 は、クエリプランが並列演算子 (Parallel Append ノードを除く) を持つように強制できます。並列クエリプランを正しく適用するには、15.4 または 14.9 にアップグレードした後で次のことを行う必要があります。

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

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

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

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

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

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) に設定すると、hashes 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 PostgreSQL のクエリ実行計画の管理」を参照してください。

PostgreSQL 12 バージョン

Aurora PostgreSQL 12.22 用 apg_plan_mgmt バージョン 2.7、2024 年 12 月 27 日

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

その他の改善と機能強化
  • クエリプラン管理でレプリカのプランキャプチャで、レプリカの共有メモリ配列がいっぱいになる問題を修正しました。

  • クエリプラン管理のバックグラウンドワーカーで、プランの保持期間が適用されず、最終使用日が更新されない問題を修正しました。

  • クエリプラン管理のバックグラウンドワーカーに関連する問題を修正しました。

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 プランの適用に関する問題を修正しました。

  • Append 演算子を含む 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拡張機能の改良点は次のとおりです。

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

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

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

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

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

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

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

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

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

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

Aurora PostgreSQL 11.20 の拡張機能の改善
  • JDBC プリペアドステートメントプランの適用に伴う問題を修正しました。

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

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 を書き換えることでプランを修正することもできます。元の SQL の Approved プランとして、優れたプランを登録できるようになります。以下は、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. 指定された SQL ステートメントの get_explain_stmt ステートメントのテキストを生成する新しい EXPLAIN 関数が使用可能になりました。この関数には、sql_hashplan_hashexplain_options などがあります。

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

    analyze,verbose,buffers,hashes,format json

    explain_options パラメータが NULL で、空の文字列の場合、get_explain_stmt 関数では、シンプルな EXPLAIN ステートメントが生成されます。

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

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