On Nov 14, 2007, at 4:46 PM, Tom Lane wrote:
> 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.
Wouldn't this result in a variable number of dead rows being reported
on separate runs including zero while no pending inserts are
happening? This may be a good way to verify that this is what is
happening if he can quiet down his app long enough to run an ANALYZE
in isolation. Perhaps, if the ANALYZE runs fast enough he can just
lock the table for the run.
Erik Jones
Software Developer | Emma®
erik@myemma.com
800.595.4401 or 615.292.5888
615.292.0777 (fax)
Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com