4s query want to run faster

From: "Adonias Malosso" <malosso(at)gmail(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Subject: 4s query want to run faster
Date: 2008-02-21 20:48:18
Message-ID: 8a5d3c890802211248k7d9dfbb5ndd645358a84130a7@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hi all,

The following query takes about 4s to run in a 16GB ram server. Any ideas
why it doesn´t use index for the primary keys in the join conditions?

select i.inuid, count(*) as total
from cte.instrumentounidade i
inner join cte.pontuacao p on p.inuid = i.inuid
inner join cte.acaoindicador ai on ai.ptoid = p.ptoid
inner join cte.subacaoindicador si on si.aciid = ai.aciid
where i.itrid = 2 and p.ptostatus = 'A'
group by i.inuid
having count(*) > 0

HashAggregate (cost=47905.87..47941.01 rows=2008 width=4)
Filter: (count(*) > 0)
-> Hash Join (cost=16307.79..46511.45 rows=185923 width=4)
Hash Cond: (si.aciid = ai.aciid)
-> Seq Scan on subacaoindicador si (cost=0.00..22812.17 rows=368817
width=4)
-> Hash (cost=16211.40..16211.40 rows=38556 width=8)
-> Hash Join (cost=9018.20..16211.40 rows=38556 width=8)
Hash Cond: (p.inuid = i.inuid)
-> Hash Join (cost=8908.41..15419.10 rows=39593
width=8)
Hash Cond: (ai.ptoid = p.ptoid)
-> Seq Scan on acaoindicador ai (cost=
0.00..4200.84 rows=76484 width=8)
-> Hash (cost=8678.33..8678.33 rows=92034
width=8)
-> Seq Scan on pontuacao p (cost=
0.00..8678.33 rows=92034 width=8)
Filter: (ptostatus = 'A'::bpchar)
-> Hash (cost=104.78..104.78 rows=2008 width=4)
-> Seq Scan on instrumentounidade i (cost=
0.00..104.78 rows=2008 width=4)
Filter: (itrid = 2)

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Scott Marlowe 2008-02-21 20:58:04 Re: 4s query want to run faster
Previous Message Vivek Khera 2008-02-21 19:17:40 Re: 7 hrs for a pg_restore?