apg_plan_mgmt.dba_plans 视图参考 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

apg_plan_mgmt.dba_plans 视图参考

apg_plan_mgmt.dba_plans 视图中的计划信息列包括下列内容。

dba_plans 列 描述
cardinality_error

对估计基数与实际基数之间错误的测量。基数是计划要处理的表行数。如果基数错误较大,则会增加计划并非最优的可能性。此列由 apg_plan_mgmt.evolve_plan_baselines 函数填充。

compatibility_level

Aurora PostgreSQL 优化程序的功能级别。

created_by 创建计划的已通过身份验证用户 (session_user)。
enabled

计划已启用还是已禁用的指示符。默认情况下启用所有计划。您可以禁用计划以防止由优化程序使用。要修改此值,请使用 apg_plan_mgmt.set_plan_enabled 函数。

environment_variables

优化程序在捕获计划时覆盖的 PostgreSQL Grand Unified Configuration (GUC) 参数和值。

estimated_startup_cost 在优化程序提供表行之前估算的优化程序设置成本。
estimated_total_cost 估算的优化程序提供最终表行的成本。
execution_time_benefit_ms 启用计划带来的执行时间效益,以毫秒为单位。此列由 apg_plan_mgmt.evolve_plan_baselines 函数填充。
execution_time_ms 计划将运行的估计时间,以毫秒为单位。此列由 apg_plan_mgmt.evolve_plan_baselines 函数填充。
has_side_effects 此值指示 SQL 语句是数据操作语言 (DML) 语句还是包含 VOLATILE 函数的 SELECT 语句。
last_used 此值在计划执行或者计划是查询优化程序的最低成本计划时,更新为当前日期。此值存储在共享内存中,定期刷新到磁盘。要获取最新的值,请通过调用函数 apg_plan_mgmt.plan_last_used(sql_hash, plan_hash) 而不是读取 last_used 值,从共享内存中读取日期。有关其他信息,请参阅 apg_plan_mgmt.plan_retention_period 参数。
last_validated 验证计划可以由 apg_plan_mgmt.validate_plans 函数或 apg_plan_mgmt.evolve_plan_baselines 函数重新创建时的最近日期和时间。
last_verified apg_plan_mgmt.evolve_plan_baselines 函数验证计划是指定参数的最佳性能计划的最近日期和时间。
origin

如何通过 apg_plan_mgmt.capture_plan_baselines 参数捕获的计划。包括下列有效值:

M – 通过手动计划捕获来捕获的计划。

A – 通过自动计划捕获来捕获的计划。

param_list

在语句是预编译语句时,传递到语句的参数值。

plan_created 计划的创建日期和时间。
plan_hash 计划标识符。plan_hashsql_hash 的组合唯一标识特定计划。
plan_outline 计划的表示,用于重新创建实际的执行计划,与数据库无关。树中的运算符对应于 EXPLAIN 输出中显示的运算符。
planning_time_ms

运行计划程序的实际时间,以毫秒为单位。此列由 apg_plan_mgmt.evolve_plan_baselines 函数填充。

queryId 语句哈希,由 pg_stat_statements 扩展计算。这不是稳定或独立于数据库的标识符,因为它依赖于对象标识符 (OID)。捕获查询计划时,如果 compute_query_idoff,则该值将为 0
sql_hash SQL 语句文本的散列值,删除了文本以标准化。
sql_text SQL 语句的完整文本。
status

计划的状态,确定优化程序如何使用计划。包括下列有效值。

  • Approved – 可用的计划,优化程序可以选择该计划来运行。优化程序运行托管语句的已批准计划集(基线)中最低成本的计划。要将计划重置为已批准,请使用 apg_plan_mgmt.evolve_plan_baselines 函数。

  • Unapproved – 您尚未验证以供使用的已捕获计划。有关更多信息,请参阅“评估计划性能”。

  • Rejected – 优化程序不会使用的计划。有关更多信息,请参阅“拒绝或禁用速度较慢的计划”。

  • Preferred – 您已确定作为首选计划的计划,该计划用于托管语句。

    如果优化程序的最低成本计划不是已批准计划或首选计划,您可以减少计划实施开销。为此,请建立已审批计划 Preferred 的子集。当优化程序的最低成本不是 Approved 计划时,将在 Preferred 计划之前选择 Approved 计划。

    要将计划重置为 Preferred,请使用 apg_plan_mgmt.set_plan_status 函数。

stmt_name PREPARE 语句内 SQL 语句的名称。对于未命名的预编译语句,此值是为字符串。对于非预编译语句,此值是为 NULL。
total_time_benefit_ms

启用此计划带来的总时间效益,以毫秒为单位。此值同时考虑到规划时间和执行时间。

如果此值为负数,则启用此计划有负面效果。此列由 apg_plan_mgmt.evolve_plan_baselines 函数填充。