Block nested loop join: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LauBot (discussione | contributi)
m Bot: passaggio degli url da HTTP a HTTPS
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti.
 
Riga 4:
 
== Differenze rispetto a nested-loop join ==
Supponendo di avere due relazioni R e S, R esterna e S interna, con |R|<|S| dove |R| è il numero di tuple coinvolte in R e |S| quello di tuple coinvolte in S, nell'algoritmo NLJ S viene scansionata ogni volta per ogni [[tupla]] di R. Questa operazione è molto dispendiosa.
Con l'algoritmo BNL il miglioramento viene ottenuto scansionando S una volta sola per ogni gruppo di tuple di R. Una versione di questo algoritmo carica nella memoria, in una [[hash table]] le tuple di R, poi passa a S ed esamina l'hash table per trovare le tuple di S che corrispondono a qualsiasi tupla di R. Questo riduce il numero di scansioni di S necessarie.
Nel caso di utilizzo di hash table, questo algoritmo può esser visto come variante dell'algoritmo di [[hash join]].