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

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

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

CONFIGURATION PARAMETER运行时统计数据 / 累积查询和索引统计

track_counts

收集数据库活动累计统计。

Collects statistics on database activity.

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

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

PostgreSQL 18 手册 官方文档

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

on 9.0 – 20

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

手册说明

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

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

启用对数据库活动的统计信息收集。 此参数默认为开启,因为自动清理守护进程需要收集的信息。 只有超级用户和具有适当SET权限的用户才能更改此设置。

机制详解

track_counts 为 PostgreSQL 的数据库、表与索引累计活动计数提供数据;autovacuum 依赖这些计数决定何时 vacuum 与 analyze。

关闭会移除规划与维护遥测,并可能阻止正常 autovacuum 触发;它本身不会重置已经保存的计数。

统计通过 pg_stat 视图暴露,并遵守 stats_fetch_consistency 的快照规则。收集是服务器级的,但可见性仍受权限控制。其 superuser 上下文允许获授权会话修改,无需重启服务器。

调优建议

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

  • OLTP在线事务处理

    保持 track_counts=on;正常 autovacuum 与容量监控依赖它。只有不代表生产配置的受控实验才可关闭。

  • OLAP分析与批处理

    即使以批查询为主,也应保持 track_counts=on 以支持维护决策;失去 autovacuum 输入换来的微小节省不值得。

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

    保持 track_counts=on;小系统同样需要 autovacuum 与表活动可见性,关闭后节省的少量开销通常不值得。

常见问题

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

演化历史

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

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 15 ← 14 仅描述更新

    分类 Statistics / Query and Index Statistics Collector Statistics / Cumulative Query and Index Statistics

逐版本快照

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

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

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Statistics 运行时统计数据 8 个
累积查询和索引统计 8
stats_fetch_consistency 枚举 会话 cache
设置读取累计统计信息时的一致性方式。 现存
track_activities 布尔 会话(超级用户) on
收集会话当前执行命令的信息。 现存
track_activity_query_size 整数 重启生效 1 KiB 132 次
设置 pg_stat_activity.query 预留的字节数。 现存
track_cost_delay_timing 布尔 会话(超级用户) off
收集基于成本的 vacuum 延迟计时。 现存
track_counts 布尔 会话(超级用户) on
收集数据库活动累计统计。 现存
track_functions 枚举 会话(超级用户) none
收集函数调用次数与耗时统计。 现存
track_io_timing 布尔 会话(超级用户) off
收集数据库 I/O 等待计时。 现存
track_wal_io_timing 布尔 会话(超级用户) off
收集 WAL I/O 等待计时。 现存