Nested loop join: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
IndyJrBot (discussione | contributi)
m fix vari +Standardizzazione sezioni
Botcrux (discussione | contributi)
m Bot: correzione andate a capo e spazi
 
(5 versioni intermedie di 4 utenti non mostrate)
Riga 6:
Possiamo schematizzare questo comportamento con
 
<code>
For each tuple r in R do
For each tuple s in S do
If r and s satisfy the join condition
Then output the tuple <r,s>
 
</code>
=== 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:
:C(R) x+ TR x C(S)
dove:
:C(R) è il costo di accesso a R
:TR è il numero atteso di tuple residue di R
: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}}