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

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–20 之间未变。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

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

启用数据库 I/O 等待的计时。此参数默认关闭,因为计时需要反复向操作系统查询当前时间,在某些平台上可能会产生显著开销。可以使用pg_test_timing工具测量本系统上的计时开销。I/O 计时信息会显示在 pg_stat_database 中、pg_stat_io 中(当 object 不是 wal 时)、pg_stat_get_backend_io() 函数的输出中(当 object 不是 wal 时)、使用 BUFFERS 选项的EXPLAIN输出中、使用 VERBOSE 选项的VACUUM输出中,自动清理进程也会在执行自动清理和自动分析时输出这些信息(需设置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 等待计时。 现存