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

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 起没有变过。带单位的取值换算成了可读形式,原始的 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

Note

确认只有一个查询标识符被计算和显示,如果一个查询标识符已经被计算,扩展计算标识符将抛出一个错误。

机制详解

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
把语句累计性能统计写入服务器日志。 现存