↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

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

百科 / 配置参数 / 运行时统计数据

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

compute_query_id

启用 PostgreSQL 内核计算查询标识符。

Enables in-core computation of query identifiers.

枚举 会话(超级用户) 引入 14 现存至 20 devel 0 次默认值变更

类型
枚举enum
上下文
会话(超级用户)超级用户可在会话内用 SET 修改
默认值
auto
枚举值
auto, regress, on, off
引入版本
14
状态
现存

PostgreSQL 18 手册 官方文档 引入提交 5fd9dfa5f5

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

auto 14 – 20

已记录的默认值在 PostgreSQL 14–20 之间未变。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

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

启用内置的查询标识符计算功能。查询标识符可以显示在pg_stat_activity视图或EXPLAIN的输出中,也可以通过log_line_prefix参数配置后写入日志。pg_stat_statements扩展也要求计算查询标识符。注意,如果内置的查询标识符计算方法不符合要求,可以改用外部模块。在这种情况下,必须始终禁用内置计算功能。有效值为off(始终禁用)、on(始终启用)、auto(允许pg_stat_statements等模块自动启用此功能),以及regress。后者与auto效果相同,但不会在EXPLAIN输出中显示查询标识符,以便进行自动回归测试。默认值为auto。

注意

为确保只有一个查询标识符被计算和显示,计算查询标识符的扩展在查询标识符已被计算时应当抛出一个错误。

机制详解

compute_query_id 控制 PostgreSQL 内核生成的规范化查询标识符。该标识可出现在 pg_stat_activity、EXPLAIN 与日志中;除非其他模块负责计算,pg_stat_statements 也需要它。

auto 允许模块请求内核计算,on 始终计算,off 禁止计算,regress 与 auto 相同但为稳定回归输出而不在 EXPLAIN 显示 ID。

只能有一个 provider 计算标识。采用其他算法的扩展必须关闭内核实现并检测冲突,不能静默发布两个不兼容 ID。其 superuser 上下文允许获授权会话修改,无需重启服务器。

调优建议

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

  • OLTP在线事务处理

    pg_stat_statements 等模块应按需请求内核 ID 时使用 auto;没有此类模块但日志、EXPLAIN 或监控仍需要 ID 时才用 on。应在峰值解析/规划速率下测查询规范化开销。

  • OLAP分析与批处理

    auto 或 on 可把长分析语句在 pg_stat_activity、EXPLAIN 与日志间关联。主要成本是查询树规范化与哈希,不是时钟读取;超大语句负载应比较规划 CPU。

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

    除非外部 query-ID provider 要求 off,否则保留 auto。regress 用于稳定回归输出,不是更小的生产取值;off 会移除 pg_stat_statements 等工具需要的 ID。

常见问题

  • 内核 provider 与扩展同时尝试计算不同查询标识。
  • 设置 off 后静默丢失 pg_stat_statements、日志或关联工具需要的 ID。
  • 把 regress 当作生产优化,而不是测试输出模式。
  • 把 query ID 当成跨大版本稳定或具备密码学性质的标识。

演化历史

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

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 15 ← 14 仅描述更新

    简述 Compute query identifiers. Enables in-core computation of query identifiers.

  3. PostgreSQL 14 ← 13 新增此参数

    PostgreSQL 14 起可用

逐版本快照

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

版本 默认值单位上下文类型最小值最大值枚举值
14 auto — 会话(超级用户) 枚举 — — auto, regress, on, off
15 auto — 会话(超级用户) 枚举 — — auto, regress, on, off
16 auto — 会话(超级用户) 枚举 — — auto, regress, on, off
17 auto — 会话(超级用户) 枚举 — — auto, regress, on, off
18 auto — 会话(超级用户) 枚举 — — auto, regress, on, off
19 auto — 会话(超级用户) 枚举 — — auto, regress, on, off
20 沿用 auto — 会话(超级用户) 枚举 — — auto, regress, on, 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 —
把语句累计性能统计写入服务器日志。 现存