详细谈论Oracle表连接

数据库 Oracle
这里介绍Oracle表连接也可以被称为表关联。在后面的叙述中,我们将会使用”row source”来代替”表”,因为使用row source更严谨一些,并且将参与连接的2个row source分别称为row source1和row source 2。

经过长时间学习Oracle表连接,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。Join是一种试图将两个表结合在一起的谓词,一次只能连接2个表,Oracle表连接也可以被称为表关联。在后面的叙述中,我们将会使用”row source”来代替”表”,因为使用row source更严谨一些,并且将参与连接的2个row source分别称为row source1和row source 2。

#T#Join过程的各个步骤经常是串行操作,即使相关的row source可以被并行访问,即可以并行的读取做join连接的两个row source的数据,但是在将表中符合限制条件的数据读入到内存形成row source后,join的其它步骤一般是串行的。有多种方法可以将2个Oracle表连接起来,当然每种方法都有自己的优缺点,每种连接类型只有在特定的条件下才会发挥出其***优势。

row source(表)之间的连接顺序对于查询的效率有非常大的影响。通过首先存取特定的表,即将该表作为驱动表,这样可以先应用某些限制条件,从而得到一个较小的row source,使连接的效率较高,这也就是我们常说的要先执行限制条件的原因。一般是在将表读入内存时,应用where子句中对该表的限制条件。

根据2个row source的连接条件的中操作符的不同,可以将连接分为等值连接(如WHERE A.COL3 = B.COL4)、非等值连接(WHERE A.COL3 > B.COL4)、外连接(WHERE A.COL3 = B.COL4(+))。上面的各个连接的连接原理都基本一样,所以为了简单期间,下面以等值连接为例进行介绍。在后面的介绍中,都已:

  1. SELECT A.COL1, B.COL2  
  2. FROM A, B  
  3. WHERE A.COL3 = B.COL4; 

为例进行说明,假设A表为Row Soruce1,则其对应的连接操作关联列为COL 3;B表为Row Soruce2,则其对应的连接操作关联列为COL 4;

Oracle表连接类型:

目前为止,无论连接操作符如何,典型的连接类型共有3种:
◆排序 - - 合并连接(Sort Merge Join (SMJ) )
◆嵌套循环(Nested Loops (NL) )
◆哈希连接(Hash Join)

排序 - - 合并连接(Sort Merge Join, SMJ)内部连接过程:
1) 首先生成row source1需要的数据,然后对这些数据按照连接操作关联列(如A.col3)进行排序。
2) 随后生成row source2需要的数据,然后对这些数据按照与sort source1对应的连接操作关联列(如B.col4)进行排序。
3) ***两边已排序的行被放在一起执行合并操作,即将2个row source按照连接条件连接起来

责任编辑:佚名 来源: 博客园
相关推荐

2009-11-20 15:10:38

Oracle数据备份

2009-11-25 10:08:43

无线路由传输

2009-11-16 13:59:22

Oracle优化

2009-11-17 10:20:01

Oracle Spat

2009-11-20 17:24:57

Oracle系统比SA

2015-07-22 17:16:53

Oracle表连接

2010-09-28 09:08:40

Oracle

2009-10-23 14:58:05

VB.NET传输表空间

2009-11-03 10:09:33

Oracle表空间

2022-11-11 09:28:57

软件设计DDD

2010-04-29 09:45:16

Oracle外联接

2024-07-26 08:35:29

2009-07-23 09:31:56

数据库表连接方式

2019-07-30 13:12:22

2010-04-26 10:24:12

Oracle ASM

2010-04-06 13:33:41

Oracle服务

2021-03-17 08:12:03

架构Dotnet洋葱

2017-03-08 09:15:30

VMwareHorizon VieComposer

2019-08-20 09:46:14

DBA收藏脚本语言

2019-02-19 10:22:07

5G5G手机5G技术
点赞
收藏

51CTO技术栈公众号