From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Aaron Guyon <battlemage(at)gmail(dot)com> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Postgres 8.3, four times slower queries? |
Date: | 2009-03-03 22:34:12 |
Message-ID: | 17797.1236119652@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Aaron Guyon <battlemage(at)gmail(dot)com> 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
From | Date | Subject | |
---|---|---|---|
Next Message | Flavio Henrique Araque Gurgel | 2009-03-04 00:28:56 | work_mem in high transaction rate database |
Previous Message | Tom Lane | 2009-03-03 21:27:05 | Re: Problems with ordering (can't force query planner to use an index) |