Opérateur Showplan Hash Match

L'opérateur Hash Match crée une table de hachage en calculant une valeur de hachage pour chaque ligne à partir de son entrée de génération. Un prédicat HASH:() accompagné d'une liste de colonnes utilisées pour créer une valeur de hachage apparaît dans la colonne Argument. Ensuite, il calcule, pour chaque ligne de sondage (le cas échéant), une valeur de hachage en utilisant la même fonction de hachage, et consulte la table de hachage pour trouver les correspondances. Si un prédicat résiduel (identifié par RESIDUAL:() dans la colonne Argument) y figure, il doit également trouver les lignes qui doivent lui correspondre. Son comportement dépend de l'opération logique exécutée :

  • Pour toutes les jointures, utilisez la première entrée (du haut) pour créer la table de hachage et la seconde entrée (du bas) pour tester cette table. Les correspondances (ou non correspondances) de sortie sont dictées par le type de jointure. Si plusieurs jointures utilisent la même colonne de jointure, ces opérations sont regroupées dans une équipe de hachage.

  • Pour les opérateurs distincts ou d'agrégation, utilisez l'entrée pour créer la table de hachage (en supprimant les doublons et en calculant les expressions d'agrégation). Une fois la table de hachage construite, parcourez-la et sortez toutes les entrées.

  • Pour l'opérateur UNION, utilisez la première entrée pour créer la table de hachage (en supprimant les doublons). Utilisez la deuxième entrée (qui ne doit pas comporter de doublons) pour tester la table de hachage, en retournant toutes les lignes n'ayant pas de correspondance, puis analysez la table et retournez toutes les entrées.

Hash Match est un opérateur physique.

Icône de l'opérateur Hash MatchIcône du plan d'exécution graphique