From: | Andrzej Zawadzki <zawadaa(at)wp(dot)pl> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Subject: | Poor performance with queries using clause: sth IN (...) |
Date: | 2007-05-09 13:22:41 |
Message-ID: | 4641CB21.2010608@wp.pl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
That's email from my friend.
Any hint?
-------- Original Message --------
Subject: bug
Date: Wed, 09 May 2007 15:03:00 +0200
From: Michal Postupalski
To: Andrzej Zawadzki
We've just changed our database from 8.1 to 8.2 and we are
grief-stricken about very poor performance with queries using clause:
"sth IN (...)". As we can see any query is translate to "sth = ANY
('{....}'::bpchar[]))" and it tooks much more time beacuse it doesn't
use index'es. Why ? How can we speed up these queries? I've just read
"Performance of IN (...) vs. = ANY array[...]" on pgsql-performance
mailing list and I didn't find any solutions. Can anybody tell me what
can I do with postgres to force him using indexes? If there isn't any
solution I'm afraid that we will have to do downgrade to previous
version 8.1.
example:
SELECT count(*)
FROM kredytob b, kredyty k
WHERE true
AND b.kredytid = k.id
AND '' IN ('', upper(b.nazwisko))
AND '' IN ('', upper(b.imie))
AND '78111104485' IN ('', b.pesel)
AND '' IN ('', upper(trim(b.dowseria))) AND '' IN ('', b.dowosnr) AND 0
IN (0, b.typkred) AND k.datazwrot IS NULL;
regards...
Michał Postupalski
From | Date | Subject | |
---|---|---|---|
Next Message | Oleg Bartunov | 2007-05-09 13:31:19 | Re: Cannot make GIN intarray index be used by the planner |
Previous Message | Valentine Gogichashvili | 2007-05-09 13:12:45 | Cannot make GIN intarray index be used by the planner |