日期:2014-05-16  浏览次数:20515 次

Oracle表连接操作——Merge Sort Join(合并排序连接)

?

关系型数据库并不是最早出现的数据库表现形式,之前还存在层次、网状数据库结构。随着关系型数据库的出现,以数据表的方式进行信息留存的方案迅速发展起来。关系型数据库的重要元素包括数据表和表连接,借助各种类型的表连接,可以将平铺直叙的信息加以组装拼接。

?

?

1Merge?Sort?Join原理机制

?

Nest Loop Join嵌套循环是一种比较古老的连接匹配方式,特点是通过两层的循环结构,将符合条件的数据行整理出来。嵌套循环的最大缺陷之一,就是伴随着驱动表被驱动表之间的选择,以及大量随机读现象。

?

?

Merge Sort Join连接的优势就是可以一定程度上减少随机读的情况。合并排序连接的最大特征是在一次扫描的同时,就判断连接。不会像Nest Loop Join那样频繁的进行数据读取。使用这种方式的前提,就是连接的两个数据集合必须按照连接列的顺序进行排序。具体操作流程如下:

?

ü???????Merge Sort Join连接而言,不存在驱动表和被驱动表的问题。两边的数据集合没有顺序区别,都要进行排序操作;

ü???????根据Oracle排序规则和方法,按照连接列的顺序对两个数据集合进行排序;

ü???????依次对两边的数据集合进行扫描,由于已经是排序过得结果,可以直接确定连接条件是否匹配;

ü???????确定进行连接的两端数据行,再依据筛选列的要求获取数据;