Thanks for the quick response! I don't have any background with the randomized search. Does the repeated pattern with the same plan being executed multiple times in a time range and then the plan changes, never to change back, match the expectation with the randomization?
Thanks, Jerry On Thu, Jul 17, 2025 at 7:07 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > Jerry Brenner <jbren...@guidewire.com> writes: > > We are on Postgres 15.5 (Aurora) and capturing query plans via > > auto_explain. We are seeing a large number of query plans for 2 queries > > that have 12 tables. Every fast (or "fast enough") plan has a left deep > > tree and every slow plan has a bushy tree. Is there a way to determine > if > > a plan was generated by GECO? > > > We have from_collapse_limit, join_collapse_limit and geqo_threshold all > set > > to 12. > > If there are 12 tables used in the query, then setting the collapse > limits to 12 would allow the join search to be collapsed into a single > problem, and then it would *always* go to GEQO because we invoke GEQO > if the join problem involves >= geqo_threshold tables. You might want > to rethink having those settings equal to each other. > > > I've manually explained plans and haven't seen the problem, > > My guess is that GEQO usually finds one of the better plans, but > when its randomized search is particularly unlucky it fails to. > Try bumping geqo_threshold to more than 12, and note whether that > results in unacceptable planning time for these queries. If not, > leave it at the higher value. > > regards, tom lane > >