Re: Problema de Performance

From: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Raul Andres Duque <ra_duque(at)yahoo(dot)com(dot)mx>
Cc: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>, 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-30 01:53:02
Message-ID: 91530.3787.qm@web63702.mail.re1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


--- Alvaro Herrera <alvherre(at)commandprompt(dot)com>
escribió:

> Raul Andres Duque escribió:
>
> > ----- Original Message ----- From: "Gabriel Hermes
> Colina Zambra"
>
> >> 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.
> >
> > No se supone que los dos QUERYs son equivalentes??
>
> Si. El optimizador reduce ("aplana", en ingles
> "flattens", aunque
> tambien se le dice "collapses") una forma a la
> otra(*), y luego calcula
> la mejor manera de hacerlo. La verdad, no veo por
> que podrian funcionar
> diferente. Pero Gabriel no nos ha mostrado los
> planes, creo, asi que no
> hay manera de saber a que se refiere. O quizas hizo
> el experimentos con
> una version antigua (Gabriel tiene tendencia a
> extrapolar a versiones
> nuevas los experimentos que hizo con versiones
> anteriores).
>
> (*) Este aplanamiento solo ocurre si la cantidad de
> relaciones en la
> lista es menor que join_collapse_limit.
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom
> Development, 24x7 support
>
Mi version vieja es la 8.2.4, asi que no es del todo
cierto que sea tan vieja.

Segundo Alvaro hace dos meses esto te lo pregunte a
ti, y despues de esa sugerencia lo implemente asi y te
mostre los explain analyze de una y el explain de
otra.

Luego volvi a investigar sobre el join que no se
resolvia y lo plantee de otra manera y casi igualo la
performance, digo casi por que la diferencia era de
pocos ms.

Tire entonces el explain con el join armado diferente
y expuse en el explain, mostrando que el primer join
estaba mal armado, podemos revisar la lista de
correos, lamentablemente no tengo bien fresco el caso,
pero ahi debe estar.

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/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-01-30 03:11:14 Re: Problema de Performance
Previous Message Max Sorribas 2008-01-30 01:28:46 como convertir mysql a postgres???