Aurora PostgreSQL 查詢計畫管理更新 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Aurora PostgreSQL 查詢計畫管理更新

延伸為 AWS apg_plan_mgmt Aurora PostgreSQL 資料庫叢集提供查詢計畫管理功能。它可讓您管理最佳化工具針對 SQL 應用程式產生的查詢執行計畫,以提高穩定性並防止迴歸發生。如需詳細資訊,請參閱《Amazon Aurora 使用者指南》中的管理 Aurora PostgreSQL 的查詢執行計畫

PostgreSQL 17 版本

apg_plan_mgmt 2.8 版,適用於 Aurora PostgreSQL 17.4,2025 年 5 月 1 日

Aurora PostgreSQL 17.4 的 2.8 版apg_plan_mgmt擴充功能改進包括下列項目:

新功能
  • 查詢計畫管理可以強制執行具有關聯子查詢轉換的計畫。

  • 查詢計畫管理可以強制執行具有關聯子查詢快取的計畫。

其他改善項目和增強功能
  • 修正在查詢dba_plans檢視或呼叫查詢計畫管理中的 validate_plansevolve_plan_baselines函數時,導致錯誤或重新啟動的參數清單問題。

  • 修正透過查詢計劃管理中關聯任何轉換最佳化的計劃強制執行問題。

  • 修正在安裝擴充功能或重設共用記憶體後立即執行公用程式陳述式的查詢計劃管理問題。

  • 修正在查詢計畫管理中呼叫不可變函數之查詢的強制執行、驗證和發展計畫的問題。

  • 修正在查詢計畫管理中強制執行、驗證和發展計畫的問題。

PostgreSQL 16 版

apg_plan_mgmt 2.8 版,適用於 Aurora PostgreSQL 16.8,2025 年 4 月 8 日

Aurora PostgreSQL 16.8 的 2.8 版apg_plan_mgmt擴充功能改進包括下列項目:

新功能
  • 查詢計畫管理可以強制執行具有關聯子查詢轉換的計畫。

  • 查詢計畫管理可以強制執行具有關聯子查詢快取的計畫。

其他改善項目和增強功能
  • 修正在查詢dba_plans檢視或呼叫查詢計畫管理中的 validate_plansevolve_plan_baselines函數時,導致錯誤或重新啟動的參數清單問題。

  • 修正透過查詢計劃管理中關聯任何轉換最佳化的計劃強制執行問題。

  • 修正在安裝擴充功能或重設共用記憶體後立即執行公用程式陳述式的查詢計劃管理問題。

  • 修正在查詢計畫管理中呼叫不可變函數之查詢的強制執行、驗證和發展計畫的問題。

  • 修正在查詢計劃管理中強制執行、驗證和發展計劃的問題。

apg_plan_mgmt 2.7 版,適用於 Aurora PostgreSQL 16.6,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 計劃的問題。

  • 修正強制執行包含附加運算子的 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 可以強制執行具有彙總運算子的計劃。

其他改善項目和增強功能
  • 修正捨棄資料庫並未從共用記憶體移除相關聯擷取計劃的問題。

  • 修正了強制執行包含檢視的計劃的問題。

  • 改善平行附加計畫強制執行。

  • 修正與計劃擷取相關的問題。

  • 修正了強制執行包含收集節點的計劃的問題。

適用於 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 版

apg_plan_mgmt 2.8 版,適用於 Aurora PostgreSQL 15.12,2025 年 4 月 8 日

Aurora PostgreSQL 15.12 的 2.8 版apg_plan_mgmt擴充功能改進包括下列項目:

其他改善項目和增強功能
  • 修正在查詢dba_plans檢視或呼叫查詢計畫管理中的 validate_plansevolve_plan_baselines函數時,導致錯誤或重新啟動的參數清單問題。

  • 修正透過查詢計劃管理中關聯任何轉換最佳化的計劃強制執行問題。

  • 修正在安裝擴充功能或重設共用記憶體後立即執行公用程式陳述式的查詢計劃管理問題。

  • 修正在查詢計畫管理中呼叫不可變函數之查詢的強制執行、驗證和發展計畫的問題。

  • 修正在查詢計劃管理中強制執行、驗證和發展計劃的問題。

apg_plan_mgmt 2.7 版,適用於 Aurora PostgreSQL 15.10,2024 年 12 月 27 日

