选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 配置参数 / 运行时统计数据

CONFIGURATION PARAMETER运行时统计数据 / 统计监控

log_planner_stats

把规划器性能统计写入服务器日志。

Writes planner performance statistics to the server log.

布尔 会话(超级用户) 引入 9.0(基线) 现存至 20 devel 0 次默认值变更

类型
布尔bool
上下文
会话(超级用户)超级用户可在会话内用 SET 修改
默认值
off
引入版本
9.0(基线)
状态
现存

PostgreSQL 18 手册 官方文档

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

off 9.0 – 20

默认值自 PostgreSQL 9.0 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.9 运行时统计数据 本站手册 官方原文

本版译文与 PostgreSQL 14 完全一致,下面就是同一段文字。

对于每个查询,将各自模块的性能统计输出到服务器日志中。这是一个简单的性能分析工具,类似于Unix getrusage()操作系统功能。 log_statement_stats报告总语句统计,而其他选项报告每个模块的统计信息。 log_statement_stats不能与任何单独模块选项一起启用。所有这些选项默认情况下都是禁用的。 只有超级用户和具有适当SET权限的用户才能更改这些设置。

机制详解

log_planner_stats 使用类似 getrusage 的粗粒度分析器,为每条查询输出规划阶段资源使用,结果进入服务器日志,适合短时间诊断。

log_statement_stats 报告整条语句,parser、planner 与 executor 开关分别报告各阶段;总开关不能与任何分阶段开关同时启用。

这是同步诊断日志,不是累计统计系统;其数量与格式都不适合作为常规生产遥测。其 superuser 上下文允许获授权会话修改,无需重启服务器。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    不要把 log_planner_stats 当作常规 OLTP 调优。只在隔离复现或受控会话中短暂启用,取得所需日志后立即关闭。

  • OLAP分析与批处理

    对特定分析语句,EXPLAIN (ANALYZE, BUFFERS) 与累计视图通常比全局 log_planner_stats 更可操作;若使用必须限定范围并预算日志量。

  • 小规格低配实例与开发机

    保持 log_planner_stats=off。小主机尤其容易受到诊断日志 I/O 与磁盘写满影响。

常见问题

  • 启用或扩大 log_planner_stats 前没有测量收集与观察开销。
  • 把统计收集语义误认为性能控制或 I/O 控制。
  • 认为长事务内看到的所有统计都会立即更新。
  • 收集敏感查询文本或标识,却没有匹配的访问与保留策略。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
9.0 off 会话(超级用户) 布尔
9.1 off 会话(超级用户) 布尔
9.2 off 会话(超级用户) 布尔
9.3 off 会话(超级用户) 布尔
9.4 off 会话(超级用户) 布尔
9.5 off 会话(超级用户) 布尔
9.6 off 会话(超级用户) 布尔
10 off 会话(超级用户) 布尔
11 off 会话(超级用户) 布尔
12 off 会话(超级用户) 布尔
13 off 会话(超级用户) 布尔
14 off 会话(超级用户) 布尔
15 off 会话(超级用户) 布尔
16 off 会话(超级用户) 布尔
17 off 会话(超级用户) 布尔
18 off 会话(超级用户) 布尔
19 off 会话(超级用户) 布尔
20 沿用 off 会话(超级用户) 布尔

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Statistics 运行时统计数据 5 个
统计监控 5
compute_query_id 枚举 会话(超级用户) auto
启用 PostgreSQL 内核计算查询标识符。 现存
log_executor_stats 布尔 会话(超级用户) off
把执行器性能统计写入服务器日志。 现存
log_parser_stats 布尔 会话(超级用户) off
把解析器性能统计写入服务器日志。 现存
log_planner_stats 布尔 会话(超级用户) off
把规划器性能统计写入服务器日志。 现存
log_statement_stats 布尔 会话(超级用户) off
把语句累计性能统计写入服务器日志。 现存