SMJ连接算法讨论

来源:互联网 发布:数字网络用语 编辑:程序博客网 时间:2024/05/15 23:50

         在数据库查询优化的实现中我们主要针对四种连接算法,即GHJ,HHJ,BNJ,SMJ,本节主要针对的是SMJ算法,即排序归并连接算法。

         其具体实现过程:

         排序归并连接(SMJ)是将要排序的两个关系表R(X,Y)S(Y,Z) 先按连接属性Y进行排序再连接的过程。SMJ的第一阶段是排序,对排序S表,考虑到S表较大,S表的一个块Sblk       读入到M中,通过内排序对Sblk进行排序,排序结束后将结果写出到临时文件中,继续读取S中的下一部分内容进行排序并写出,最终生成m个有序的子文件。第二阶段将这           m个子文件进行归并,先在缓存中维护m个空间,将每一个子文件的第一个块读入到这m个空间中,将Y值最小的元组(第i个空间的元组)复制到输出缓冲区中,缓冲区满则           写出到磁盘,然后从第i个临时文件中再读入下一块内容,反复将属性Y最小的元组写出到磁盘,最终生成一个有序关系S文件。对关系R也进行相同的处理。归并阶段,需要       为关系R和S的每个有序子文件在缓存中维护一个空间存放各子文件的第一个块。


0 0
原创粉丝点击