Amazon Aurora
Aurora 用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

查询计划管理的参数参考

apg_plan_mgmt 扩展提供以下参数。

在相应的级别设置查询计划管理参数:

您必须在集群或数据库实例级别设置参数 apg_plan_mgmt.max_databasesapg_plan_mgmt.max_plans

apg_plan_mgmt.capture_plan_baselines

为 SQL 语句启用执行计划捕获。

SET apg_plan_mgmt.capture_plan_baselines = [off | automatic |manual]

说明
off 禁用计划捕获。这是默认值。
automatic 为满足资格条件的后续 SQL 语句启用计划捕获。
manual 为后续 SQL 语句启用计划捕获。

apg_plan_mgmt.max_databases

设置可能使用查询计划管理的最大数据库对象数量。数据库对象是使用 CREATE DATABASE SQL 语句所创建的内容。

重要

在集群或数据库实例级设置 apg_plan_mgmt.max_databases。这需要重启数据库实例以使新值生效。

默认值 描述
正整数 10 一个正整数值。

apg_plan_mgmt.max_plans

设置 apg_plan_mgmt.dba_plans 视图中可捕获的计划最大数量。

重要

在集群或数据库实例级设置 apg_plan_mgmt.max_plans。这需要重启数据库实例以使新值生效。

默认值 描述
integer 1000 一个大于或等于 10 的正整数值。

apg_plan_mgmt.pgss_min_calls

设置符合计划捕获条件的 pg_stat_statements 调用的最小数量。

SET apg_plan_mgmt.pgss_min_calls = integer-value;

默认值 描述
正整数 2 一个大于或等于 2 的正整数值。

使用说明

需要安装 pg_stat_statements 扩展。有关更多信息,请参阅 PostgreSQL pg_stats_statements 文档

apg_plan_mgmt.pgss_min_mean_time_ms

要符合计划捕获条件所需满足的 pg_stat_statements mean_time 最小值。

SET apg_plan_mgmt.pgss_min_mean_time_ms = double-value;

默认值 描述
正数 0.0 一个大于或等于 0.0 的正数值。

使用说明

需要安装 pg_stat_statements 扩展。有关更多信息,请参阅 PostgreSQL pg_stats_statements 文档

apg_plan_mgmt.pgss_min_stddev_time_ms

要符合计划捕获条件所需满足的 pg_stat_statements stddev_time 最小值。

SET apg_plan_mgmt.pgss_min_stddev_time_ms = double-value;

默认值 描述
正数 0.0 一个大于或等于 0.0 的正数值。

使用说明

需要安装 pg_stat_statements 扩展。有关更多信息,请参阅 PostgreSQL pg_stats_statements 文档

apg_plan_mgmt.pgss_min_total_time_ms

要符合计划捕获条件所需满足的 pg_stat_statements total_time 最小值。

SET apg_plan_mgmt.pgss_min_total_time_ms = double-value;

默认值 描述
正数 0.0 一个大于或等于 0.0 的正数值。

使用说明

需要安装 pg_stat_statements 扩展。有关更多信息,请参阅 PostgreSQL pg_stats_statements 文档

apg_plan_mgmt.plan_retention_period

计划保留在 apg_plan_mgmt.dba_plans 视图中被自动删除之前的天数。计划将在计划的 last_used 日期距离当前日期达到此天数时删除。

SET apg_plan_mgmt.plan_retention_period_ = integer-value;

默认值 描述
正整数 32 一个大于或等于 32 的正整数值,表示天数。

apg_plan_mgmt.unapproved_plan_execution_threshold

预计的总计划成本阈值,低于该值时优化程序将运行未批准的计划。默认情况下,优化程序不运行未批准的计划。不过,您可以为速度最快的未批准计划设置执行阈值。使用此设置,优化程序可以绕过仅实施一个已批准计划的开销。

SET apg_plan_mgmt.unapproved_plan_execution_threshold = integer-value;

默认值 描述
正整数 0 一个大于或等于 0 的正整数值。值 0 意味着在 use_plan_baselinestrue 时不运行未批准的计划。

在以下示例中,优化程序在估计的成本低于 550 时运行未批准的计划,即使 use_plan_baselinestrue

SET apg_plan_mgmt.unapproved_plan_execution_threshold = 550;

apg_plan_mgmt.use_plan_baselines

强制优化程序为托管语句使用托管计划。

SET apg_plan_mgmt.use_plan_baselines = [true | false];

说明
true

强制使用托管计划。在 SQL 语句运行并且该语句是 apg_plan_mgmt.dba_plans 视图中的托管语句时,优化程序按照以下顺序选择托管计划。

  1. 有效且已启用的最低成本首选计划。

  2. 有效且已启用的最低成本已批准计划。

  3. 通过 apg_plan_mgmt.unapproved_plan_execution_threshold 参数设置时,有效、已启用且满足阈值的最低成本未批准计划。

  4. 优化程序生成的最低成本计划。

false (默认值)不使用托管计划。优化程序使用生成的最低成本计划。

使用说明

use_plan_baselinestrue 时,优化程序做出以下执行决策:

  1. 如果优化程序计划的估计成本低于 unapproved_plan_execution_threshold,则执行该计划,否则

  2. 如果计划为 approvedpreferred,则执行该计划,否则

  3. 执行最低成本 preferred 计划(如果可能),否则

  4. 执行最低成本 approved 计划(如果可能),否则

  5. 执行优化程序的最低成本计划。