SMJ连接算法讨论

         在数据库查询优化的实现中我们主要针对四种连接算法,即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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值