hash join anti 和 not exists

本帖最后由 shengbinqian 于 2013-9-24 14:53 编辑

请教大家一个问题: 在oracle10g使用scott用户执行
  SELECT   t1.deptno, t1.dname
        FROM     dept t1
        WHERE   not exists(SELECT t2.deptno  from emp t2 where t1.deptno=t2.deptno)

dept的主键被删除。emp存在 deptno为 null的数据., dept表中也存在deptno为null的记录

这条sql 试验的执行计划是: HASH JOIN ANTI         进行 两个表的连接。

现在问题是:不是说hash桶是不允许存放null 值的吗? 那这个sql 为什么还要使用 hash join 的反连接呢?       请那位指教下

在 处理 dept 驱动表的时候 Hash Join anit 是怎么处理 NULL 值的?

标签: 暂无标签
shengbinqian

写了 3 篇文章,拥有财富 57,被 1 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

成为第一个吐槽的人

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