The following bug has been logged on the website:
Bug reference: 8130
Logged by: Stefan de Konink
Email address: stefan@konink.de
PostgreSQL version: 9.2.4
Operating system: Linux
Description: =
We figured out that two very close query give a massive difference
performance between using select * vs select id.
SELECT *
FROM ambit_privateevent_calendars AS a
,ambit_privateevent AS b
,ambit_calendarsubscription AS c
,ambit_calendar AS d
WHERE c.calendar_id =3D d.id
AND a.privateevent_id =3D b.id
AND c.user_id =3D 1270
AND c.calendar_id =3D a.calendar_id
AND c.STATUS IN (
1
,8
,2
,15
,18
,4
,12
,20
)
AND NOT b.main_recurrence =3D true;
With some help on IRC we figured out that "there was a bugfix in hash
estimation recently and I was hoping you were older than that", but since we
are not:
PostgreSQL 9.2.4 on x86_64-pc-linux-gnu, compiled by x86_64-pc-linux-gnu-gcc
(Gentoo 4.7.2-r1 p1.6, pie-0.5.5) 4.7.2, 64-bit
...there might still be a bug around.
We compare:
http://explain.depesz.com/s/jRx
http://explain.depesz.com/s/eKE
By setting "set enable_hashjoin =3D off;" performance in our entire
application increased 30 fold in throughput, which was a bit unexpected but
highly appreciated. The result of the last query:
http://explain.depesz.com/s/AWB
What can we do to provide a bit more of information?