| 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: | Whole Thread | Raw Message | 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 |