Re: [BUGS] Strange influence of default_statistics_target - Mailing list pgsql-bugs

From Вадим Акбашев
Subject Re: [BUGS] Strange influence of default_statistics_target
Date
Msg-id CALoKji93h-tt6u2c9co1pZ0OaiaU--cRL4keAO8M9pP_M-EHXQ@mail.gmail.com
Whole thread Raw
In response to Re: [BUGS] Strange influence of default_statistics_target  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [BUGS] Strange influence of default_statistics_target
List pgsql-bugs
Sorry, i've forgot to attach files themselves

2017-01-18 19:18 GMT+05:00 Tom Lane <tgl@sss.pgh.pa.us>:
\xC1\xBA\xFFВадим Акбашм\xAF\xF5в <ufaowl@gmail.com> writes:
> I have encountered a problem with querry plan building:
> I'd set  default_statistics_target=700, run analyze. Postgres optimize had
> chosen plan with hash_join and it took ~1 min for qerry to complete.
> Then i set default_statistics_target=500 and the plan was significantly
> changed and was using merge_join instead, complition time reduced in
> hundreds times, cost reduced drastically.
> Now i can't understand why more precise statistics leads to less optimized
> plan and what is the right way to use default_statistics_target parameter?
> I attach both good and bad querry plans and the querry itself

Are those really the same query?  Plan 2 is enforcing a "number_value IS
NOT NULL" condition on "attribute_value av1" that I don't see in plan 1.
And neither plan seems to have much to do with the query, since the
query has UNIONs that aren't in the plans.

But the short answer seems to be that in both cases, the only reason that
the plan doesn't take forever to run is that one sub-join chances to yield
precisely zero rows, and the PG executor happens to be more efficient
about that corner case in the one plan shape than the other.  The planner
doesn't take the possibility of that short-circuit happening into account,
since it generally cannot be sure that a sub-join wouldn't yield any rows.
So it's just luck that one plan is noticeably faster in this case.

                        regards, tom lane

Attachment

pgsql-bugs by date:

Previous
From: Michael Paquier
Date:
Subject: Re: [BUGS] pg_dump 9.6 doesn't honour pg_extension_config_dump for sequences
Next
From: Kyotaro HORIGUCHI
Date:
Subject: Re: [BUGS] Bug in Physical Replication Slots (at least 9.5)?