Parce que cela prive l'optimiseur de la possibilité d'envisager d'autres méthodes qui peuvent être plus efficaces.
Lorsque la distribution des données (sur lesquelles l'optimiseur prend ses décisions) est fortement faussée et que les statistiques ne sont pas en mesure de la représenter correctement.
Ce sont des algorithmes différents.
-
LOOP
est des boucles imbriquées :pour chaque enregistrement de la table externe, la table interne est recherchée pour les correspondances (en utilisant l'index de disponible). Le plus rapide lorsque seule une infime partie des enregistrements des deux tables satisfait leJOIN
et leWHERE
conditions. -
MERGE
trie les deux tables et les parcourt dans l'ordre de tri, en ignorant les enregistrements sans correspondance. Le plus rapide pour leFULL JOIN
s et lorsque les deux jeux d'enregistrements sont déjà triés (à partir d'opérations de tri précédentes ou lorsque le chemin d'accès à l'index est utilisé) -
HASH
construire une table de hachage dans le stockage temporaire (mémoire outempdb
) de l'une des tables et la recherche pour chaque enregistrement de l'autre. Le plus rapide si la grande partie des enregistrements de l'une ou l'autre des tables correspond àWHERE
etJOIN
état.