oracle 中exits 和in的的使用
使用方法
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的的使用相关推荐
- oracle中sql函数exists,sql的exits函数
oracle的exits函数 select t.fene from fenebiao t where t.code = '001' and date = to_date('2017-07-17', ' ...
- oracle中exist什么意思,oracle中not exists 是什么意思 , oracle数据库中exists的作用
导航:网站首页 > oracle中not exists 是什么意思 , oracle数据库中exists的作用 oracle中not exists 是什么意思 , oracle数据库中exist ...
- 【数据库】Oracle中的复杂数据处理
在介绍了Oracle中的基本数据类型及相应的处理函数后,本章将介绍Oracle中较为复杂的数据处理. 接下来,本文将介绍: 1.利用聚合函数来统计数据: 2.常用技巧: 3.oracle中的基本运算: ...
- oracle 存储过程 状态,查看ORACLE中正在运行的存储过程 | 学步园
1.如何查看ORACLE中正在运行的存储过程 select owner,name from v$db_object_cache where type like '%PROCE%' and locks ...
- oracle自增列问题i,关于oracle中自增列问题
昨天去面试,面试官文oracle中有没有自增列,平时没留意,今天查了一下资料,做了个例子. oracle中没有自增列,可以设定, 但手写方法.序列或触发器都可以实现,下面是我实现的一种方法 ----- ...
- C# 实现Oracle中的数据与Excel之间的转换
最近项目要求实现数据库之间数据在各个数据库之间导入导出,在此做个笔记 1. 将Oracle中的表导入到Excel中,反之亦然 private static readonly string connec ...
- Oracle中Hint深入理解(原创)
http://czmmiao.iteye.com/blog/1478465 Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明 ...
- mysql nextval同步锁_mysql中实现类似oracle中的nextval函数
我们知道mysql中是不支持sequence的,一般是建表的时间使这个字段自增. 如 create table table_name(id int auto_increment prima ...
- 从oracle中读取图片,Pb从oracle中读取和保存图片
Pb从oracle中读取和保存图片 (2008-12-12 12:23:20) 转载 分类:编程 标签: it //保存图片 //选择文件 string pname, fname integer va ...
最新文章
- groupby+(apply+agg+transform)方法的比较
- Centos环境docker的正确安装及疑难杂症
- 用SQL语句添加删除修改字段
- SpecFlow特性介绍1-Step Definitions
- pyspark 连接mysql
- 小程序 --- 点击放大功能、获取位置信息、文字样式省略、页面跳转(navigateTo)
- artDialog对话框在PHP下的简单应用-artDialog弹出层篇
- python高阶函数闭包装饰器_Python自学从入门到就业之高阶函数、嵌套函数、闭包、装饰器...
- inputstreamreader未关闭会导致oom_ThreadLocal 一定会导致内存泄露?
- gitee图床不能用了,心态崩了
- 转:Openflashchart笔记
- vs解决方案中添加文件夹
- sqool导出oracle数据
- Xshell4简单使用
- arping指令linux,arping
- python_sklearn机器学习算法系列之LogisticRegression(逻辑回归)----识别垃圾邮件(短信)
- OC Extension Font(字体宏定义)
- 168-203-javajvm-垃圾收集器
- 前端——CSS部分总结
- 无线测速系统 便利智能交通
热门文章
- dw 如何设置网站服务器,如何使用 Dreamweaver 设置网站的本地版本
- 【Python】蒙特卡罗算法求圆面积
- Paper Reading——MoreFusion: Multi-object Reasoning for 6D Pose Estimation from Volume基于体素融合的多目标6D位姿估计
- VSCode 调试C 配置
- 感知行业风向,掌握质量脉动,腾讯WeTest发布《2020移动游戏质量白皮书》
- 2022中国绿色钢铁国际峰会
- React 阻止冒泡失效
- 完犊子!原单位的离职证明丢了,下周要入职了,用AI做一个行不行?
- Ae:常用内置抠像效果
- 解决WPF在XP上使用微软雅黑字体