Nested loop join: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Errori di Lint: Tag annidati male
Botcrux (discussione | contributi)
m Bot: correzione andate a capo e spazi
 
(2 versioni intermedie di un altro utente non mostrate)
Riga 5:
Supponendo R esterna e S interna l'algoritmo per ogni tupla di R, che verifica le eventuali altre condizioni su R, accede a S ricercando tutte le tuple di S che soddisfano tutte le eventuali altre condizioni su S e che possono concatenarsi con le tuple di R.
Possiamo schematizzare questo comportamento con
 
 
For each tuple r in R do
Riga 12 ⟶ 11:
Then output the tuple <r,s>
 
=== Valutazione dei costi ===
Dato che l'algoritmo NLJ passa le righe dal ciclo esterno a quello interno una alla volta, tipicamente le tabelle elaborate nel ciclo più interno vengono lette molte volte.
Il costo di esecuzione è espresso come:
Riga 21 ⟶ 20:
:C(S) è il costo di accesso a S
 
=== Varianti ===
Esiste un algoritmo di join, chiamato ''[[block nested loop join]]'', che si differenzia da quello di nested-loop poiché i dati vengono salvati in memoria per ridurre il numero di volte che S viene scansionata.
 
== Bibliografia ==
* Paolo Ciaccia, Dario Mario, Lezioni di basi di dati, 2013, Editrice Esculapio, ISBN 978-8874887187
* [httphttps://dev.mysql.com/doc/refman/5.6/en/nested-loop-joins.html Nested-Loop Joins] in the MySQL 5.6 Reference Manual.
 
{{Portale|informatica|ingegneria}}