From: | Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com> |
---|---|
To: | Yasset Perez Riverol <yasset(dot)perez(at)biocomp(dot)cigb(dot)edu(dot)cu>, 'postgre sql' <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Problema de Performance |
Date: | 2008-01-28 22:57:06 |
Message-ID: | 929547.40223.qm@web63703.mail.re1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
--- Yasset Perez Riverol
<yasset(dot)perez(at)biocomp(dot)cigb(dot)edu(dot)cu> escribió:
> 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
Sabes hace un mes tuve un tema parecido y sustitui el
inner join
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);
Por
select tabla1.id, tabla2.id from tabla1,tabla2
, tabla3
where
(tabla3.id_tabla1 = tabla1.id) and
(tabla2.id =
tabla3.id_tabla2);
Y la performance mejoro mucho.
La frase de Gandhi esta muy linda, muy lirica, pero
prefiero no descartar por ello la victoria. Ya que
quiza la misma de felicidad a toda una sociedad, por
eso te saludo desde Uruguay con otra frase.
"Hasta la victoria siempre"
Ernesto "Che"
Atte.
Gabriel Colina
____________________________________________________________________________________
¡Capacidad ilimitada de almacenamiento en tu correo!
No te preocupes más por el espacio de tu cuenta con Correo Yahoo!:
http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Gabriel Hermes Colina Zambra | 2008-01-28 23:04:12 | Re: Esta es la estrucutra de las tablas..... |
Previous Message | + RME | 2008-01-28 19:06:05 | Re: Problema de Performance |