From: Michael Lewis <mlewis@entrata.com>
To: Philip Semanchuk <philip@americanefficient.com>
Cc: Justin Pryzby <pryzby@telsasoft.com>
Cc: postgres performance list <pgsql-performance@postgresql.org>
Subject: Re: Understanding bad estimate (related to FKs?)
Date: Mon, 26 Oct 2020 11:20:01 -0600
Message-ID: <CAHOFxGpcN+=Vo10=2roxOOm8UXu8zstdaggRq0vvu00wcC6YjQ@mail.gmail.com> (raw)
In-Reply-To: <DF40D416-6F79-4912-9306-F012D0BED09A@americanefficient.com>
References: <7AC7104E-E233-4CCA-B99E-12197D61A4DD@americanefficient.com>
<20201026170405.GT9241@telsasoft.com>
<DF40D416-6F79-4912-9306-F012D0BED09A@americanefficient.com>
On Mon, Oct 26, 2020 at 11:14 AM Philip Semanchuk <
philip@americanefficient.com> wrote:
> >> The item I'm focused on is node 23. The estimate is for 7 rows, actual
> is 896 (multiplied by 1062 loops). I'm confused about two things in this
> node.
> >>
> >> The first is Postgres' estimate. The condition for this index scan
> contains three expressions --
> >>
> >> (five_uniform = zulu_five.five_uniform) AND
> >> (whiskey_mike = juliet_india.whiskey_mike) AND
> >> (bravo = 'mike'::text)
>
Are the columns correlated? Have you tried to create extended statistics
and see if the estimate changes? I believe that extended stats will not
directly help with joins though, only group bys and perhaps choosing an
index scan vs table scan when comparing the correlated columns to static
values rather than joining up tables. Wouldn't be much effort to try it
though.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-performance@postgresql.org
Cc: mlewis@entrata.com, philip@americanefficient.com, pryzby@telsasoft.com
Subject: Re: Understanding bad estimate (related to FKs?)
In-Reply-To: <CAHOFxGpcN+=Vo10=2roxOOm8UXu8zstdaggRq0vvu00wcC6YjQ@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox