Thread: explain analyze results are different for each iteration
I'm trying to benchmark some complex sql queries. One query, in particular, is causing problems -- its cost values can vary from 228 to 907, its Total Runtimes from 60 ms to 5176 ms. The query plans show that the optimizer is choosing different plans for different iterations of the same query. Does anyone have any idea what's going on here or maybe how I can force Postgres to prefer the faster plan? The query plans are very long (11 tables joined) but I can include them if it might help. Thanks for any advice, Roberto
Are you forcing stuff out of cache (both postgres and OS) ? I've found that this can make a huge difference with some queries... not sure that this would make it have different plans, though. My ill-informied $0.02 worth ... fwiw Greg Williamson DBA GlobeXplorer LLC -----Original Message----- From: Robert Davis [mailto:robert@faithwestinc.com] Sent: Tue 9/14/2004 6:21 PM To: pgsql-sql@postgresql.org Cc: Subject: [SQL] explain analyze results are different for each iteration I'm trying to benchmark some complex sql queries. One query, in particular, is causing problems -- its cost values can vary from 228 to 907, its Total Runtimes from 60 ms to 5176 ms. The query plans show that the optimizer is choosing different plans for different iterations of the same query. Does anyone have any idea what's going on here or maybe how I can force Postgres to prefer the faster plan? The query plans are very long (11 tables joined) but I can include them if it might help. Thanks for any advice, Roberto ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html
On Tue, 14 Sep 2004, Robert Davis wrote: > I'm trying to benchmark some complex sql queries. One query, in > particular, is causing problems -- its cost values can vary from 228 > to 907, its Total Runtimes from 60 ms to 5176 ms. The query plans > show that the optimizer is choosing different plans for different > iterations of the same query. Does anyone have any idea what's > going on here or maybe how I can force Postgres to prefer the faster > plan? > > The query plans are very long (11 tables joined) but I can include > them if it might help. Thanks for any advice, 11 tables. You might want to see if raising geqo_threshold stabilizes the plans since IIRC that's the threshold for using the genetic optimizer.