-----Original Message----- >From: pgsql-performance-owner@xxxxxxxxxxxxxx On Behalf Of Gauri Kanekar >Subject: Re: [PERFORM] Nested Loop > >join_collapse_limit = 1 # JOINs Is there a reason you have this set to 1? Postgres can't consider multiple join orders when you do that. I would try setting that back to the default and seeing if this query is any faster. Other than that it looked like the problems with the query might be bad estimates of rows. One is that postgres expects there to be 1 matching row from rd when there are actually 30. You might try increasing the statistics targets on rd.sd and rd.sdt, reanalyzing, and seeing if that helps. Also postgres expects the join of rd and rm to return about 27205 rows when it actually returns 10 million. I'm not sure what you can do about that. Maybe if Postgres gets a better estimate for rd it would then estimate the join better. Dave