ORACLE执行计划之【MERGE JOIN ANTI】与【MERGE JOIN SEMI】

简要说明执行计划两者区别:

1.SQL> ALTER TABLE DEPT ADD CONSTRAINTS PK_DEPT PRIMARY KEY (deptno);

 

2.执行两次SQL 如下图所示:

3.结果:同样的SQL,因为in与not in 执行计划走了不同的链接方式,

merge join semi(也叫组合排序半连接),在外部行集,查找内部(即子查询)行集,匹配到一行就马上返回,不再往下查询。

merge join anti(也叫组合排序反连接),和semi相反,只有外部行在内部不能匹配的时候才返回。

注意:in与exists效率一样,not in 和 not exists大部分情况也是一样,实际情况要根据执行计划operation确认!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值