CONFIGURATION PARAMETER运行时统计数据 / 统计监控
log_statement_stats
把语句累计性能统计写入服务器日志。
Writes cumulative performance statistics to the server log.
布尔 会话(超级用户) 引入 9.0(基线) 现存至 20 devel 0 次默认值变更
- 类型
- 布尔bool
- 上下文
- 会话(超级用户)超级用户可在会话内用 SET 修改
- 默认值
off- 引入版本
- 9.0(基线)
- 状态
- 现存
版本轨迹
相对 PostgreSQL 17 无变化。
默认值变迁
默认值自 PostgreSQL 9.0 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。
手册说明
本版译文与 PostgreSQL 14 完全一致,下面就是同一段文字。
对于每个查询,将各自模块的性能统计输出到服务器日志中。这是一个简单的性能分析工具,类似于Unix getrusage()操作系统功能。 log_statement_stats报告总语句统计,而其他选项报告每个模块的统计信息。 log_statement_stats不能与任何单独模块选项一起启用。所有这些选项默认情况下都是禁用的。 只有超级用户和具有适当SET权限的用户才能更改这些设置。
机制详解
log_statement_stats 使用类似 getrusage 的粗粒度分析器,为每条查询输出整条语句的资源使用,结果进入服务器日志,适合短时间诊断。
log_statement_stats 报告整条语句,parser、planner 与 executor 开关分别报告各阶段;总开关不能与任何分阶段开关同时启用。
这是同步诊断日志,不是累计统计系统;其数量与格式都不适合作为常规生产遥测。其 superuser 上下文允许获授权会话修改,无需重启服务器。
调优建议
按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。
-
OLTP在线事务处理
不要把 log_statement_stats 当作常规 OLTP 调优。只在隔离复现或受控会话中短暂启用,取得所需日志后立即关闭。
-
OLAP分析与批处理
对特定分析语句,EXPLAIN (ANALYZE, BUFFERS) 与累计视图通常比全局 log_statement_stats 更可操作;若使用必须限定范围并预算日志量。
-
小规格低配实例与开发机
保持 log_statement_stats=off。小主机尤其容易受到诊断日志 I/O 与磁盘写满影响。
常见问题
- 启用或扩大 log_statement_stats 前没有测量收集与观察开销。
- 把统计收集语义误认为性能控制或 I/O 控制。
- 认为长事务内看到的所有统计都会立即更新。
- 收集敏感查询文本或标识,却没有匹配的访问与保留策略。
演化历史
相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。
-
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 |
— |
会话(超级用户) |
布尔 |
— |
— |
— |
参考资料
同类参数
| 参数 | 类型 | 上下文 | 默认值 | 版本变动 | 最近变更 |
|---|---|---|---|---|---|
| 统计监控 5 | |||||
compute_query_id |
枚举 | 会话(超级用户) | auto |
— | |
| 启用 PostgreSQL 内核计算查询标识符。 | 现存 | ||||
log_executor_stats |
布尔 | 会话(超级用户) | off |
— | |
| 把执行器性能统计写入服务器日志。 | 现存 | ||||
log_parser_stats |
布尔 | 会话(超级用户) | off |
— | |
| 把解析器性能统计写入服务器日志。 | 现存 | ||||
log_planner_stats |
布尔 | 会话(超级用户) | off |
— | |
| 把规划器性能统计写入服务器日志。 | 现存 | ||||
log_statement_stats |
布尔 | 会话(超级用户) | off |
— | |
| 把语句累计性能统计写入服务器日志。 | 现存 | ||||