Nested loop join
Appearance
![]() | Template:Wikify is deprecated. Please use a more specific cleanup template as listed in the documentation. |
![]() | This article needs attention from an expert in mathematics. Please add a reason or a talk parameter to this template to explain the issue with the article. |
A nested loop join is a naive algorithm that joins two relations and by making two nested loops:
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>
This algorithm will involve nr*bs+ br block transfers and nr+br seeks. Where br and bs are number of blocks in relations r and s respectively, and nr is the number of tuples in relation r.
The algorithm runs in I/Os, where and is the number of tuples contained in and respectively. Can easily be generalized to join any number of relations.
The block nested loop join algorithm is a generalization of the simple nested loops algorithm that takes advantage of additional memory to reduce the number of times that the relation is scanned.