Forum OpenACS Q&A: Re: Tuning a query with CR joins

Collapse
Posted by Jeff Davis on
the reason the geqo_threshold is there is to act as a cutoff for using exhaustive search for query optimization, above the threshold it uses the genetic query optimizer which should be faster for generating a query plan. If you do a lot of very complicated queries that are fast, having geqo set higher could reduce your overall throughput since the extra time planning might cost more than the time saved from using the exhaustive search.

I don't really know how good the genetic query optimizer is though and I think most complicated queries tend to be slow queries so I am inclined to increase it on openacs sites. I have been running with it set to 30 on my local box to see if anything bad happens but to date it has worked fine.

Also, I would prefer deterministic results to geqo "may it works maybe it doesn't" plans, and if query planning time is too long for a fast complicated query then resort to explicit joins to control the planning time.