Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Silvio QuadriDate: 2008-01-28 15:37:08
Subject: Re: Problema de Performance
Previous:From: Yasset Perez RiverolDate: 2008-01-28 15:13:26
Subject: Re: Problema de Performance

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group