Noeud HSJOIN

Ce noeud représente les jointures hachées pour lesquelles les lignes qualifiées des tables sont hachées.

Nom du noeud : HSJOIN

Représente : Une jointure hachée pour laquelle les lignes qualifiées des tables sont hachées afin de permettre une jointure directe sans prétraiter le contenu des tables.

Une jointure est nécessaire dès qu'il y a plusieurs tables référencées dans une clause FROM. Une jointure hachée est possible dès qu'il y a un prédicat de jointure correspondant aux colonnes de deux tables différentes. Les prédicats de jointure doivent être exactement du même type de données. Les jointures hachées peuvent également provenir d'une sous-requête ré-écrite, comme c'est le cas pour NLJOIN .

Une jointure hachée ne nécessite pas que les tables de saisie soient commandées. La jointure est effectuée en analysant la table interne de la jointure hachée et en générant une table de recherche en hachant les valeurs de la colonne de jointure. Elle lit ensuite la table extérieure en hachant les valeurs de la colonne de jointure et en enregistrant la table de recherche générée pour la table interne.

Suggestions liées aux performances :
  • Utilisez les prédicats locaux (c'est-à-dire les prédicats faisant référence à une seule table) pour réduire le nombre de lignes à joindre.
  • Augmentez la taille de la mémoire de tri pour la rendre suffisamment grande pour contenir la table de recherche de hachure.
  • Si les statistiques ne sont pas à jour, mettez-les à jour à l'aide de la commande runstats.

Commentaires