Re: 512,600ms query becomes 7500ms... but why? Postgres 8.3 query planner quirk? - Mailing list pgsql-performance

From Kevin Grittner
Subject Re: 512,600ms query becomes 7500ms... but why? Postgres 8.3 query planner quirk?
Date
Msg-id 4B752934020000250002F24E@gw.wicourts.gov
Whole thread Raw
In response to Re: 512,600ms query becomes 7500ms... but why? Postgres 8.3 query planner quirk?  (Karl Denninger <karl@denninger.net>)
Responses Re: 512,600ms query becomes 7500ms... but why? Postgres 8.3 query planner quirk?  (Karl Denninger <karl@denninger.net>)
List pgsql-performance
Karl Denninger <karl@denninger.net> wrote:
Kevin Grittner wrote:

>> I suspect that the above might do pretty well in 8.4.

> "Exists" can be quite slow.  So can "not exists"
>
> See if you can re-write it using a sub-select - just replace the
> "exists ...." with "(select ...) is not null"
>
> Surprisingly this often results in a MUCH better query plan under
> Postgresql.  Why the planner evaluates it "better" eludes me (it
> shouldn't) but the differences are often STRIKING - I've seen
> factor-of-10 differences in execution performance.

Have you seen such a difference under 8.4?  Can you provide a
self-contained example?

-Kevin

pgsql-performance by date:

Previous
From: Karl Denninger
Date:
Subject: Re: 512,600ms query becomes 7500ms... but why? Postgres 8.3 query planner quirk?
Next
From: "Connors, Bill"
Date:
Subject: Questions on plan with INSERT/SELECT on partitioned table