2008/11/17 Alvaro Herrera <[EMAIL PROTECTED]>: > ALFONSO REYES escribió: >> >> Estimados yo soy nuevo con la base postgres, pero en oracle e manejado >> grandes volumenes, y les comento que la clausula "EXISTS"como "NO >> EXISTS" para subconsultas es mucho pero mucho mas rapido que el "IN" o >> "NOT IN", siempre y cuando la subconsulta sea un sql y no un codigo >> quemado es decir: > > El optimizador de Postgres es totalmente diferente del de Oracle. > > En Postgres, EXISTS solía ser más rápido que IN (select), hasta que el > manejo de IN fue cambiado en 7.4 (creo). Ahora en 8.4 con lo de los > semijoins y antijoins es posible que las cosas nuevamente sean > diferentes. > > En realidad lo único estable que puede decirse es que de una versión a > la siguiente es posible que la versión que antes era más lenta pase a > ser la más rápida, y que la forma de saber es probar ambas :-) > >> Respecto al left join y su variante right join, creo que en postgres >> nadie se va a salvar de usuarlos algun momento, pero cuando no es >> necesario yo prefiero el clasico producto cartesiano con el simbolo "= >> ", y no el inner join o sentencias del sql anci... > > En Postgres, usar el producto cartesiano con = es lo mismo que usar un > inner join. Los outer join son una herramienta absolutamente > indispensable, y si a alguien le parecen confusos, pues mala suerte :-)
MMmmmm no era eso lo que quieria leer .. pero lo sospeche desde un principio :P ! Tendre que aprender a hacer la rueda de nuevo :0) > >> Si alguien me indica alguna manera de evitar el left join y right >> join, asi como en oracle existe el operador (+) el mismo que se coloca >> en cualquiera de los lados de las comparaciones donde se conoce que no >> va a tener la información. > > Como ya dijo Jaime, LEFT y RIGHT son la forma estandar (SQL) de definir > los outer join. La sintaxis (+)= de Oracle predata la definición del > estándar y entiendo que está obsoleta. > > -- > Alvaro Herrera http://www.amazon.com/gp/registry/CTMLCN8V17R4 > "Por suerte hoy explotó el califont porque si no me habría muerto > de aburrido" (Papelucho) > -- > TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo > -- Cumprimentos jchavez linux User #397972 on http://counter.li.org/ -- TIP 5: ¿Has leído nuestro extenso FAQ? http://www.postgresql.org/docs/faqs.FAQ.html