Aurora PostgreSQL 15.10 的 2.7 版apg_plan_mgmt擴充功能改進包括下列項目:

其他改善項目和增強功能
  • 修正查詢計畫管理中在複本上擷取計畫的問題,其中複本中的共用記憶體陣列會變滿。

  • 修正查詢計畫管理背景工作者導致計畫保留期間未強制執行且上次使用日期未更新的問題。

  • 修正與查詢計畫管理背景工作者相關的問題。

  • 修正了強制執行包含點陣圖掃描的查詢計畫管理計畫的問題。

  • 修正查詢計劃管理的問題,其中針對具有多個查詢的函數或程序錯誤擷取計劃。

  • 修正在查詢計畫管理中擷取巢狀查詢執行計畫的問題。

  • 已修正使用延伸查詢通訊協定在查詢計劃管理中擷取計劃的問題。

apg_plan_mgmt 2.7 版,適用於 Aurora PostgreSQL 15.8,2024 年 9 月 30 日

Aurora PostgreSQL 15.8 的 2.7 版apg_plan_mgmt擴充功能改進包括下列項目:

其他改善項目和增強功能
  • 已修正執行包含雜湊彙總的查詢計畫管理計畫的問題。

apg_plan_mgmt 2.7 版,適用於 Aurora PostgreSQL 15.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 可以強制執行具有彙總運算子的計劃。

其他改善項目和增強功能
  • 修正捨棄資料庫並未從共用記憶體移除相關聯擷取計劃的問題。

  • 修正了強制執行包含檢視的計劃的問題。

  • 改善平行附加計畫強制執行。

  • 修正與計劃擷取相關的問題。

  • 修正了強制執行包含收集節點的計劃的問題。

適用於 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 中有收集節點的已核准計畫。

  • QPM 可以對具體化節點強制執行查詢計畫。若要強制執行具體化節點,您必須在升級至 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 延伸模組。

  • 您必須指定 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 選項,EXPLAIN 結果仍會顯示 sql_hash 和 plan_hash。

  • 導入了新的 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 可以對記憶節點強制執行查詢計畫。

  • apg_plan_mgmt.copy_outline 函數可以採用新的第 5 個參數 force_update_target_plan_hash。如果設定為 true,即使來源計畫無法針對目標 sql_hash 重現,目標計畫雜湊仍會更新。

其他改善項目和增強功能
  • 已修正 JDBC 預備陳述式計畫強制執行的問題。

  • 已改進 pg_stat_statements 和 apg_plan_mgmt.dba_plans 之間有關 queryid 的同位檢查。

  • 已修正索引名稱結尾為數字時的計畫強制執行問題。

  • 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 版

apg_plan_mgmt 2.8 版,適用於 Aurora PostgreSQL 14.17,2025 年 4 月 8 日

針對 Aurora PostgreSQL 14.17 的 2.8 版apg_plan_mgmt擴充功能改進如下:

其他改善項目和增強功能
  • 修正在查詢dba_plans檢視或呼叫查詢計畫管理中的 validate_plansevolve_plan_baselines函數時,導致錯誤或重新啟動的參數清單問題。

  • 修正透過查詢計劃管理中關聯任何轉換最佳化的計劃強制執行問題。

  • 修正在安裝擴充功能或重設共用記憶體後立即執行公用程式陳述式的查詢計劃管理問題。

  • 修正在查詢計畫管理中呼叫不可變函數之查詢的強制執行、驗證和發展計畫的問題。

  • 修正在查詢計劃管理中強制執行、驗證和發展計劃的問題。

apg_plan_mgmt 2.7 版,適用於 Aurora PostgreSQL 14.15,2024 年 12 月 27 日

2.7 版中 Aurora PostgreSQL 14.15 apg_plan_mgmt擴充功能的改進包括下列項目:

其他改善項目和增強功能
  • 修正查詢計畫管理中在複本上擷取計畫的問題,其中複本中的共用記憶體陣列會變滿。

  • 修正查詢計畫管理背景工作者導致計畫保留期間未強制執行且上次使用日期未更新的問題。

  • 修正與查詢計畫管理背景工作者相關的問題。

  • 修正了強制執行包含點陣圖掃描的查詢計畫管理計畫的問題。

  • 修正查詢計劃管理的問題,其中針對具有多個查詢的函數或程序錯誤擷取計劃。

  • 修正在查詢計畫管理中擷取巢狀查詢執行計畫的問題。

  • 已修正使用延伸查詢通訊協定在查詢計劃管理中擷取計劃的問題。

apg_plan_mgmt 2.7 版,適用於 Aurora PostgreSQL 14.12,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 可以強制執行具有彙總運算子的計劃。

其他改善項目和增強功能
  • 修正捨棄資料庫並未從共用記憶體移除相關聯擷取計劃的問題。

  • 修正了強制執行包含檢視的計劃的問題。

  • 改善平行附加計畫強制執行。

  • 修正與計劃擷取相關的問題。

  • 修正了強制執行包含收集節點的計劃的問題。

適用於 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 中有收集節點的已核准計畫。

  • QPM 可以對具體化節點強制執行查詢計畫。若要強制執行具體化節點,您必須在升級至 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 延伸模組。

  • 您必須指定 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 選項,EXPLAIN 結果仍會顯示 sql_hash 和 plan_hash。

  • 導入了新的 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 可以對記憶節點強制執行查詢計畫。

  • apg_plan_mgmt.copy_outline 函數可以採用新的第 5 個參數 force_update_target_plan_hash。如果設定為 true,即使來源計畫無法針對目標 sql_hash 重現,目標計畫雜湊仍會更新。

其他改善項目和增強功能
  • 已修正 JDBC 預備陳述式計畫強制執行的問題。

  • 已改進 pg_stat_statements 和 apg_plan_mgmt.dba_plans 之間有關 queryid 的同位檢查。

  • 已修正索引名稱結尾為數字時的計畫強制執行問題。

  • 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 版

apg_plan_mgmt 2.8 版,適用於 Aurora PostgreSQL 13.20,2025 年 4 月 8 日

Aurora PostgreSQL 13.20 的 2.8 版apg_plan_mgmt擴充功能改進包括下列項目:

其他改善項目和增強功能
  • 修正在查詢dba_plans檢視或呼叫查詢計畫管理中的 validate_plansevolve_plan_baselines函數時,導致錯誤或重新啟動的參數清單問題。

  • 修正透過查詢計劃管理中關聯任何轉換最佳化的計劃強制執行問題。

  • 修正在安裝擴充功能或重設共用記憶體後立即執行公用程式陳述式的查詢計劃管理問題。

  • 修正在查詢計畫管理中呼叫不可變函數之查詢的強制執行、驗證和發展計畫的問題。

  • 修正在查詢計劃管理中強制執行、驗證和發展計劃的問題。

apg_plan_mgmt 2.7 版,適用於 Aurora PostgreSQL 13.18,2024 年 12 月 27 日

Aurora PostgreSQL 13.18 2.7 版中apg_plan_mgmt擴充功能的改進包括下列項目:

其他改善項目和增強功能
  • 修正查詢計畫管理中在複本上擷取計畫的問題,其中複本中的共用記憶體陣列會變滿。

  • 修正查詢計畫管理背景工作者導致計畫保留期間未強制執行且上次使用日期未更新的問題。

  • 修正與查詢計畫管理背景工作者相關的問題。

  • 修正了強制執行包含點陣圖掃描的查詢計畫管理計畫的問題。

  • 修正查詢計劃管理的問題,其中針對具有多個查詢的函數或程序錯誤擷取計劃。

  • 修正在查詢計畫管理中擷取巢狀查詢執行計畫的問題。

  • 已修正使用延伸查詢通訊協定在查詢計劃管理中擷取計劃的問題。

apg_plan_mgmt 2.7 版,適用於 Aurora PostgreSQL 13.15,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 可以強制執行具有彙總運算子的計劃。

其他改善項目和增強功能
  • 修正捨棄資料庫並未從共用記憶體移除相關聯擷取計劃的問題。

  • 修正了強制執行包含檢視的計劃的問題。

  • 改善平行附加計畫強制執行。

  • 修正與計劃擷取相關的問題。

  • 修正了強制執行包含收集節點的計劃的問題。

適用於 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 中有收集節點的已核准計畫。

  • 若要從複本擷取查詢計畫,您必須呼叫 ALTER EXTENSION apg_plan_mgmt UPDATE 來更新 apg_plan_mgmt 延伸模組。

  • 您必須指定 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 選項,EXPLAIN 結果仍會顯示 sql_hash 和 plan_hash。

  • 導入了新的 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 版

