使用方法

in在查询的时候,先查询子查询的表,然后将内标和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。

exists在查询的时候,先查询外表,外表执行完后,根据查出来的每一条记录,执行子查询,依次判断where后面的条件是否成立,如果成立则返回true,不成立则返回false。如果返回true的话,则改行结果保留,如果返回false的话,则删除该行,最后将得到的结果返回。

 in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了 ,另外IN时不对NULL进行处理。

    in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。

not in 和not exists

    如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。

oracle 中exits 和in的的使用相关推荐

  1. oracle中sql函数exists,sql的exits函数

    oracle的exits函数 select t.fene from fenebiao t where t.code = '001' and date = to_date('2017-07-17', ' ...

  2. oracle中exist什么意思,oracle中not exists 是什么意思 , oracle数据库中exists的作用

    导航:网站首页 > oracle中not exists 是什么意思 , oracle数据库中exists的作用 oracle中not exists 是什么意思 , oracle数据库中exist ...

  3. 【数据库】Oracle中的复杂数据处理

    在介绍了Oracle中的基本数据类型及相应的处理函数后,本章将介绍Oracle中较为复杂的数据处理. 接下来,本文将介绍: 1.利用聚合函数来统计数据: 2.常用技巧: 3.oracle中的基本运算: ...

  4. oracle 存储过程 状态,查看ORACLE中正在运行的存储过程 | 学步园

    1.如何查看ORACLE中正在运行的存储过程 select owner,name from v$db_object_cache where type like '%PROCE%' and locks ...

  5. oracle自增列问题i,关于oracle中自增列问题

    昨天去面试,面试官文oracle中有没有自增列,平时没留意,今天查了一下资料,做了个例子. oracle中没有自增列,可以设定, 但手写方法.序列或触发器都可以实现,下面是我实现的一种方法 ----- ...

  6. C# 实现Oracle中的数据与Excel之间的转换

    最近项目要求实现数据库之间数据在各个数据库之间导入导出,在此做个笔记 1. 将Oracle中的表导入到Excel中,反之亦然 private static readonly string connec ...

  7. Oracle中Hint深入理解(原创)

    http://czmmiao.iteye.com/blog/1478465 Hint概述  基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明 ...

  8. mysql nextval同步锁_mysql中实现类似oracle中的nextval函数

    我们知道mysql中是不支持sequence的,一般是建表的时间使这个字段自增. 如       create table table_name(id int auto_increment prima ...

  9. 从oracle中读取图片,Pb从oracle中读取和保存图片

    Pb从oracle中读取和保存图片 (2008-12-12 12:23:20) 转载 分类:编程 标签: it //保存图片 //选择文件 string pname, fname integer va ...

最新文章

  1. groupby+(apply+agg+transform)方法的比较
  2. Centos环境docker的正确安装及疑难杂症
  3. 用SQL语句添加删除修改字段
  4. SpecFlow特性介绍1-Step Definitions
  5. pyspark 连接mysql
  6. 小程序 --- 点击放大功能、获取位置信息、文字样式省略、页面跳转(navigateTo)
  7. artDialog对话框在PHP下的简单应用-artDialog弹出层篇
  8. python高阶函数闭包装饰器_Python自学从入门到就业之高阶函数、嵌套函数、闭包、装饰器...
  9. inputstreamreader未关闭会导致oom_ThreadLocal 一定会导致内存泄露?
  10. gitee图床不能用了,心态崩了
  11. 转:Openflashchart笔记
  12. vs解决方案中添加文件夹
  13. sqool导出oracle数据
  14. Xshell4简单使用
  15. arping指令linux,arping
  16. python_sklearn机器学习算法系列之LogisticRegression(逻辑回归)----识别垃圾邮件(短信)
  17. OC Extension Font(字体宏定义)
  18. 168-203-javajvm-垃圾收集器
  19. 前端——CSS部分总结
  20. 无线测速系统 便利智能交通

热门文章

  1. dw 如何设置网站服务器,如何使用 Dreamweaver 设置网站的本地版本
  2. 【Python】蒙特卡罗算法求圆面积
  3. Paper Reading——MoreFusion: Multi-object Reasoning for 6D Pose Estimation from Volume基于体素融合的多目标6D位姿估计
  4. VSCode 调试C 配置
  5. 感知行业风向,掌握质量脉动,腾讯WeTest发布《2020移动游戏质量白皮书》
  6. 2022中国绿色钢铁国际峰会
  7. React 阻止冒泡失效
  8. 完犊子!原单位的离职证明丢了,下周要入职了,用AI做一个行不行?
  9. Ae:常用内置抠像效果
  10. 解决WPF在XP上使用微软雅黑字体