Re: Row estimates for empty tables

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Christophe Pettus <xof(at)thebuild(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, David Rowley <dgrowleyml(at)gmail(dot)com>, postgre <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Row estimates for empty tables
Date: 2020-07-24 19:14:04
Message-ID: CAFj8pRBfm4-J-fULxn3H8=4n39P9D8csgRh3PDptUYa9YKZZDA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

pá 24. 7. 2020 v 16:38 odesílatel Christophe Pettus <xof(at)thebuild(dot)com>
napsal:

>
>
> > On Jul 24, 2020, at 06:48, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> >
> > There's certainly not a lot besides tradition to justify the exact
> > numbers used in this case.
>
> Since we already special-case parent tables for partition sets, would a
> storage parameter that lets you either tell the planner "no, really, zero
> is reasonable here" or sets a minimum number of rows to plan for be
> reasonable? I happened to get bit by this tracking down an issue where
> several tables in a large query had zero rows, and the planner's assumption
> of a few pages worth caused some sub-optimal plans. The performance hit
> wasn't huge, but they were being joined to some *very* large tables, and
> the differences added up.
>

I did this patch ten years ago. GoodData application
https://www.gooddata.com/ uses Postgres lot, and this application stores
some results in tables (as guard against repeated calculations). Lot of
these tables have zero or one row.

Although we ran an ANALYZE over all tables - the queries on empty tables
had very bad plans, and I had to fix it by this patch. Another company uses
a fake one row in table - so there is no possibility to have a really empty
table.

It is an issue for special, not typical applications (this situation is
typical for some OLAP patterns) - it is not too often - but some clean
solution (instead hacking postgres) can be nice.

Regards

Pavel

> --
> -- Christophe Pettus
> xof(at)thebuild(dot)com
>
>
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ted Toth 2020-07-24 19:34:48 when is RLS policy applied
Previous Message Michel Pelletier 2020-07-24 16:42:04 Re: CASCADE/fkey order

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2020-07-24 19:16:48 Re: Default setting for enable_hashagg_disk
Previous Message Soumyadeep Chakraborty 2020-07-24 19:11:47 Re: [Patch] ALTER SYSTEM READ ONLY