

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

# Aurora PostgreSQL 查詢計劃管理的參數參考
<a name="AuroraPostgreSQL.Optimize.Parameters"></a>

您可以使用本節中列出的參數設定 `apg_plan_mgmt` 擴充功能的偏好設定。您可以在自訂資料庫叢集參數以及與 Aurora PostgreSQL 資料庫叢集關聯的資料庫參數群組中使用這些資料庫參數。這些參數會控制查詢計劃管理功能的行為，以及它對最佳化工具的影響。如需設定查詢計劃管理的詳細資訊，請參閱 [開啟 Aurora PostgreSQL 查詢計劃管理](AuroraPostgreSQL.Optimize.overview.md#AuroraPostgreSQL.Optimize.Enable)。如果 `apg_plan_mgmt` 擴充功能未按照該部分的詳細資訊進行設定，則變更下列參數沒有任何作用。如需修改參數的相關資訊，請參閱 [在 Amazon Aurora 中修改資料庫叢集參數群組中的參數](USER_WorkingWithParamGroups.ModifyingCluster.md) 和 [Amazon Aurora 資料庫執行個體的資料庫參數群組](USER_WorkingWithDBInstanceParamGroups.md)。

**Topics**
+ [apg\$1plan\$1mgmt.capture\$1plan\$1baselines](#AuroraPostgreSQL.Optimize.Parameters.capture_plan_baselines)
+ [apg\$1plan\$1mgmt.plan\$1capture\$1threshold](#AuroraPostgreSQL.Optimize.Parameters.plan_capture_threshold)
+ [apg\$1plan\$1mgmt.explain\$1hashes](#AuroraPostgreSQL.Optimize.Parameters.explain_hashes)
+ [apg\$1plan\$1mgmt.log\$1plan\$1enforcement\$1result](#AuroraPostgreSQL.Optimize.Parameters.log_plan_enforcement_result)
+ [apg\$1plan\$1mgmt.max\$1databases](#AuroraPostgreSQL.Optimize.Parameters.max_databases)
+ [apg\$1plan\$1mgmt.max\$1plans](#AuroraPostgreSQL.Optimize.Parameters.max_plans)
+ [apg\$1plan\$1mgmt.plan\$1hash\$1version](#AuroraPostgreSQL.Optimize.Parameters.plan_hash_version)
+ [apg\$1plan\$1mgmt.plan\$1retention\$1period](#AuroraPostgreSQL.Optimize.Parameters.plan_retention_period)
+ [apg\$1plan\$1mgmt.unapproved\$1plan\$1execution\$1threshold](#AuroraPostgreSQL.Optimize.Parameters.unapproved_plan_execution_threshold)
+ [apg\$1plan\$1mgmt.use\$1plan\$1baselines](#AuroraPostgreSQL.Optimize.Parameters.use_plan_baselines)
+ [auto\$1explain.hashes](#AuroraPostgreSQL.Optimize.Parameters.auto_explain.hashes)

## apg\$1plan\$1mgmt.capture\$1plan\$1baselines
<a name="AuroraPostgreSQL.Optimize.Parameters.capture_plan_baselines"></a>

擷取最佳化工具針對每個 SQL 陳述式產生的查詢執行計劃，並將它們儲存於 `dba_plans` 檢視。根據預設，可儲存的計劃數目上限為 10,000，如 `apg_plan_mgmt.max_plans` 參數所指定。如需參考資訊，請參閱 [apg\$1plan\$1mgmt.max\$1plans](#AuroraPostgreSQL.Optimize.Parameters.max_plans)。

您可以在自訂資料庫叢集參數群組或自訂資料庫參數群組中設定此參數。變更此參數的值不需要重新開機。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

如需詳細資訊，請參閱[擷取 Aurora PostgreSQL 執行計畫](AuroraPostgreSQL.Optimize.CapturePlans.md)。

## apg\$1plan\$1mgmt.plan\$1capture\$1threshold
<a name="AuroraPostgreSQL.Optimize.Parameters.plan_capture_threshold"></a>

指定一個閾值，以便如果查詢執行計畫的總成本低於閾值，則不會在 `apg_plan_mgmt.dba_plans` 檢視中擷取該計畫。

變更此參數的值不需要重新開機。


| 預設 | 允許的值 | Description | 
| --- | --- | --- | 
| 0 | 0 - 1.79769e\$1308 | 設定擷取計畫的 `apg_plan_mgmt` 查詢計畫總執行成本的閾值。  | 

如需詳細資訊，請參閱[在 dba\$1plans 檢視中檢查 Aurora PostgreSQL 查詢計劃](AuroraPostgreSQL.Optimize.ViewPlans.md)。

## apg\$1plan\$1mgmt.explain\$1hashes
<a name="AuroraPostgreSQL.Optimize.Parameters.explain_hashes"></a>

指定 `EXPLAIN [ANALYZE]` 是否在其輸出尾端顯示 `sql_hash` 和 `plan_hash`。變更此參數的值不需要重新開機。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

## apg\$1plan\$1mgmt.log\$1plan\$1enforcement\$1result
<a name="AuroraPostgreSQL.Optimize.Parameters.log_plan_enforcement_result"></a>

指定是否必須記錄結果，以查看是否適當地使用 QPM 受管計畫。使用存放的一般計畫時，日誌檔中不會寫入任何記錄。變更此參數的值不需要重新開機。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

## apg\$1plan\$1mgmt.max\$1databases
<a name="AuroraPostgreSQL.Optimize.Parameters.max_databases"></a>

指定 Aurora PostgreSQL 資料庫叢集的寫入器執行個體上可使用查詢計劃管理的資料庫數量上限。預設情況下，查詢計劃管理最多可支援 10 個資料庫。如果執行個體上有 10 個以上的資料庫，您可以變更此設定的值。若要瞭解指定執行個體上有多少資料庫，請使用 `psql` 連線到該執行個體。然後，使用 psql 元命令，`\l`，以列出資料庫。

變更此參數的值時，您必須重新啟動執行個體，設定才會生效。


| 預設 | 允許的值 | Description | 
| --- | --- | --- | 
| 10 | 10-2147483647 | 執行個體上可使用查詢計畫管理的資料庫數量上限。 | 

您可以在自訂資料庫叢集參數群組或自訂資料庫參數群組中設定此參數。

## apg\$1plan\$1mgmt.max\$1plans
<a name="AuroraPostgreSQL.Optimize.Parameters.max_plans"></a>

設定查詢計畫管理器可以在 `apg_plan_mgmt.dba_plans` 檢視中維護的 SQL 陳述式數量上限。對於所有 Aurora PostgreSQL 版本，我們建議將此參數設定為 `10000` 或更高的值。

您可以在自訂資料庫叢集參數群組或自訂資料庫參數群組中設定此參數。變更此參數的值時，您必須重新啟動執行個體，設定才會生效。


| 預設 | 允許的值 | Description | 
| --- | --- | --- | 
| 10000 | 10-2147483647 | 可儲存於 `apg_plan_mgmt.dba_plans` 檢視的計劃數目上限。 Aurora PostgreSQL 第 10 版及較早版本的預設值為 1000。  | 

如需詳細資訊，請參閱[在 dba\$1plans 檢視中檢查 Aurora PostgreSQL 查詢計劃](AuroraPostgreSQL.Optimize.ViewPlans.md)。

## apg\$1plan\$1mgmt.plan\$1hash\$1version
<a name="AuroraPostgreSQL.Optimize.Parameters.plan_hash_version"></a>

指定 plan\$1hash 計算旨在涵蓋的使用案例。較高版本的 `apg_plan_mgmt.plan_hash_version` 涵蓋了較低版本的所有功能。例如，第 3 版涵蓋了第 2 版支援的使用案例。

 變更此參數的值之後必須接著呼叫 `apg_plan_mgmt.validate_plans('update_plan_hash')`。其會更新每個資料庫 (已安裝 apg\$1plan\$1mgmt) 中的 plan\$1hash，以及計畫資料表中的項目。如需詳細資訊，請參閱[驗證計劃](AuroraPostgreSQL.Optimize.Deleting.md#AuroraPostgreSQL.Optimize.Maintenance.ValidatingPlans) 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

## apg\$1plan\$1mgmt.plan\$1retention\$1period
<a name="AuroraPostgreSQL.Optimize.Parameters.plan_retention_period"></a>

指定 `apg_plan_mgmt.dba_plans` 檢視中保留計劃的天數，經過此日期後，它們會自動刪除。根據預設，計劃自從上次使用以來經過 32 天時就會被刪除 (`apg_plan_mgmt.dba_plans` 檢視中的 `last_used` 資料欄)。您可以將此設定變更為任意數字、1 和以上。

變更此參數的值時，您必須重新啟動執行個體，設定才會生效。


| 預設 | 允許的值 | Description | 
| --- | --- | --- | 
| 32 | 1-2147483647 | 上次使用計劃後到該計劃被自動刪除的天數上限。 | 

如需詳細資訊，請參閱[在 dba\$1plans 檢視中檢查 Aurora PostgreSQL 查詢計劃](AuroraPostgreSQL.Optimize.ViewPlans.md)。

## apg\$1plan\$1mgmt.unapproved\$1plan\$1execution\$1threshold
<a name="AuroraPostgreSQL.Optimize.Parameters.unapproved_plan_execution_threshold"></a>

指定一個成本閾值，低於該閾值時，最佳化工具可以使用未經核准的計畫。預設情況下，閾值為 0，因此最佳化工具不會執行未經核准的計畫。將此參數設為非常低的成本閾值 (例如 100)，可以避免普通計畫的計畫執行開銷。您也可以使用計畫管理的被動式方式，將此參數設定為非常大的值，例如 10000000。這可讓最佳化工具使用所有選定的計畫，不會產生強制實施計畫的開銷。但是，當發現錯誤的計畫時，您可以手動將其標記為「拒絕」，以便下次不再使用。

此參數的值代表執行指定計劃的成本預估值。如果「未核准」的計劃低於該預估成本，最佳化處理程式會將其用於 SQL 陳述式。您可以在 `dba_plans` 檢視中查看擷取的計劃及其狀態 (已核准、未核准)。如需詳細資訊，請參閱 [在 dba\$1plans 檢視中檢查 Aurora PostgreSQL 查詢計劃](AuroraPostgreSQL.Optimize.ViewPlans.md)。

變更此參數的值不需要重新開機。


| 預設 | 允許的值 | Description | 
| --- | --- | --- | 
| 0 | 0-2147483647 | 預估計劃成本，低於此成本時，則使用未核准計劃。 | 

如需詳細資訊，請參閱[使用 Aurora PostgreSQL 受管計劃](AuroraPostgreSQL.Optimize.UsePlans.md)。

## apg\$1plan\$1mgmt.use\$1plan\$1baselines
<a name="AuroraPostgreSQL.Optimize.Parameters.use_plan_baselines"></a>

指定最佳化工具應使用已擷取並儲存於 `apg_plan_mgmt.dba_plans` 檢視的其中一個「已核准」計劃。根據預設，此參數為 off (false)，導致最佳化工具使用其產生的最低成本計畫，而無需進一步評估。開啟這個參數 (將其設定為 true) 會強制最佳化工具從其計劃基準中選擇陳述式的查詢執行計畫。如需詳細資訊，請參閱[使用 Aurora PostgreSQL 受管計劃](AuroraPostgreSQL.Optimize.UsePlans.md)。若要尋找詳細說明此程序的圖片，請參閱 [最佳化工具如何選擇要執行的計劃](AuroraPostgreSQL.Optimize.UsePlans.md#AuroraPostgreSQL.Optimize.UsePlans.ChoosePlans)。

您可以在自訂資料庫叢集參數群組或自訂資料庫參數群組中設定此參數。變更此參數的值不需要重新開機。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

您可以視需要評估不同擷取計劃的回應時間，並變更計劃狀態。如需詳細資訊，請參閱[改善 Aurora PostgreSQL 查詢計劃](AuroraPostgreSQL.Optimize.Maintenance.md)。

## auto\$1explain.hashes
<a name="AuroraPostgreSQL.Optimize.Parameters.auto_explain.hashes"></a>

指定 auto\$1explain 輸出是否顯示 sql\$1hash 和 plan\$1hash。變更此參數的值不需要重新開機。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)