首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pg_stat_all_tables.last_autovacuum究竟是什么时候更新的?

pg_stat_all_tables.last_autovacuum究竟是什么时候更新的?
EN

Database Administration用户
提问于 2018-05-17 01:28:00
回答 2查看 4.7K关注 0票数 5

我正在研究我们的自动真空设置的问题,并试图从last_autoanalyzelast_autovacuum中了解pg_stat_all_tables

我理解自动吸尘器是以一种渐进的方式工作,对死元组进行批量压缩和清理,然后休息片刻等等。那么last_autovacuum是什么意思呢?是否有可能自动真空大部分工作,但时间戳可能永远不会更新(例如,因为元组不能被移除)?

我为我们的表看到的许多时间戳都是旧的,尽管我非常肯定我在其中一些表上观察到一个正在运行的自动真空线程。

编辑:如果我不清楚,我的问题是:last_autovacuum的意思是.

  • 增量式自动真空过程最后一次完成这张桌子上的一大块工作并睡觉的时间
  • 自动真空过程工作到表的最末端的时间
  • 以上内容,但前提是没有不能删除的元组。
  • 一些其他的东西
EN

回答 2

Database Administration用户

回答已采纳

发布于 2021-01-04 13:13:04

我也想知道这个,所以我研究了一下Postgres src代码,试图找出.

https://github.com/postgres/postgres/blob/ca3b37487be333a1d241dab1bbdd17a211a88f43/src/backend/catalog/system_views.sql#L584

代码语言:javascript
复制
pg_stat_get_last_autovacuum_time(C.oid) as last_autovacuum,

https://github.com/postgres/postgres/blob/ca3b37487be333a1d241dab1bbdd17a211a88f43/src/backend/utils/adt/pgstatfuncs.c#L267

代码语言:javascript
复制
result = tabentry->autovac_vacuum_timestamp;

https://github.com/postgres/postgres/blob/ca3b37487be333a1d241dab1bbdd17a211a88f43/src/include/pgstat.h#L740

代码语言:javascript
复制
TimestampTz autovac_vacuum_timestamp;   /* autovacuum initiated */

因此,如果我正确地遵循了代码,那么last_autovacuum时间戳似乎是进程开始的时候,而不是它完成的时候。

票数 3
EN

Database Administration用户

发布于 2018-05-29 08:55:55

last_autovacuum不过是自动真空守护进程最后一次对表进行清空处理。

pg_stat_all_tables视图将包含当前数据库中每个表的一行(包括土司表),显示有关访问该特定表的统计信息。

  • 只有在清除受尊敬的表的死元组时,last_autovacuum才会更新它的时间戳。

有关更多信息,请重新编写postgresql收集器页https://www.postgresql.org/docs/9.6/static/monitoring-stats.html

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/206978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档