Re: Caching query plan costs
От | Andres Freund |
---|---|
Тема | Re: Caching query plan costs |
Дата | |
Msg-id | 998D0721-3679-4ADE-BDAE-44BF87B82724@anarazel.de обсуждение исходный текст |
Ответ на | Re: Caching query plan costs (Bruce Momjian <bruce@momjian.us>) |
Ответы |
Re: Caching query plan costs
|
Список | pgsql-hackers |
On September 3, 2018 11:33:35 AM PDT, Bruce Momjian <bruce@momjian.us> wrote: >On Mon, Sep 3, 2018 at 01:30:33PM -0400, Tom Lane wrote: >> Bruce Momjian <bruce@momjian.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.
В списке pgsql-hackers по дате отправления: