Semi Join
Une semi-jointure renvoie les lignes de la table externe ayant une correspondance dans la table interne, sans renvoyer les colonnes de celle-ci ; elle sert à optimiser les sous-requêtes EXISTS.
Objectif
Optimiser les sous-requêtes EXISTS/IN en évitant les transferts de données et les jointures inutiles.
Mécanisme
Elle vérifie seulement si une ligne externe a une correspondance interne ; si oui, elle émet la ligne externe (sans données internes). Implémentation : on déduplique la colonne de jointure interne puis on sonde la table externe. Elle produit moins de sortie et moins de résultats intermédiaires qu'une jointure classique.
Cas d’usage
- Optimisation de sous-requêtes
- Optimisation d'EXISTS
- Optimisation de jointures