track_io_timing

一个控制数据库 I/O 调用时序跟踪的 GUC

track_io_timing 是一个控制数据库 I/O 调用时序是否被跟踪的配置参数

track_io_timingPostgreSQL 9.2 中被添加。

默认

track_io_timing 的默认值为:off

用法

如果启用,I/O 时序信息将在以下上下文中显示:

track_io_timing 默认禁用,因为它会反复查询操作系统以获取当前时间。这可能在某些平台上造成显著的开销;contrib 模块 pg_test_timing 可以帮助确定这是否是这种情况。

EXPLAIN (BUFFERS, ANALYZE)

如果使用 EXPLAIN 执行命令,并带上 BUFFERS, ANALYZE 选项组合,则任何发生的 I/O 都将附带 "I/O Timings" 的注释。

pg_stat_database

以下列将被 I/O 总时间更新:

  • blk_read_time
  • blk_write_time

pg_stat_statements

以下列将被 I/O 总时间更新:

  • blk_read_time
  • blk_write_time

按 PostgreSQL 版本详细信息

track_io_timing (PostgreSQL 19)

设置 off
单位  
类别 统计信息 / 累积查询和索引统计信息
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 18)

设置 off
单位  
类别 统计信息 / 累积查询和索引统计信息
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 17)

设置 off
单位  
类别 统计信息 / 累积查询和索引统计信息
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 16)

设置 off
单位  
类别 统计信息 / 累积查询和索引统计信息
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 15)

设置 off
单位  
类别 统计信息 / 累积查询和索引统计信息
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 14)

设置 off
单位  
类别 统计 / 查询和索引统计信息收集器
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 13)

设置 off
单位  
类别 统计 / 查询和索引统计信息收集器
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 12)

设置 off
单位  
类别 统计 / 查询和索引统计信息收集器
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 11)

设置 off
单位  
类别 统计 / 查询和索引统计信息收集器
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 10)

设置 off
单位  
类别 统计 / 查询和索引统计信息收集器
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 9.6)

设置 off
单位  
类别 统计 / 查询和索引统计信息收集器
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 9.5)

设置 off
单位  
类别 统计 / 查询和索引统计信息收集器
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  
需要重启 false

文档: track_io_timing

track_io_timing (PostgreSQL 9.4)

设置 off
单位  
类别 统计 / 查询和索引统计信息收集器
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  

文档: track_io_timing

track_io_timing (PostgreSQL 9.3)

设置 off
单位  
类别 统计 / 查询和索引统计信息收集器
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  

文档: track_io_timing

track_io_timing (PostgreSQL 9.2)

设置 off
单位  
类别 统计 / 查询和索引统计信息收集器
简短描述 收集数据库 I/O 活动的时序统计。
扩展描述  
上下文 superuser
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 off
重置值 off
源文件  
源行  

文档: track_io_timing

变更历史

示例

track_io_timingEXPLAIN 一起使用

postgres=# SET track_io_timing = ON;
SET

postgres=# EXPLAIN (BUFFERS, ANALYZE) SELECT COUNT(*) FROM object;
QUERY PLAN
--------------------------------------------------------------------------------------------------------------
Aggregate (cost=87.40..87.41 rows=1 width=8) (actual time=48.855..48.874 rows=1 loops=1)
Buffers: shared read=30
I/O Timings: read=1.411
-> Seq Scan on object (cost=0.00..75.92 rows=4592 width=0) (actual time=0.338..25.602 rows=4477 loops=1)
Buffers: shared read=30
I/O Timings: read=1.411
Planning Time: 5.024 ms
Execution Time: 49.186 ms
(8 rows)

请注意,在执行上述查询后,数据将被缓存,再次执行将不涉及 I/O,并且 EXPLAIN 输出中不会包含 "I/O Timings" 值。

postgres=# EXPLAIN (BUFFERS, ANALYZE) SELECT COUNT(*) FROM object;
QUERY PLAN
--------------------------------------------------------------------------------------------------------------
Aggregate (cost=87.40..87.41 rows=1 width=8) (actual time=53.178..53.196 rows=1 loops=1)
Buffers: shared hit=30
-> Seq Scan on object (cost=0.00..75.92 rows=4592 width=0) (actual time=0.043..26.705 rows=4477 loops=1)
Buffers: shared hit=30
Planning Time: 0.174 ms
Execution Time: 53.295 ms
(6 rows)

尝试以非超级用户的身份设置 track_io_timing

postgres=*> SET track_io_timing TO on;
ERROR:  permission denied to set parameter "track_io_timing"

分类

GUC配置项

另请参阅

pg_test_timing, pg_stat_statements, pg_stat_database, track_wal_io_timing, statistics_collector

反馈

提交关于 "track_io_timing" 的任何评论、建议或更正请在此处 进行