From: | Guillaume Smet <guillaume(dot)smet(at)gmail(dot)com> |
---|---|
To: | vacuum(at)quantentunnel(dot)de |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: 8.4 semi-join slows down query performance (EXISTS) |
Date: | 2009-04-21 11:53:01 |
Message-ID: | 1d4e0c10904210453u220bd05amf44bee24eb0e5f70@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Apr 21, 2009 at 11:38 AM, <vacuum(at)quantentunnel(dot)de> wrote:
> I've queries returning tupels of A, with a (sub-)selected constant-expression that indicates whether a referenced tupel exists in B or not. For this issue the EXISTS clause is used.
>
> In past (8.3) the planner resolves this into index-scans using existing foreign-key indices -> fast query (1.5 seconds for comparison). Now (in 8.4) the planner wants "semi-joins". Index-scans are not longer used and my query needs 600 seconds to return.
That worries me a bit for one of our applications too. We use EXISTS
in several places to trick the planner when the statistics are way off
(cross columns/cross tables) and I'm not sure making EXISTS more
clever will help us.
--
Guillaume
From | Date | Subject | |
---|---|---|---|
Next Message | Greg Stark | 2009-04-21 11:59:18 | Re: Automating Partitions in PostgreSQL - Query on syntax |
Previous Message | Kedar Potdar | 2009-04-21 11:50:23 | Automating Partitions in PostgreSQL - Query on syntax |