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

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Problema de Performance


  • 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: Mon, 28 Jan 2008 16:57:06 -0600 (CST)
  • Message-id: <929547(dot)40223(dot)qm(at)web63703(dot)mail(dot)re1(dot)yahoo(dot)com>

--- 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/



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group