我读到Oracle支持使用不等式连接谓词进行合并连接。 是否有在线参考用于实现此类连接的算法? 如果有人知道怎么做,你能回答吗?
答案 0 :(得分:1)
This正是您要找的。
7.4排序合并连接
排序合并连接可以连接来自两个独立源的行。在 通常,散列连接比排序合并连接执行得更好。然而, 如果两者都排序,则排序合并连接可以比散列连接执行得更好 存在以下条件:
对行源进行排序。不需要排序操作。然而, 如果排序合并连接涉及选择较慢的访问方法(一个 索引扫描而不是全表扫描),然后使用的好处 排序合并可能会丢失。
当两个表之间的连接条件时,排序合并连接很有用 是一个不等式条件,例如<,< =,>或> =。排序合并连接 比大型数据集的嵌套循环连接执行得更好。哈希加入 需要一个平等的条件。
在合并连接中,没有驱动表的概念。加入 包括两个步骤:
排序联接操作
两个输入都按连接键排序。
合并联接操作
合并排序后的列表。
如果输入按连接列排序,则排序连接操作 不对该行源执行。但是,排序合并连接 总是为右侧创建一个可定位的排序缓冲区 加入,以便它可以寻找回到最后一场比赛的情况 重复的连接键值出现在连接的左侧。
答案 1 :(得分:-1)
这里有一个例子:http://www.serkey.com/oracle-skyline-query-challenge-bdh859.html
这是你想要做的吗? (关键词是“软合并”)