Hello, I have a system where there are mostly COPYs,
which insert data into a table.  Ocasionally a COPY will fail (and thus,
dead rows appear), but as far as I can tell ROLLBACK is not reflected
anywhere in the pg_stats_user_tables.  And since there are no rows
n_tup_upd or n_tup_del, therefore autovacuum will not fire for that table.

I see two possible solutions:
1) let rollback increment both n_tup_ins and n_tup_del (or maybe
    n_tup_upd, at least)?  This would be a good safeguard, I guess.

2) ANALYZE is able to see wether table is accumulating dead rows.
It might be a good idea to make ANALYZE able hint autovacuum that
some tables need VACUUM (that they exceed limits set for autovacuum).

The 2nd point could be a TODO item, perhaps?  Something like:
When ANALYZE runs, make it note removable dead rows and non-removable
dead rows.  If removable dead rows exceed some threshold, hint autovacuum
at that table.


---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at


Reply via email to