Dylan Hansen <dhansen@pixpo.com> writes:
> I have been spending some time looking into how auto-vacuum is
> performing on one of our servers. After putting the PostgreSQL logs
> in debug I noticed that the threshold for ANALYZE was never being hit
> for a particular table because the calculated value becomes
> increasingly negative.
Hmm, it shouldn't ever be negative at all, I would think. The
calculation in question is
anltuples = tabentry->n_live_tuples + tabentry->n_dead_tuples -
tabentry->last_anl_tuples;
Apparently somehow last_anl_tuples has managed to get to be bigger than
n_live_tuples, which maybe could happen after a delete. Should we be
clamping last_anl_tuples to not exceed n_live_tuples somewhere?
Alvaro and Matthew, what do you think?
regards, tom lane