From: | David Gould <daveg(at)sonic(dot)net> |
---|---|
To: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Alina Alexeeva <alexeeva(at)adobe(dot)com>, Ullas Lakkur Raghavendra <lakkurra(at)adobe(dot)com> |
Subject: | Re: [patch] BUG #15005: ANALYZE can make pg_class.reltuples inaccurate. |
Date: | 2018-03-05 03:19:18 |
Message-ID: | 20180304191918.39e95382@engels |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sun, 4 Mar 2018 07:49:46 -0800
Jeff Janes <jeff(dot)janes(at)gmail(dot)com> wrote:
> I don't see how it could have caused the problem in the first place. In
> your demonstration case, you had to turn off autovac in order to get it to
> happen, and then when autovac is turned back on, it is all primed for an
> autovac to launch, go through, touch almost all of the pages, and fix it
> for you. How did your original table get into a state where this wouldn't
> happen?
One more way for this to happen, vacuum was including the dead tuples in the
estimate in addition to the live tuples. This is a separate bug that tends
to aggravate the one I'm trying to fix. See the thread re BUG #15005 at:
https://www.postgresql.org/message-id/16db4468-edfa-830a-f921-39a50498e77e%402ndquadrant.com
> It seems to me that VACUUM and ANALYZE somewhat disagree on what exactly
> reltuples means. VACUUM seems to be thinking that
>
> reltuples = live + dead
>
> while ANALYZE apparently believes that
>
> reltuples = live
There is a patch for this one from Tomas Vondra/Tom Lane that I hope it will
land in the next set of releases.
-dg
--
David Gould daveg(at)sonic(dot)net
If simplicity worked, the world would be overrun with insects.
From | Date | Subject | |
---|---|---|---|
Next Message | Etsuro Fujita | 2018-03-05 03:21:29 | Re: postgres_fdw: perform UPDATE/DELETE .. RETURNING on a join directly |
Previous Message | Masahiko Sawada | 2018-03-05 02:56:00 | Re: [HACKERS] GUC for cleanup indexes threshold. |