Comprendre les jointures de boucles imbriquées

La jointure de boucles imbriquées, également nommée itération imbriquée, utilise une entrée de jointure comme table d'entrée externe (représentée comme entrée la plus haute dans le plan d'exécution graphique) et une autre comme table d'entrée interne (la plus basse). La boucle externe mobilise la table d'entrée externe ligne par ligne. La boucle interne, exécutée pour chaque ligne externe, recherche les lignes en correspondance dans la table d'entrée interne.

Dans le cas le plus simple, la recherche analyse intégralement une table ou un index, ce qui s'appelle tout simplement une jointure de boucles imbriquées. Si la recherche exploite un index, il s'agit d'une jointure de boucles imbriquées d'index. Si l'index est construit comme faisant partie du plan de requête (et détruit à l'achèvement de la requête), on parle de jointure de boucles imbriquées d'index temporaire. Toutes ces variantes sont prises en compte par l'optimiseur de requêtes.

Une jointure de boucles imbriquées est particulièrement efficace si l'entrée externe est petite alors que l'entrée interne préindexée est volumineuse. Dans bon nombre de transactions réduites, comme celles concernant un petit nombre de lignes seulement, les jointures de boucles imbriquées d'index sont supérieures aux jointures de fusion et de hachage. À l'inverse, pour les requêtes de grande ampleur, les jointures de boucles imbriquées ne constituent pas le meilleur choix.