【发布时间】:2018-07-03 14:01:24
【问题描述】:
在 PostgreSQL 9.3.19 日志中,我看到以下两个连续条目用于给定表的 autovacuum:
2018-06-29 17:24:06 CDT 13177 14/870454 0 LOG: automatic vacuum of table "openbravo.public.ad_session_status": index scans: 0
pages: 0 removed, 235 remain
tuples: 0 removed, 14669 remain
buffer usage: 1090 hits, 673 misses, 4 dirtied
avg read rate: 6.745 MB/s, avg write rate: 0.040 MB/s
--
2018-06-29 17:24:55 CDT 13529 40/699086 0 LOG: automatic vacuum of table "openbravo.public.ad_session_status": index scans: 0
pages: 0 removed, 235 remain
tuples: 0 removed, 13039 remain
buffer usage: 1143 hits, 663 misses, 0 dirtied
avg read rate: 3.086 MB/s, avg write rate: 0.000 MB/s
All autovacuums are logged:log_autovacuum_min_duration=0.
中间没有其他手动吸尘器。
如果这两个真空都没有删除任何死元组,那么剩余的元组数量怎么会在第二个之后减少呢? PostgreSQL 有其他方法来删除死行吗?
【问题讨论】:
-
您确定这些是连续运行吗?参数
log_autovacuum_min_duration的值是多少? -
@LaurenzAlbe
log_autovacuum_min_duration的值是 0(我在问题中更新了它)。在日志中,这两个条目之间没有该表的其他自动清理,因此我假设它们是连续运行。
标签: postgresql postgresql-9.3 vacuum