I have a question with regard to GEQO optimizer of Postgresql.
For complex queries with over 12 tables in a join, (12 is the
default value), the Postgresql optimizer by default will not use the dynamic programming style optimizer. Instead, it uses genetic algorithm to compute a sub-optimal query plan. The reason is that GEQO takes sub-seconds to find a query plan while the DP style optimizer will take minutes or even hours to optimize a complex query with large join degree.
I am wondering if anyone here ever had complex queries that the GEQO fails to work properly, i.e., finds a terrible query plan as compared to one found by DP optimizer (by forcing Postgresql always uses DP). This is important to me since I am trying to see what type of queries will be worth spending a lot of time doing a thorough DP optimization (if it is going to be executed again and again).
thanks a lot!