当前位置: 代码迷 >> Oracle开发 >> 用什么步骤可以提高Not in的效率
  详细解决方案

用什么步骤可以提高Not in的效率

热度:66   发布时间:2016-04-24 07:58:21.0
用什么方法可以提高Not in的效率?
分别有两个表A和B,表B中的记录包含表A中的记录,且比表A多。如何查找出表B中不存在于表A中的记录。

用not   in可以找出,但是效率太低了,如果涉及表A、表B记录量很多的话,更是跑不出来。
例如   :
select   B.*   from   A,B   where   B.key_id   not   in   (
select   A.key_id   from   A
)

有其他高效的方法吗?外联?NOT   Exist?

------解决方案--------------------
不好意思提示写错了,记住了。只有在数据量很大的时候才使用提示,这样才可以邮箱的改变执行计划。
select /*+ use_hash(a,b)*/
b.*
from a,b
where a.key_id=b.key_id(+)
and b.key_id is null
------解决方案--------------------
a.key_id=b.key_id(+)
and b.key_id is null
是最快的方法
  相关解决方案