Re: Cached/global query plans, autopreparation - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Cached/global query plans, autopreparation
Date
Msg-id 20180302203843.5y6tduumbwdiyeen@alap3.anarazel.de
Whole thread Raw
In response to Re: Cached/global query plans, autopreparation  (Bruce Momjian <bruce@momjian.us>)
Responses Re: Cached/global query plans, autopreparation  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On 2018-03-02 15:29:09 -0500, Bruce Momjian wrote:
> Postgres uses a conservative method for reusing plans with previous
> constants, as described in the PREPARE manual page:
> 
>     https://www.postgresql.org/docs/10/static/sql-prepare.html
>     Prepared statements can use generic plans rather than re-planning with
>     each set of supplied EXECUTE values. This occurs immediately for prepared
>     statements with no parameters; otherwise it occurs only after five or more
>     executions produce plans whose estimated cost average (including planning
>     overhead) is more expensive than the generic plan cost estimate. Once
>     a generic plan is chosen, it is used for the remaining lifetime of the
>     prepared statement. Using EXECUTE values which are rare in columns with
>     many duplicates can generate custom plans that are so much cheaper than
>     the generic plan, even after adding planning overhead, that the generic
>     plan might never be used.
> 
> While I have heard people complain about how other databases cache
> prepare plans, I have heard few complaints about the Postgres approach,
> and I haven't even heard of people asking to control the documented "five
> or more" behavior.

This *constantly* is a problem.


Greetings,

Andres Freund


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Cached/global query plans, autopreparation
Next
From: David Steele
Date:
Subject: Re: [HACKERS] Creating backup history files for backups taken fromstandbys