Porque esto le roba al optimizador la oportunidad de considerar otros métodos que pueden ser más eficientes.
Cuando la distribución de datos (sobre la que el optimizador toma sus decisiones) está muy sesgada y las estadísticas no pueden representarla correctamente.
Estos son algoritmos diferentes.
-
LOOP
es bucles anidados:para cada registro de la tabla externa, se busca coincidencias en la tabla interna (usando el índice de disponible). Más rápido cuando solo una pequeña parte de los registros de ambas tablas satisfacenJOIN
y elWHERE
condiciones. -
MERGE
ordena ambas tablas y las atraviesa en el orden de clasificación, omitiendo los registros no coincidentes. Más rápido paraFULL JOIN
s y cuando ambos conjuntos de registros ya están ordenados (de operaciones de clasificación anteriores o cuando se usa la ruta de acceso al índice) -
HASH
construir una tabla hash en el almacenamiento temporal (memoria otempdb
) de una de las tablas y busca cada registro de la otra. Más rápido si la gran parte de los registros de cualquiera de las tablas coincide conWHERE
yJOIN
condición.