Re: document the need to analyze partitioned tables

Laurenz Albe <laurenz.albe@cybertec.at>

From: Laurenz Albe <laurenz.albe@cybertec.at>
To: Bruce Momjian <bruce@momjian.us>
Cc: David Rowley <dgrowleyml@gmail.com>, Justin Pryzby <pryzby@telsasoft.com>, Nathan Bossart <nathandbossart@gmail.com>, Tomas Vondra <tomas.vondra@enterprisedb.com>, Robert Haas <robertmhaas@gmail.com>, Álvaro Herrera <alvherre@alvh.no-ip.org>, yuzuko <yuzukohosoya@gmail.com>, pgsql-hackers@postgresql.org
Date: 2023-10-02T02:48:20Z
Lists: pgsql-hackers
On Fri, 2023-09-29 at 22:34 -0400, Bruce Momjian wrote:
> Very good point!   Updated patch attached.

Thanks!  Some small corrections:

> diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml
> index 9cf9d030a8..be1c522575 100644
> --- a/doc/src/sgml/maintenance.sgml
> +++ b/doc/src/sgml/maintenance.sgml
> @@ -861,10 +861,16 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
>     </para>
>  
>     <para>
> -    Partitioned tables are not processed by autovacuum.  Statistics
> -    should be collected by running a manual <command>ANALYZE</command> when it is
> -    first populated, and again whenever the distribution of data in its
> -    partitions changes significantly.
> +    Partitioned tables do not directly store tuples and consequently
> +    autovacuum does not <command>VACUUM</command> them.  (Autovacuum does

... does not <command>VACUUM</command> or <command>ANALYZE</command> them.

Perhaps it would be shorter to say "does not process them" like the
original wording.

> +    perform <command>VACUUM</command> on table partitions just like other

Just like *on* other tables, right?

> +    tables.)  Unfortunately, this also means that autovacuum doesn't
> +    run <command>ANALYZE</command> on partitioned tables, and this
> +    can cause suboptimal plans for queries that reference partitioned
> +    table statistics.  You can work around this problem by manually
> +    running <command>ANALYZE</command> on partitioned tables when they
> +    are first populated, and again whenever the distribution of data in
> +    their partitions changes significantly.
>     </para>
>  
>     <para>

Yours,
Laurenz Albe



Commits

  1. doc: Fix typo in ANALYZE documentation

  2. Document autoanalyze limitations for partitioned tables

  3. Revert analyze support for partitioned tables

  4. Describe (auto-)analyze behavior for partitioned tables