论文部分内容阅读
连接操作是基本的关系数据库查询操作之一,是从两个不同的关系中检索满足条件的信息。实现连接的方法较多,其中哈希连接在所有的连接算法中被证实是性能最好的,但现有的哈希连接都存在分区溢出问题。如果连接过程中发生分区溢出现象,会严重降低算法效率。研究并改进现有的哈希连接算法对提高哈希连接效率具有重要意义。为了解决现有哈希算法分区溢出的缺点,使用归并连接思想对现有的哈希连接算法进行了改进,设计了一种哈希归并连接(Hash Merge Join, HMJ)算法。该算法分成两个阶段:哈希阶段和归并阶段。哈希阶段利用哈希表的哈希值作为数据对比键值,对哈希表中所有数据进行排序,把整个哈希表中的数据当作一个分区,然后依次对所有数据进行类似处理,使得数据基于哈希值和原始键值有序;归并阶段则对排好序的数据进行归并连接,完成整个连接操作。测试结果证明,该算法不会产生分区溢出。根据达梦数据库管理系统中的操作符特点,以哈希归并连接算法为基础,设计并实现了哈希内连接、外连接和半连接操作符,实现过程中临时数据的存储采用列存储技术,归并操作采用败者树算法对数据进行排序。通过对使用新算法实现的哈希连接进行测试,结果证明,不论是内连接、外连接还是半连接,哈希归并连接算法较以前算法在性能上均有较大提高。