Re: vacuumdb changes for stats import/export

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Frédéric Yhuel <frederic(dot)yhuel(at)dalibo(dot)com>, Nathan Bossart <nathandbossart(at)gmail(dot)com>, Corey Huinker <corey(dot)huinker(at)gmail(dot)com>, John Naylor <johncnaylorls(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Jeff Davis <pgsql(at)j-davis(dot)com>, jian he <jian(dot)universality(at)gmail(dot)com>, Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Magnus Hagander <magnus(at)hagander(dot)net>, Stephen Frost <sfrost(at)snowman(dot)net>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, alvherre(at)alvh(dot)no-ip(dot)org
Subject: Re: vacuumdb changes for stats import/export
Date: 2025-07-26 14:47:47
Message-ID: CAKFQuwa2-oW__J7gAcVKgZnx658qBx9GknwL-wqX_0VvDc1EBQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Jul 26, 2025, 07:23 Bruce Momjian <bruce(at)momjian(dot)us> wrote:

> On Wed, Jul 23, 2025 at 02:45:10PM +0200, Frédéric Yhuel wrote:
> >
> >
> > On 3/18/25 22:37, Nathan Bossart wrote:
> > > Committed with the following small changes:
> >
> > Hi, I don't really understand this sentence in
> > doc/src/sgml/ref/vacuumdb.sgml:
> >
> > > This option prevents vacuumdb from deleting existing statistics so that
> > the query optimizer's choices do not become transiently worse.
> >
> > I thought that the point was to avoid unnecessary post-upgrade analyzes?
>
> So, the full paragraph is:
>
> + Only analyze relations that are missing statistics for a column,
> index
> + expression, or extended statistics object. This option prevents
> + <application>vacuumdb</application> from deleting existing
> statistics
> + so that the query optimizer's choices do not become transiently
> worse.
>
> What it is trying to say is that if you run vacuumedb without this
> option, not only will it analyze all tables, including ones that already
> have statistics, but will drop statistics on this tables that already
> have statistics for a brief period while it installs new statistics.
> During that period, the optimizer will not have any statistics for the
> table. Is there a clearer way to state this?
>

Statistics are transactional. Without this option specified are we really
removing them and commiting prior to computing and saving new ones? And we
are opposed to just changing this behavior and instead prefer to add an
option that at first glance seems like everyone should use?

"If not specified the system will analyze all statistics-capable objects in
alphabetical order. Specifying this option then limits the result to only
those objects that do not already have statistics.". That may not be how
the feature strictly behaves but that would seem to be all one would expect
it to do.

David J.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2025-07-26 16:06:52 Re: vacuumdb changes for stats import/export
Previous Message Bruce Momjian 2025-07-26 14:22:49 Re: vacuumdb changes for stats import/export