Re: Problema de Performance

From: "Silvio Quadri" <silvioq(at)gmail(dot)com>
To: "Yasset Perez Riverol" <yasset(dot)perez(at)biocomp(dot)cigb(dot)edu(dot)cu>
Cc: "postgre sql" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Problema de Performance
Date: 2008-01-28 15:30:23
Message-ID: 61dc71dc0801280730v7005c07am155109e7c9ca70a5@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2008/1/28, Yasset Perez Riverol <yasset(dot)perez(at)biocomp(dot)cigb(dot)edu(dot)cu>:
>
> Hola a todos disculpen la demora:
> Mi problema consistia en el performance de un query utilizando INNER JOIN
> entre una tabla de 5 millones de compuestos y una tabla de 44 tuplas
> pasando
> por una tabla de 9 millones de tuplas.
>
> Como me solicitaron el EXPLAIN del query es el siguiente:
>
> EXPLAIN select tabla1.id, tabla2.id from tabla1 INNER JOIN tabla3 ON
> (tabla3.id_tabla1 = tabla1.id) INNER JOIN tabla2 ON (tabla2.id =
> tabla3.id_tabla2);
>
> QUERY PLAN
>
> --------------------------------------------------------------------------------
> Hash Join (cost=313052.04..527393.28 rows=237964 width=96)
> Hash Cond: ((tabla3.id_tabla1)::text = (tabla1.id)::text)
> -> Hash Join (cost=1.99..152461.40 rows=237964 width=96)
> Hash Cond: ((tabla3.id_tabla2)::text = (tabla2.shortname)::text)
> -> Seq Scan on tabla3 (cost=0.00..146023.56 rows=1081656
> width=96)
> -> Hash (cost=1.44..1.44 rows=44 width=48)
> -> Seq Scan on tabla2 (cost=0.00..1.44 rows=44 width=48)
> -> Hash (cost=195175.69..195175.69 rows=5412669 width=48)
> -> Seq Scan on tabla1 (cost=0.00..195175.69 rows=5412669
> width=48)tabla3
> (9 rows)

--
> Ing. Yasset Pérez Riverol.
> Grupo de Bioinformática.
> CIGB, La Habana, Cuba.
>
> -------------------------
>
> "La alegría está en la lucha, en el esfuerzo,
> en el sufrimiento que supone la lucha y no
> en la victoria."
> Mahatma Gandhi
> --
> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo
> agradecerán

Dos cuestiones.
1) ¿Las tablas tienen índices? ¿Cuáles son? Si no tienen índice, el plan es
correcto.
2) Por más que tengas el índice correcto, si no hay un where o un limit,
siempre vas a tener problemas de performance. ¿Cuáles serían?

Saludos, Silvio.

--
Silvio Quadri

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Silvio Quadri 2008-01-28 15:37:08 Re: Problema de Performance
Previous Message Yasset Perez Riverol 2008-01-28 15:13:26 Re: Problema de Performance