Re: Caching query plan costs

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.

In response to

Responses

Browse pgsql-hackers by date

  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