postgres 9.6 新进度报告工具

postgres 9.6 new progress reporting facility

阅读 release notes 最近的 Postgres 9.6,我发现了这个有趣的新特性

Add a generic command progress reporting facility (Vinayak Pokale, Rahila Syed, Amit Langote, Robert Haas)

进一步阅读没有给我任何关于此的信息,但是 some play around depesz 上的文章。

当然,我首先想到的是 - 某处是否也有任何已处理内容的历史记录(以及要处理的对象列表 - 我梦见了)?还是这个 pg_stat_get_progress_info 只显示当前而不知道 VACUUM 计划和过去?..

另一个问题 - 是否有接口可以为自己的进程(报告、数据加载等)使用该设施。

视图被调用pg_stat_progress_vacuum; depesz 一定在他的文章中使用了旧版本的补丁。

目前,进度报告仅适用于 VACUUM(和 autovacuum)操作。

此功能不提供历史数据,但还有其他获取这些数据的方法:

  • 如果你设置log_autovacuum_min_duration为0,所有的autovacuum操作都会在服务器日志中报告(通常,你不必运行 VACUUM手动)。

  • pg_stat_all_tables 系统视图包含列 last_vacuumlast_autovacuum,它们指示相应操作在 table 上最后一次 运行 的时间.