From: | Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar> |
---|---|
To: | Alessandra Campos Alfaro <alesscalf(at)gmail(dot)com> |
Cc: | Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: consulta con join |
Date: | 2015-08-27 22:00:55 |
Message-ID: | 1065894668.290351.1440712855562.JavaMail.root@fmed.uba.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
>
>
> Buenas Tardes Lista
>
> tengo una consulta que une dos tablas con un Join. Asi
>
> Select * from tabla_1
> left join tabla_2 on tabla_2.id_tabla2=tabla1.id_tabla_2
> where tabla_1.id_tabla_2 is not null
>
> Pero cuando hago esta la consulta, demora mas que cuando la hago de
> esta forma:
>
>
>
> Select * from tabla_1
> left join tabla_2 on tabla_2.id_tabla2=tabla1.id_tabla_2
> where tabla_2.id_tabla_2 is not null
>
>
> Alguien pudiera ayudarme a entender cual es la diferencia y como
> opera el join que pueda hacer que tarde mas una consulta que la
> otra? pues me temo que tengo varias consultas mas formuladas en este
> aspecto.
>
>
>
> Aless
>
La manera mas simple que se me ocurre, es que en tabla_2 haya mas registros que en tabla_1.
La aproximacion a este tipo de problemas suele comenzar con el analisis del plan de ejecucion.
La sentencia EXPLAIN [1] hace eso. Hace un EXPLAIN ANALYZE de ambos selects, y a partir de ahi hay que estudiar un poco las diferencias a nivel de plan.
[1] http://www.postgresql.org/docs/current/static/sql-explain.html
HTH
Gerardo
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2015-08-28 00:13:20 | Re: consulta con join |
Previous Message | Alessandra Campos Alfaro | 2015-08-27 21:44:41 | consulta con join |