Oracle In和exists not in和not exists的比较分析

 更新时间:2009年08月27日 00:50:33   作者:  
一个是问in exist的区别,一个是not in和not exists的区别
把这两个很普遍性的网友比较关心的问题总结回答一下。

in和exist的区别

从sql编程角度来说,in直观,exists不直观多一个select,
in可以用于各种子查询,而exists好像只用于关联子查询

从性能上来看
exists是用loop的方式,循环的次数影响大,外表要记录数少,内表就无所谓了

in用的是hash join,所以内表如果小,整个查询的范围都会很小,如果内表很大,外表如果也很大就很慢了,这时候exists才真正的会快过in的方式。

not in和not exists的区别

not in内外表都进行全表扫描,没有用到索引;
not extsts 的子查询能用到表上的索引。

所以推荐用not exists代替not in

不过如果是exists和in就要具体看情况了

有时间用具体的实例和执行计划来说明。

相关文章

  • Flume监听oracle表增量的步骤详解

    Flume监听oracle表增量的步骤详解

    这篇文章主要介绍了Flume监听oracle表增量的步骤详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • ORACLE出现错误1033和错误ORA-00600的解决方法

    ORACLE出现错误1033和错误ORA-00600的解决方法

    这篇文章主要介绍了ORACLE出现错误1033和错误ORA-00600的解决方法,需要的朋友可以参考下
    2014-07-07
  • oracle数据库中sql%notfound的用法详解

    oracle数据库中sql%notfound的用法详解

    SQL%NOTFOUND 是一个布尔值。下面通过本文给大家分享oracle数据库中sql%notfound的用法,需要的的朋友参考下吧
    2017-06-06
  • oracle去除空格的三种方式举例总结

    oracle去除空格的三种方式举例总结

    这篇文章主要介绍了oracle去除空格的三种方式,分别是使用TRIM()函数去除字符串两端空格,使用REPLACE()函数替换掉所有空格,以及利用REPLACE()结合CHR()函数去除制表符、换行符、回车符和空格符,这些方法帮助优化字符串处理,需要的朋友可以参考下
    2024-11-11
  • Oracle 9i产品文档

    Oracle 9i产品文档

    Oracle 9i产品文档...
    2007-03-03
  • Oracle数据库复杂度设置图文教程

    Oracle数据库复杂度设置图文教程

    这篇文章主要给大家介绍了关于Oracle数据库复杂度设置的相关资料,Oracle可以通过设置密码复杂度来提高数据库的安全性,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • oracle备份恢复的具体方法

    oracle备份恢复的具体方法

    这篇文章介绍了oracle备份恢复的具体方法,有需要的朋友可以参考一下
    2013-10-10
  • Oracle 11g简体中文版安装图文教程

    Oracle 11g简体中文版安装图文教程

    这篇文章主要以图文结合的方式为大家介绍了Oracle 11g简体中文版的安装过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Oracle层次查询和with函数的使用示例

    Oracle层次查询和with函数的使用示例

    下面我跟大家分享下我的心得,也就是基于这种设计怎么做数形图,简单的做法就是查询出一个list集合就可以,要怎么办呢先来看下我的数据表
    2013-07-07
  • oracle 11g的安装注意事项总结

    oracle 11g的安装注意事项总结

    这篇文章主要给大家介绍了关于oracle 11g的安装注意事项,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论