Porque isso rouba do otimizador a oportunidade de considerar outros métodos que podem ser mais eficientes.
Quando a distribuição de dados (na qual o otimizador toma suas decisões) é severamente distorcida e as estatísticas não são capazes de representá-la corretamente.
São algoritmos diferentes.
-
LOOP
é loops aninhados:para cada registro da tabela externa, a tabela interna é pesquisada por correspondências (usando o índice de disponível). Mais rápido quando apenas uma pequena parte dos registros de ambas as tabelas satisfazem oJOIN
e oWHERE
condições.
-
MERGE
classifica ambas as tabelas são percorridas na ordem de classificação, ignorando os registros não correspondentes. Mais rápido para oFULL JOIN
s e quando ambos os conjuntos de registros já estão classificados (de operações de classificação anteriores ou quando o caminho de acesso do índice é usado)
-
HASH
construir uma tabela de hash no armazenamento temporário (memória outempdb
) de uma das tabelas e pesquisa cada registro da outra. Mais rápido se a grande parte dos registros de qualquer tabela corresponder aWHERE
eJOIN
doença.