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

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

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

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

track_io_timing

收集数据库 I/O 等待计时。

Collects timing statistics for database I/O activity.

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

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

PostgreSQL 18 手册 官方文档 引入提交 309c64745e

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

off 9.2 – 20

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

手册说明

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

启用数据库I/O调用的计时。 默认情况下,此参数处于关闭状态,因为它将重复查询操作系统的当前时间,这可能会在某些平台上造成显著的开销。 您可以使用pg_test_timing工具来测量系统上计时的开销。 I/O计时信息显示在 pg_stat_database中,在EXPLAIN的输出中,当使用BUFFERS选项时,在VACUUM的输出中,当使用VERBOSE选项时,由autovacuum执行自动清理和自动分析时,当设置了log_autovacuum_min_duration时,以及由pg_stat_statements。 只有超级用户和具有适当SET权限的用户才能更改此设置。

机制详解

track_io_timing 测量 WAL 对象以外的数据库 I/O 等待时间,并填充 pg_stat_database、pg_stat_io、pg_stat_get_backend_io()、带 BUFFERS 的 EXPLAIN、维护输出与相关扩展。

该设置会反复读取操作系统时钟,开销依平台而异,可用 pg_test_timing 测量;记录的是等待经过时间,不是纯设备服务时间。

WAL I/O 由 track_wal_io_timing 单独控制。启用计时只增加可观测性,不会让 I/O 异步化,也不会改变规划成本。其 superuser 上下文允许获授权会话修改,无需重启服务器。

调优建议

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

  • OLTP在线事务处理

    pg_stat_io、带 BUFFERS 的 EXPLAIN 或事故分析需要数据库 I/O 等待时间时启用。用 pg_test_timing 与峰值语句速率测时钟开销;

  • OLAP分析与批处理

    长扫描与落盘会让关系和临时文件计时很有价值。只有这些计数真正用于诊断时才长期开启,并比较执行开销,区分经过等待与纯设备服务时间。

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

    只有平台时钟读取成本可接受且指标有人使用时才用 on。该布尔值没有“保守数值大小”;off 只移除计时,不会移除 I/O。

常见问题

  • 把等待经过时间当成不含排队和调度影响的纯设备服务时间。
  • 期待该开关让 I/O 异步化或改变规划器成本估计。
  • 误以为它包含 WAL 计时;WAL 由 track_wal_io_timing 控制。
  • 没有在实际平台测量时钟读取开销就启用。

演化历史

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

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 15 ← 14 仅描述更新

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

  3. PostgreSQL 9.2 ← 9.1 新增此参数

    PostgreSQL 9.2 起可用

逐版本快照

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

版本 默认值单位上下文类型最小值最大值枚举值
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 运行时统计数据 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 等待计时。 现存