On Thu, 29 Nov 2018 at 20:40, Kato, Sho <kato-...@jp.fujitsu.com> wrote:
> Sorry for my lack of explanation. I didn't get a generic plan with 
> plan_cache_mode = auto.
> What I am worried about is that if users don't know the flow of PREPARE 
> EXECUTE, query execution seems to be suddenly slow and they will be in 
> trouble.
> Just as you said, generic plan is only made, and a custom plan is chosen.
> But, as the time to make a general plan is added, it becomes slow as a whole.

Like Amit, I also had in mind that you'd never get a generic plan due
to the cost appearing much higher, but of course, the planner must
actually attempt to build a generic plan before it realises that the
cost of it is unfavourable, which would only occur on the 6th
execution, any subsequent executions would realise the generic plan is
no good.  I don't quite see any way around that other than ensuring
you have plan_cache_mode as force_custom_plan, but then you're still
going against the manual's recommendations about not having thousands
of partitions.  The problem is only made worse in PG11 from PG10
because generating the custom plan has become faster than it
previously was due to the new partition pruning code which might make
it appear we can handle more partitions than we could previously, but
generating a generic plan for that many partitions being slow kinda
proves that's not the case.  The fact that we still have the warning
in the manual about not having thousands of partitions makes me not so
worried about this.

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

Reply via email to