> When I run the following query in Postgres 8.0, it runs in 61,509.372 ms
>
> When I run it in Postgres 8.4, it runs in 397,857.472 ms
As Andrew already pointed out, we need to se EXPLAIN ANALYZE output from
both machines to see why this happens. Are you running both queries on the
same data, or is there much more data in 8.4? Have you analyzed the tables
recently (or is autovacuum running)?
BTW I see two possible issues with this query:
1) There's not a suitable index on course_begin_date, i.e. there's no
index at all or the index is not on the expression used in the query.
2) There's not a suitable index on course_delivery (it needs to use the
proper operator class).
regards
Tomas