EXISTS vs DISTINCT
Departamentos que tengan empleado:
EXISTS es una alternativa mejor, porque cuando el RDMS se da cuenta de que cuando la
subquery se cumple, no necesita seguir, y sigue con la siguiente fila.
La elección de una opción u otra, depende de la cardinalidad de los datos.
Otra diferencia entre las dos opciones radica en que en el DISTINCT la BD debe
realizar una ordenación.
IN / UNION vs OR
IN / UNION en la mayoría de casos es preferible a OR.
Usar OR en una fila indexada causa que el optimizador haga un FAST FULL SCAN.
NOT EXIST vs NOT IN
Reduciendo accesos a la BBDD
Table Joins vs EXISTS
Join es más recomendable que Exists siempre que el número de
filas coicidentes sea alto. Por ejemplo:
Exists es más eficiente si el número de filas coincidentes es bajo:
Por ejemplo:
------------------------------------------------------------------------------
------------------------------------------------------------------------------
--fuente: http://www.wikioracle.es/doku.php?id=oracle_tuning:tuning_sql--
------------------------------------------------------------------------------
------------------------------------------------------------------------------
http://developer.postgresql.org/pgdocs/postgres/performance-tips.html#USING-EXPLAIN
------------------------------------------------------------------------------
------------------------------------------------------------------------------