14外连接(hashjoinouter)--优化主题系列

更新时间:2023-06-15 00:28:02 阅读: 评论:0

网名制作14外连接(hashjoinouter)--优化主题系列外连接在分页语句中有些特殊情况是⽆法优化的
left outer join与leftjoin等价
外连接(outerjoin)
外连接有三种,leftouter join,right outer join,full outer join。
燃灯佛舍利塔
左外连接,左表就做驱动表,右外连接,右表就做驱动表--在NL的时候
如果⾛HASH JOIN没有这个限制
如果SQL是⽤ORACLE的写法加号的另⼀边的表做驱动表
自身存在的不足
下⾯举个例⼦(基于SCOTT11gR2)
lect ename,sal,job,dname,dept.deptno
from emp right outer join dept on emp.deptno=dept.deptno wheredept.deptno in(10,20,40);
上⾯的SQL与下⾯的SQL是等价的,只是SQL写法不同
lect ename,sal,job,dname,dept.deptno
from emp,dept where dept.deptno=emp.deptno(+) and dept.deptnoin(10,20,40);
lect /*+ u_nl(emp,dept) */ ename,sal,job ,dname,dept.deptno
from emp right outer join dept on emp.deptno=dept.deptno wheredept.deptno in(10,20,40);
dept是驱动表对不对试⼀试让EMP表做驱动表并且⾛NL
是不是外连接⾛NL的时候没办法改变驱动表顺序??
宜昌景区
leading ordered都没办法更改驱动表顺序??
有left join的时候如果⾛NL 那么左表就是驱动表 rightjoin的时候右表就是驱动表
电影三大奖项
假如 A LEFTJOIN B 谁是驱动表A返回结果有10W⾏ B放回结果有100⾏这个时候咋办??让它⾛HASH JOIN试试想让EMP作为驱动表
/*+swap_join_input(emp)*/ ⽤这个HINT是可以的
这个HINT 还有⼀个作⽤就是多个表JOIN的时候能制定哪个表作为驱动表
A JOIN
B 其中A表10GB B表100MB 你让A作为驱动表⾛HASH JOIN是不是很慢??HASH JOIN 会对驱动表在PGA中进⾏HASH算法 10GB PGA是放不下的
PGA中⼀个进程最多才2GB 另外 SORTMERGE JOIN其实也分驱动表
电影降临
其实所有的join都要分驱动表 NL也是
桃花源记教案如果⾛NL 谁主动约谁谁就在上⾯
如果⾛HASH JOIN可以⽤swap_join_inputs这个HINT 去交换驱动表顺序
过背金龙鱼
假设 A JOIN BJOIN C JOIN D 他们都⾛HASHJOIN 现在要C作为驱动表
提问如果SQL当中有外连接+ 该怎么办??
先看JOIN⽅式再看驱动表⼤⼩

本文发布于:2023-06-15 00:28:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1038827.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:驱动   连接   时候   顺序   电影   办法   作为   限制
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图