Russell Smith <mr-russ@pws.com.au> writes:
> It is possible that analyze is not getting the number of dead rows right?
Hah, I think you are on to something. ANALYZE is telling the truth
about how many "dead" rows it saw, but its notion of "dead" is "not good
according to SnapshotNow". Thus, rows inserted by a not-yet-committed
transaction would be counted as dead. So if these are background
auto-analyzes being done in parallel with inserting transactions that
run for awhile, seeing a few not-yet-committed rows would be
unsurprising.
I wonder if that is worth fixing? I'm not especially concerned about
the cosmetic aspect of it, but if we mistakenly launch an autovacuum
on the strength of an inflated estimate of dead rows, that could be
costly.
regards, tom lane