监控 Aurora PostgreSQL 的查询执行计划和峰值内存
您可以监控 Aurora PostgreSQL 数据库实例中的查询执行计划,以检测导致当前数据库负载的执行计划,并使用 aurora_compute_plan_id
参数跟踪执行计划随时间推移的性能统计数据。每当执行查询时,都会为查询使用的执行计划分配一个标识符,同一计划的后续执行将使用相同的标识符。
在 Aurora PostgreSQL 14.10、15.5 及更高版本中的数据库参数组中,aurora_compute_plan_id
默认处于开启状态。计划标识符的分配是默认行为,可以通过在参数组中将 aurora_compute_plan_id
设置为 OFF 来关闭。
此计划标识符用于多个不同用途的实用程序中。
可以监控数据库实例中的查询峰值内存使用量,来检测导致以下版本中数据库内存使用量高的查询:
16.3 及所有更高版本
15.7 及更高版本
14.12 及更高版本
每当查询运行时,都会跟踪查询使用的峰值内存。查询通常会运行多次;可以查看每个查询跨所有运行的平均、最小和最大内存使用量值。
使用 Aurora 函数访问查询执行计划和峰值内存
使用 aurora_compute_plan_id
,您可以使用以下函数访问执行计划:
aurora_stat_activity
aurora_stat_plans
查询峰值内存不包括在查询处理开始之前分配的内存。在每个查询的计划和执行阶段,单独跟踪和报告峰值内存使用量。
可以使用以下函数访问查询峰值内存统计数据:
aurora_stat_statements
aurora_stat_plans
有关这些函数的更多信息,请参阅Aurora PostgreSQL 函数参考。
Aurora PostgreSQL 查询执行计划的参数参考
您可以使用数据库参数组中的以下参数监控查询执行计划。
参数
注意
aurora_stat_plans.with_*
参数的配置仅对新捕获的计划生效。
aurora_compute_plan_id
设置为 off
以防止分配计划标识符。
默认 | 允许值 | 描述 |
---|---|---|
on | 0(关闭) | 设置为 off 以防止分配计划标识符。 |
1(开启) | 设置为 on 以分配计划标识符。 |
aurora_stat_plans.minutes_until_recapture
重新捕获计划之前要经过的分钟数。默认值为 0,表示将禁用重新捕获计划。如果超过了 aurora_stat_plans.calls_until_recapture
阈值,仍然可以重新捕获该计划。
默认 | 允许值 | 描述 |
---|---|---|
0 | 0-1073741823 | 设置重新捕获计划之前要经过的分钟数。 |
aurora_stat_plans.calls_until_recapture
重新捕获计划之前调用该计划的次数。默认值为 0,表示在多次调用后将禁用重新捕获计划。如果超过了 aurora_stat_plans.minutes_until_recapture
阈值,仍然可以重新捕获该计划。
默认 | 允许值 | 描述 |
---|---|---|
0 | 0-1073741823 | 设置重新捕获计划之前的调用次数。 |
aurora_stat_plans.with_costs
捕获 EXPLAIN 计划时包含估计成本。允许的值是 on
和 off
。默认为 on
。
默认 | 允许值 | 描述 |
---|---|---|
on | 0(关闭) | 不显示每个计划节点的估计成本和行。 |
1(开启) | 显示每个计划节点的估计成本和行。 |
aurora_stat_plans.with_analyze
使用 ANALYZE 控制 EXPLAIN 计划。此模式仅在第一次捕获计划时使用。允许的值是 on
和 off
。默认为 off
。
默认 | 允许值 | 描述 |
---|---|---|
off | 0(关闭) | 不包括计划的实际运行时间统计数据。 |
1(开启) | 包括计划的实际运行时间统计数据。 |
aurora_stat_plans.with_timing
使用 ANALYZE 时,将在解释中捕获计划时间。默认为 on
。
默认 | 允许值 | 描述 |
---|---|---|
on | 0(关闭) | 不包括实际启动时间和在每个计划节点上花费的时间。 |
1(开启) | 包括实际启动时间和在每个计划节点上花费的时间。 |
aurora_stat_plans.with_buffers
使用 ANALYZE 时,将在解释中捕获计划缓冲区的使用情况。默认为 off
。
默认 | 允许值 | 描述 |
---|---|---|
off | 0(关闭) | 不包括有关缓冲区使用情况的信息。 |
1(开启) | 包括有关缓冲区使用情况的信息。 |
aurora_stat_plans.with_wal
使用 ANALYZE 时,将在解释中捕获计划 wal 的使用情况。默认为 off
。
默认 | 允许值 | 描述 |
---|---|---|
off | 0(关闭) | 不包括有关 WAL 记录生成的信息。 |
1(开启) | 包括有关 WAL 记录生成的信息。 |
aurora_stat_plans.with_triggers
使用 ANALYZE
时,将在解释中捕获计划触发器执行统计信息。默认为 off
。
默认 | 允许值 | 描述 |
---|---|---|
off | 0(关闭) | 不包括触发器执行统计数据。 |
1(开启) | 包括触发器执行统计数据。 |