Diag-Join: An Opportunistic Join Algorithm for 1:N Relationships
VLDB '98 Proceedings of the 24rd International Conference on Very Large Data Bases
Evaluation of Main Memory Join Algorithms for Joins with Set Comparison Join Predicates
VLDB '97 Proceedings of the 23rd International Conference on Very Large Data Bases
Lazy, adaptive rid-list intersection, and its application to index anding
Proceedings of the 2007 ACM SIGMOD international conference on Management of data
Hi-index | 0.00 |
Join processing algorithms play a critical role in efficient query processing. Popular join processing algorithms like merge join and hash join typically access all the data items in the datasets to be joined. In this paper we present a new join algorithm called {\em bucket skip merge join} which does not always access all the data items of the join sets. The basic idea is to divide the datasets into buckets that contain monotonically increasing values and maintain high and low values for each bucket. During join processing, the algorithm uses these values to skip a whole bucket or parts of a bucket when it can be determined that a match will not be found for the rest of the data items in the bucket. This considerably reduces the number of memory accesses, disk accesses and CPU time. Results of the performance tests on a prototype system indicates that our algorithm outperforms other popular join algorithms. Specifically, they scale better with the size of the database and the degree of join. Hence our algorithm will be very useful for applications like information retrieval, data warehousing and decision support systems that access very large databases.