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

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

Aurora PostgreSQL 查詢計畫管理更新

延伸功能 AWS apg_plan_mgmt為您的 Aurora PostgreSQL 資料庫叢集提供查詢計畫管理功能。它可讓您管理最佳化工具為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 可以強制執行具有彙總運算子的計劃。

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

  • 已修正執行包含檢視之計劃的問題。

  • 平行附加計劃強制執行的改進。

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

  • 已修正執行包含收集節點之計劃的相關問題。

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.7 版,適用於 Aurora PostgreSQL 15.8,2024 年 9 月 30 日

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

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

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

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

  • 已修正執行包含檢視之計劃的問題。

  • 平行附加計劃強制執行的改進。

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

  • 已修正執行包含收集節點之計劃的相關問題。

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 可以使用 Materialize 節點強制執行查詢計劃。若要強制執行具體化節點,您必須在升級至 15.4 或 14.9 之後執行下列操作:

    • apg_plan_mgmt.plan_hash_version 設定為 4 或以上。

    • 呼叫 apg_plan_mgmt.validate_plans('update_plan_hash')

  • 若要從 Replicas 擷取查詢計劃,您必須呼叫 ALTER EXTENSION apg_plan_mgmt 來更新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) 時,EXPLAIN結果會顯示 sql_hash 和 plan_hash,即使沒有雜湊 true 選項。

  • 已推出新的 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 之間有關 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 Postgre 的查詢執行計畫SQL

PostgreSQL 14 版本

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 可以使用 Materialize 節點強制執行查詢計劃。若要強制執行具體化節點,您必須在升級至 15.4 或 14.9 之後執行下列操作:

    • apg_plan_mgmt.plan_hash_version 設定為 4 或以上。

    • 呼叫 apg_plan_mgmt.validate_plans('update_plan_hash')

  • 若要從 Replicas 擷取查詢計劃,您必須呼叫 ALTER EXTENSION apg_plan_mgmt 來更新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) 時,EXPLAIN結果會顯示 sql_hash 和 plan_hash,即使沒有雜湊 true 選項。

  • 已推出新的 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 之間有關 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 Postgre 的查詢執行計畫SQL

PostgreSQL 13 版本

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

  • 若要從 Replicas 擷取查詢計劃,您必須呼叫 ALTER EXTENSION apg_plan_mgmt 來更新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) 時,EXPLAIN結果會顯示 sql_hash 和 plan_hash,即使沒有雜湊 true 選項。

  • 已推出新的 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擴充功能的改進包括下列項目:

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

  • 您需要指定 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 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

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_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

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

新擴充功能功能
  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. 有新get_explain_stmt函數可用,可產生指定EXPLAIN陳述式的SQL陳述式文字。其中包含參數 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 檢視,為排名前 (top-K) 的陳述式建立EXPLAIN指令碼。

  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. 錯誤修正包含在儲存和修正會導致後端終止的錯誤時立即進行計劃快取。