本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Aurora PostgreSQL 查詢計劃管理的參數參考
您可以使用本節中列出的參數設定 apg_plan_mgmt
擴充功能的偏好設定。您可以在自訂資料庫叢集參數以及與 Aurora PostgreSQL 資料庫叢集關聯的資料庫參數群組中使用這些資料庫參數。這些參數會控制查詢計劃管理功能的行為,以及它對最佳化工具的影響。如需設定查詢計劃管理的詳細資訊,請參閱 開啟 Aurora PostgreSQL 查詢計劃管理。如果 apg_plan_mgmt
擴充功能未按照該部分的詳細資訊進行設定,則變更下列參數沒有任何作用。如需修改參數的相關資訊,請參閱 在 Amazon Aurora 中修改資料庫叢集參數群組中的參數 和 極光資料庫執行個體的資料庫參數群。
參數
- apg_plan_mgmt.capture_plan_baselines
- apg_plan_mgmt.plan_capture_threshold
- apg_plan_mgmt.explain_hashes
- apg_plan_mgmt.log_plan_enforcement_result
- apg_plan_mgmt.max_databases
- apg_plan_mgmt.max_plans
- apg_plan_mgmt.plan_hash_version
- apg_plan_mgmt.plan_retention_period
- apg_plan_mgmt.unapproved_plan_execution_threshold
- apg_plan_mgmt.use_plan_baselines
- auto_explain.hashes
apg_plan_mgmt.capture_plan_baselines
擷取最佳化工具針對每個 SQL 陳述式產生的查詢執行計劃,並將它們儲存於 dba_plans
檢視。根據預設,可儲存的計劃數目上限為 10,000,如 apg_plan_mgmt.max_plans
參數所指定。如需參考資訊,請參閱 apg_plan_mgmt.max_plans。
您可以在自訂資料庫叢集參數群組或自訂資料庫參數群組中設定此參數。變更此參數的值不需要重新開機。
預設 | 允許的值 | 描述 |
---|---|---|
off | 自動 | 開啟資料庫執行個體上所有資料庫的計劃擷取。針對執行兩次或多次的每個 SQL 陳述式收集計劃。對於大型或不斷發展的工作負載使用此設定,以提供計劃穩定性。 |
手動 | 只開啟後續陳述式的計劃擷取,直到您再次將其關閉為止。使用此設定可讓您僅擷取特定重要 SQL 陳述式或已知有問題的查詢的查詢執行計劃。 | |
off | 關閉計劃擷取。 |
如需更多詳細資訊,請參閱 擷取 Aurora PostgreSQL 執行計畫。
apg_plan_mgmt.plan_capture_threshold
指定一個閾值,以便如果查詢執行計畫的總成本低於閾值,則不會在 apg_plan_mgmt.dba_plans
檢視中擷取該計畫。
變更此參數的值不需要重新開機。
預設 | 允許的值 | 描述 |
---|---|---|
0 | 0 - 1.79769e+308 | 設定擷取計畫的 |
如需更多詳細資訊,請參閱 在 dba_plans 檢視中檢查 Aurora PostgreSQL 查詢計劃。
apg_plan_mgmt.explain_hashes
指定 EXPLAIN [ANALYZE]
是否在其輸出尾端顯示 sql_hash
和 plan_hash
。變更此參數的值不需要重新開機。
預設 | 允許的值 | 描述 |
---|---|---|
0 | 0 (關閉) | EXPLAIN 不會顯示沒有雜湊 true 選項的 sql_hash 和 plan_hash。 |
1 (開啟) | EXPLAIN 會顯示沒有雜湊 true 選項的 sql_hash 和 plan_hash。 |
apg_plan_mgmt.log_plan_enforcement_result
指定是否必須記錄結果,以查看是否適當地使用 QPM 受管計畫。使用存放的一般計畫時,日誌檔中不會寫入任何記錄。變更此參數的值不需要重新開機。
預設 | 允許的值 | 描述 |
---|---|---|
無 | 無 | 不會在日誌檔中顯示任何計畫強制執行結果。 |
on_error | 只有當 QPM 無法使用受管計畫時,才會在日誌檔中顯示計畫強制執行結果。 | |
全部 | 在日誌檔中顯示所有計畫強制執行結果,包括成功和失敗。 |
apg_plan_mgmt.max_databases
指定 Aurora PostgreSQL 資料庫叢集的寫入器執行個體上可使用查詢計劃管理的資料庫數量上限。預設情況下,查詢計劃管理最多可支援 10 個資料庫。如果執行個體上有 10 個以上的資料庫,您可以變更此設定的值。若要瞭解指定執行個體上有多少資料庫,請使用 psql
連線到該執行個體。然後,使用 psql 元命令,\l
,以列出資料庫。
變更此參數的值時,您必須重新啟動執行個體,設定才會生效。
預設 | 允許的值 | 描述 |
---|---|---|
10 | 10-2147483647 | 執行個體上可使用查詢計畫管理的資料庫數量上限。 |
您可以在自訂資料庫叢集參數群組或自訂資料庫參數群組中設定此參數。
apg_plan_mgmt.max_plans
設定查詢計畫管理器可以在 apg_plan_mgmt.dba_plans
檢視中維護的 SQL 陳述式數量上限。對於所有 Aurora PostgreSQL 版本,我們建議將此參數設定為 10000
或更高的值。
您可以在自訂資料庫叢集參數群組或自訂資料庫參數群組中設定此參數。變更此參數的值時,您必須重新啟動執行個體,設定才會生效。
預設 | 允許的值 | 描述 |
---|---|---|
10000 | 10-2147483647 | 可儲存於 Aurora PostgreSQL 第 10 版及較早版本的預設值為 1000。 |
如需更多詳細資訊,請參閱 在 dba_plans 檢視中檢查 Aurora PostgreSQL 查詢計劃。
apg_plan_mgmt.plan_hash_version
指定 plan_hash 計算旨在涵蓋的使用案例。較高版本的 apg_plan_mgmt.plan_hash_version
涵蓋了較低版本的所有功能。例如,第 3 版涵蓋了第 2 版支援的使用案例。
變更此參數的值之後必須接著呼叫 apg_plan_mgmt.validate_plans('update_plan_hash')
。其會更新每個資料庫 (已安裝 apg_plan_mgmt) 中的 plan_hash,以及計畫資料表中的項目。如需更多詳細資訊,請參閱 驗證計劃
預設 | 允許的值 | 描述 |
---|---|---|
1 | 1 | 預設 plan_hash 計算。 |
2 | 針對多結構描述支援而修改的 plan_hash 計算。 | |
3 | 針對多結構描述支援和分割資料表支援而修改的 plan_hash 計算。 | |
4 | plan_hash 計算針對平行運算子進行了修改並支援具體化節點。 |
apg_plan_mgmt.plan_retention_period
指定 apg_plan_mgmt.dba_plans
檢視中保留計劃的天數,經過此日期後,它們會自動刪除。根據預設,計劃自從上次使用以來經過 32 天時就會被刪除 (apg_plan_mgmt.dba_plans
檢視中的 last_used
資料欄)。您可以將此設定變更為任意數字、1 和以上。
變更此參數的值時,您必須重新啟動執行個體,設定才會生效。
預設 | 允許的值 | 描述 |
---|---|---|
32 | 1-2147483647 | 上次使用計劃後到該計劃被自動刪除的天數上限。 |
如需更多詳細資訊,請參閱 在 dba_plans 檢視中檢查 Aurora PostgreSQL 查詢計劃。
apg_plan_mgmt.unapproved_plan_execution_threshold
指定一個成本閾值,低於該閾值時,最佳化工具可以使用未經核准的計畫。預設情況下,閾值為 0,因此最佳化工具不會執行未經核准的計畫。將此參數設為非常低的成本閾值 (例如 100),可以避免普通計畫的計畫執行開銷。您也可以使用計畫管理的被動式方式,將此參數設定為非常大的值,例如 10000000。這可讓最佳化工具使用所有選定的計畫,不會產生強制實施計畫的開銷。但是,當發現錯誤的計畫時,您可以手動將其標記為「拒絕」,以便下次不再使用。
此參數的值代表執行指定計劃的成本預估值。如果「未核准」的計劃低於該預估成本,最佳化處理程式會將其用於 SQL 陳述式。您可以在 dba_plans
檢視中查看擷取的計劃及其狀態 (已核准、未核准)。如需進一步了解,請參閱 在 dba_plans 檢視中檢查 Aurora PostgreSQL 查詢計劃。
變更此參數的值不需要重新開機。
預設 | 允許的值 | 描述 |
---|---|---|
0 | 0-2147483647 | 預估計劃成本,低於此成本時,則使用未核准計劃。 |
如需更多詳細資訊,請參閱 使用 Aurora PostgreSQL 受管計劃。
apg_plan_mgmt.use_plan_baselines
指定最佳化工具應使用已擷取並儲存於 apg_plan_mgmt.dba_plans
檢視的其中一個「已核准」計劃。根據預設,此參數為 off (false),導致最佳化工具使用其產生的最低成本計畫,而無需進一步評估。開啟這個參數 (將其設定為 true) 會強制最佳化工具從其計劃基準中選擇陳述式的查詢執行計畫。如需更多詳細資訊,請參閱 使用 Aurora PostgreSQL 受管計劃。若要尋找詳細說明此程序的圖片,請參閱 最佳化工具如何選擇要執行的計劃。
您可以在自訂資料庫叢集參數群組或自訂資料庫參數群組中設定此參數。變更此參數的值不需要重新開機。
預設 | 允許的值 | 描述 |
---|---|---|
false | true | 使用 apg_plan_mgmt.dba_plans 中「已核准」、「偏好」或「未核准」的計劃。如果這些計劃都不符合最佳化工具的所有評估標準,則可以使用自己產生的最低成本計劃。如需更多詳細資訊,請參閱 最佳化工具如何選擇要執行的計劃。 |
false | 使用最佳化工具產生的最低成本計劃。 |
您可以視需要評估不同擷取計劃的回應時間,並變更計劃狀態。如需更多詳細資訊,請參閱 維護 Aurora PostgreSQL 執行計劃。
auto_explain.hashes
指定 auto_explain 輸出是否顯示 sql_hash 和 plan_hash。變更此參數的值不需要重新開機。
預設 | 允許的值 | 描述 |
---|---|---|
0 (關閉) | 0 (關閉) | auto_explain 結果不顯示 sql_hash 和 plan_hash 。 |
1 (開啟) | auto_explain 結果顯示 sql_hash 和 plan_hash 。 |