ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE的连接方式

ORACLE的连接方式

原创 Linux操作系统 作者:jingcui3210 时间:2009-01-05 22:10:18 0 删除 编辑

笛卡尔积CARTESIAN

ORACLE有三种连接方式:

MERGE JOIN,NESTED LOOP,HASH JOIN.

HASH JOIN 不可能产生CARTESIAN,因为HASH JOIN只用于相等连接。

关键字CARTESIAN只会出现在另外两个连接上。

事实上,NESTED LOOP(嵌套循环),存在一个驱动表和被驱动表,针对驱动表的每条记录去循环读取内循环被驱动表的所有记录。也就是说,如果两个NESTED LOOP的表,都是全表扫描,那就意味着此连接本身就是一个CARTESIAN。所以,在NESTED LOOP中我们是看不到CARTESIAN关键字的。

CARTESIAN关键字只会出现在MERGE JOIN(合并连接)。一般情况下,在处理CARTEDSIAN连接时,这种连接效率比NESTED LOOP要高。

SELECT /*+ USE_MERGE(T1 T2) */ * FROM T1,T2;

SELECT /*+ USE_NL(T1 T2) */ * FROM T1,T2;

NESTED LOOP中对被驱动表连接字段增加索引,可以提高效率。简单想想就明白了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13890753/viewspace-528407/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 闲扯
下一篇: 最近这看电影
请登录后发表评论 登录
全部评论

注册时间:2008-07-20

  • 博文量
    14
  • 访问量
    22110