From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org,Bruce Momjian <bruce(at)momjian(dot)us>,Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Caching query plan costs |
Date: | 2018-09-03 18:42:31 |
Message-ID: | 998D0721-3679-4ADE-BDAE-44BF87B82724@anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On September 3, 2018 11:33:35 AM PDT, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
>On Mon, Sep 3, 2018 at 01:30:33PM -0400, Tom Lane wrote:
>> Bruce Momjian <bruce(at)momjian(dot)us> writes:
>> > What if we globally or locally cache the _cost_ of plans, so we can
>> > consult that cache before planning and enable certain
>optimizations?
>>
>> But what would you use as cache key? And how's this help if we
>haven't
>
>Uh, I assume we would do what pg_stat_statements does and remove the
>constants an hash that.
That's not particularly cheap... Constants heavily influence planning choices, so I don't think they actually could be removed.
>> seen a similar query before in the session?
>
>Well, if it was global we could use output from another session.
>
>I guess my point is that this only used to turn on micro-optimizations
>and maybe parallelism
What kind of micro opts are you thinking of? The cases I remember are more in the vein of doing additional complex optimizations (join removal, transforming ORs into UNION, more complex analysis of predicates...).
Parallelism would definitely benefit from earlier knowledge, although I suspect some base rel analysis might be more realistic, because it's far from guaranteed that queries are ever repeated in a similar enough manner.
> and JIT, so it doesn't have to be 100% accurate.
JIT decision is done after main planning, so we know the cost.
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Gierth | 2018-09-03 18:51:21 | Re: Out arguments name of "pg_identify_object_as_address" function in 9.5.14 and 11beta3 |
Previous Message | Tom Lane | 2018-09-03 18:36:31 | Re: Out arguments name of "pg_identify_object_as_address" function in 9.5.14 and 11beta3 |