Bonjour !
Un truc que j'ai du mal à saisir : c'est quoi un HASH SEMI JOIN ???
Je résume ce que j'ai compris "autour" du sujet.
Le CBO choisit pour une requête un type, un algorithme de jointure en fonction du coût qu'il estime.
Le HASH JOIN :
- on crée un table de hashage pour A
- on parcourt B, et on teste la valeur de hashage de la ligne
Le SEMI JOIN (version nested loop) :
- on parcourt la table A, on cherche les correspondances dans B, mais on s'arrête dès qu'on a trouvé.
Comment est-ce qu'on peut concilier les deux ???
(puis si on construit la hash table, puis on parcourt B, ce n'est qu'après avoir testé la valeur de hashage qu'on pourrait éventuellement savoir que ce n'était plus la peine de tester...)
Merci !
Partager