apg_plan_mgmt 2.7 版,適用於 Aurora PostgreSQL 12.22,2024 年 12 月 27 日

Aurora PostgreSQL 12.22 的 2.7 版apg_plan_mgmt擴充功能改進包括下列項目:

其他改善項目和增強功能
  • 修正查詢計畫管理中在複本上擷取計畫的問題,其中複本中的共用記憶體陣列會變滿。

  • 修正查詢計畫管理背景工作者導致計畫保留期間未強制執行且上次使用日期未更新的問題。

  • 修正與查詢計畫管理背景工作者相關的問題。

apg_plan_mgmt 2.7 版,適用於 Aurora PostgreSQL 12.19,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擴充功能改進包括下列項目:

新功能
  • 若要從複本擷取查詢計畫,您必須呼叫 ALTER EXTENSION apg_plan_mgmt UPDATE 來更新 apg_plan_mgmt 延伸模組。

  • 您必須指定 apg_plan_mgmt.plan_capture_threshold,才能不允許 QPM 擷取任何查詢計畫。

Aurora PostgreSQL apg_plan_mgmt 延伸模組的 2.3 版

2.3 版中 apg_plan_mgmt 延伸模組的改進功能包括下列各項:

新擴充功能功能
  • 支援新函數,即 apg_plan_mgmt.copy_outline 函數。此函數可讓您將某一個 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 版

2.1 版中針對 Aurora PostgreSQL 11.20 的 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 PostgreSQL 的查詢執行計畫

Aurora PostgreSQL apg_plan_mgmt extension 的 2.0 版

2.0 版的 apg_plan_mgmt 擴充功能變更包括下列各項:

新擴充功能功能
  1. 您現在可以管理 SQL 函數中的所有查詢,無論查詢是否具有參數。

  2. 您現在可以管理 PL/pgSQL 函數中的所有查詢,無論查詢是否具有參數。

  3. 您現在可以管理一般計劃中的查詢,不論查詢是否具有參數。若要進一步了解一般計畫與自訂計畫的相關資訊,請參閱 PostgreSQL 文件中的 PREPARE 陳述式。

  4. 您現在可以使用查詢計劃管理,強制在查詢計劃中使用特定類型的彙整方法。

擴充功能改善項目
  1. 您現在可以儲存最多可達 max_worker_processes 參數設定 8 KB 倍的計劃。先前的計劃大小上限為 8KB。

  2. 已修正未命名的預備陳述式 (例如來自 JDBC 的陳述式) 錯誤。

  3. 先前,當您嘗試在未載入 CREATE EXTENSION apg_plan_mgmt 的情況下執行 shared_preload_libraries 時,中斷了 PostgreSQL 後端連線。現在,錯誤訊息列印出,並且連線未捨棄。

  4. cardinality_errorapg_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 版

1.0.1 版的 apg_plan_mgmt 擴充功能變更包括下列項目:

新擴充功能功能
  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. get_explain_stmt 函數可用來產生指定 SQL 陳述式的 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 選項來將輸出重新導向至檔案。例如,您可以使用 EXPLAIN 依照 pg_stat_statements 順序排序的 PostgreSQL total_time 檢視來為排名最高 (前 K 個) 陳述式建立 DESC 指令碼。

  3. 蒐集平行查詢運算子的精準位置是由費用所決定,且可能會隨著時間稍微變更。若要避免這些差異使得整個計劃失效,即使蒐集運算子移到計劃樹狀圖中的不同位置時,查詢計劃管理仍會立即計算相同的plan_hash

  4. 已新增 pl/pgsql 函數中非參數化陳述式的支援。

  5. 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 函數現會以新方式準備快取。此函數會透過執行基線計劃、接著再執行一次基線計劃並執行一次候選計劃來這麼做。evolve_plan_baselines 先前會執行兩次候選計劃。此方法會明顯增加執行時間,尤其是較慢的候選計劃。然而,在候選計劃使用基線計劃中未使用的索引時,執行兩次候選計劃會更可靠。

  2. 查詢計劃管理不再儲存會參考系統資料表或檢視、暫時資料表或查詢計劃管理自身資料表的計劃。

  3. 錯誤修正包含在儲存和修正會導致後端終止的錯誤時立即進行計劃快取。