Re: PostgreSQL seems to create inefficient plans in simple conditional joins - Mailing list pgsql-performance

From David Rowley
Subject Re: PostgreSQL seems to create inefficient plans in simple conditional joins
Date
Msg-id CAKJS1f9V2Bw2Z6_hYDe+fnCJUn00RV5YjCTM32eT5aGrQQPv-w@mail.gmail.com
Whole thread Raw
In response to Re: PostgreSQL seems to create inefficient plans in simple conditional joins  (Vitalii Tymchyshyn <vit@tym.im>)
Responses Re: PostgreSQL seems to create inefficient plans in simple conditional joins
List pgsql-performance
On 31 January 2016 at 06:14, Vitalii Tymchyshyn <vit@tym.im> wrote:
> It may be more for -hackers, but I often hear "this wont be used because of
> planning time increase". Now as I know we have statistics on real query time
> after few runs that is used to decide if plan should be switched.
> Can this statistics be used to apply advanced planning features for
> relatively long running queries? E.g. a parameter like
> sophisticated_planning_l1_threshold=500ms. If query runs over this
> threshold, replan it with more sophisticated features taking few more
> millis. Possibly different levels can be introduced. Also allow to set
> threshold to 0, saying "apply to all queries right away".
> Another good option is to threshold against cumulative query time. E.g. if
> there was 10000 runs 0.5 millis each, it may be beneficial to spend few
> millis to get 0.2 millis each.

I agree with you. I recently was working with long running queries on
a large 3TB database. I discovered a new optimisation was possible,
and wrote a patch to implement. On testing the extra work which the
optimiser performed took 7 micoseconds, and this saved 6 hours of
execution time. Now, I've never been much of an investor in my life,
but a 3 billion times return on an investment seems quite favourable.
Of course, that's quite an extreme case, but it's hard to ignore the
benefit is still significant in less extreme cases.

The idea you've mentioned here is very similar to what I bought up at
the developer meeting a few days ago, see AOB section in [1]

Unfortunately I didn't really get many of the correct people on my
side with it, and some wanted examples of specific patches, which is
completely not what I wanted to talk about. I was more aiming for some
agreement for generic infrastructure to do exactly as you describe.

[1]  https://wiki.postgresql.org/wiki/FOSDEM/PGDay_2016_Developer_Meeting


--
 David Rowley                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


pgsql-performance by date:

Previous
From: Vitalii Tymchyshyn
Date:
Subject: Re: PostgreSQL seems to create inefficient plans in simple conditional joins
Next
From: Vitalii Tymchyshyn
Date:
Subject: Re: PostgreSQL seems to create inefficient plans in simple conditional joins