Aaron Guyon <battlemage@xxxxxxxxx> writes: > I find it telling that the query plan differs so much between postgres 8.2. Well, you haven't shown us either the query or the table definitions, so we're just guessing in the dark. However, the occurrences of "::numeric" in the query plan make me wonder whether all of your join keys are numeric type. If so, the reason 8.2 didn't use any hash joins is that it couldn't --- it didn't have a hash method for numerics. 8.3 does and therefore has more flexibility of plan choice. Comparisons on numerics aren't terribly fast though (in either release). I wonder whether you could change the key columns to int or bigint. I also find it a tad fishy that both releases are choosing *exactly* the same join order when there is hardly anything else that is identical about the plans --- given the cross-release variance in rowcount estimates etc I'd have expected at least one difference. Are you doing something to force the join order, like running with a small join_collapse_limit setting? If so maybe you shouldn't. regards, tom lane -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance