as the outer loop, Ri say. The complete partition Ri is read into memory and each block of
the equivalent Si partition is read and each tuple is used to probe Ri for matching tuples.
For increased efficiency, it is common to build an in-memory hash table for each partition
Ri using a second hash function, different from the partitioning hash function. The
algorithm for hash join is outlined in Figure 21.11. We can estimate the cost of the hash
join as: