Dans SQL Server, vous pouvez spécifier les indicateurs de jointure:
- HASH JOIN
- MERGE JOIN
- LOOP JOIN
Quelle est la définition de ces trois indications de jointure et quand faut-il les utiliser?
Dans SQL Server, vous pouvez spécifier les indicateurs de jointure:
Quelle est la définition de ces trois indications de jointure et quand faut-il les utiliser?
Réponses:
À partir de MSDN, dans la rubrique Concepts avancés de réglage de la requête :
SQL Server utilise trois types d'opérations de jointure:
Jointures de boucles imbriquées
Fusionner les jointures
Hash rejoint
Si une entrée de jointure est petite (moins de 10 lignes) et que l'autre entrée de jointure est assez grande et indexée sur ses colonnes de jointure, une jointure à boucles imbriquées d'index est l'opération de jointure la plus rapide car elle requiert le moins d'entrées / sorties et le moins de comparaisons possibles. Pour plus d'informations sur les boucles imbriquées, voir Présentation des jointures de boucles imbriquées.
Si les deux entrées de jointure ne sont pas petites mais sont triées sur leur colonne de jointure (par exemple, si elles ont été obtenues en analysant les index triés), une jointure de fusion est l'opération de jointure la plus rapide. Si les deux entrées de jointure sont volumineuses et de taille similaire, une jointure de fusion avec un tri antérieur et une jointure de hachage offrent des performances similaires. Toutefois, les opérations de jointure par hachage sont souvent beaucoup plus rapides si les deux tailles d’entrée diffèrent de manière significative. Pour plus d'informations, voir Présentation des jointures de fusion.
Les jointures par hachage peuvent traiter efficacement des entrées volumineuses, non triées et non indexées.
Mais je pense que vous devriez commencer par un sujet plus fondamental: Paramétrage de la requête et, enfin, utiliser les indicateurs de requête.