Pavel Stehule wrote: > I like a strategy based on risks. Probably there are situation, when the generic plan is great every > time - INSERTs, UPDATEs via PK, simple SELECTs via PK. generic plan can be well if almost all data has > similar probability. Elsewhere on bigger data, the probability of pretty slow plan is higher, and then > we should to prefer custom plan. > > so the strategy - if cost of generic plan is less than some MAGIC CONSTANT (can be specified by GUC), > then use generic plan. Elsewhere use a custom plan everytime. > > It allow to controll the plan reusing. When MAGIC CONSTANT = 0 .. use custom plan everytime, When > MAGIC CONSTANT = M, then use generic plan always.
I have a different idea:
What about a GUC "custom_plan_threshold" that controls after how many executions a generic plan will be considered, with a default value of 5.
A value of -1 could disable generic plans.
yes, I though about it too - it is simple, and almost deterministic