Re: Problema de Performance
- From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
- To: 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: Tue, 29 Jan 2008 12:12:10 -0300
- Message-id: <20080129151210(dot)GB8102(at)alvh(dot)no-ip(dot)org>
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
Home |
Main Index |
Thread Index