使用調適型聯結改善查詢效能 - Amazon Aurora

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

使用調適型聯結改善查詢效能

概觀

調適型聯結是 Aurora PostgreSQL 17.4 中的預覽功能,有助於改善查詢效能。此功能預設為停用,但您可以使用全域使用者組態 (GUC) 參數來啟用此功能。由於這是預覽功能,預設參數值可能會變更。啟用時,調適型聯結可透過在執行階段從巢狀迴圈聯結動態切換到雜湊聯結,協助最佳化查詢效能。當 PostgreSQL 最佳化工具因為不正確的基數預估而不正確地選擇巢狀迴圈聯結時,就會發生此切換。

設定調適型聯結

您可以使用這三個 GUC 參數來控制調適型聯結:

調適型聯結組態參數
GUC 參數 描述 預設值和組態選項
apg_adaptive_join_crossover_multiplier 此乘數可與資料列交叉點搭配使用,以判斷何時從巢狀迴圈切換到雜湊聯結。資料列交叉點是 SQL 最佳化工具預估巢狀迴圈和雜湊聯結操作具有相同成本的位置。較高的乘數值可降低調適型聯結切換到雜湊聯結的可能性。

控制是否已啟用調適型聯結

  • 預設值:-1 (已停用)

  • 有效範圍:-1 到 DBL_MAX

  • 若要啟用:設定為 >= 1

apg_adaptive_join_cost_threshold 此參數會設定最低查詢成本閾值。對於低於此閾值的查詢,調適型聯結會自行自動停用。這可避免簡單查詢的效能額外負荷,其中規劃調適型聯結的成本可能會超過從巢狀迴圈切換到雜湊聯結的優勢。

設定查詢的最低成本閾值

  • 預設值:100

  • 有效範圍:0 到 DBL_MAX

apg_enable_parameterized_adaptive_join 此參數會在啟用時,將調適型聯結功能延伸至參數化巢狀迴圈聯結。根據預設,調適型聯結僅適用於未參數化巢狀迴圈聯結,因為這些聯結更可能因為切換到雜湊聯結而獲益。參數化巢狀迴圈聯結通常效能更佳,因此切換到雜湊聯結較不重要。

控制巢狀迴圈聯結的調適型聯結行為

  • 預設值:false

  • 有效值:true/false

    • 當為 False 時:僅適用於未參數化巢狀迴圈聯結

    • 當為 True 時:適用於參數化和未參數化巢狀迴圈聯結

注意

需要先啟用 apg_adaptive_join_crossover_multiplier