日期:2014-05-16  浏览次数:20861 次

Oracle中 20万数据找出不在另一张表的数据

有一张表 企业基本信息 20万条数据, 另外有 20~30张企业信用信息表(存在企业的信用信息,主键是 企业注册号),
想在20万基本数据中 快速找出不在信用信息表中的 企业基本信息。


速度啊 一定要 效率 我用 not in 居然要 6s ,not exists 也要6s~7s 。

在线请大牛帮忙啊。



------解决方案--------------------
既然要找不存在的
不用not in和not exists
那用什么
难道用left join或minus
那会更慢

问题不是not in、not exists
应该是你关联的条件
把详细代码贴出来,大家才能帮你解决
------解决方案--------------------
用not in子查询就不用去重了
去掉distinct
union 改为union all
select yyzzzch from C_QY_GCYYXX 
union all select yyzzzch from CJ_QY_ZZJBXX 

------解决方案--------------------
加索引了吗,有索引的话,20万数据,不至于6秒吧