Poor performance with queries using clause: sth IN (...)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux