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

来源:asp之家 时间:2009-08-27 10:07:00 

把这两个很普遍性的网友比较关心的问题总结回答一下。

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就要具体看情况了
有时间用具体的实例和执行计划来说明。

标签:Oracle,数据库
0
投稿

猜你喜欢

  • asp sqlserver 执行存储过程返回记录集报对象关闭时不允许操作

    2011-03-11 10:57:00
  • asp更改Windows2000管理者密码?

    2010-06-26 11:03:00
  • 你是一个职业的页面重构工作者吗?

    2008-09-29 12:07:00
  • 自定义数据库自动编号初始值和步进值

    2009-05-19 10:00:00
  • 合理利用页面标签元素有利用搜索引擎收录

    2008-11-03 11:49:00
  • ASP在线转flv+缩略图

    2007-08-27 16:18:00
  • Mootools 1.2教程(15)——滚动条(Slider)

    2008-12-09 17:35:00
  • MySQL中随机生成固定长度字符串的方法

    2010-12-08 16:25:00
  • hover悬停放大的翻页效果

    2008-05-19 12:20:00
  • 解析SQL Server中数据库快照的工作原理

    2009-02-19 17:04:00
  • div遮罩层实现实例代码

    2009-01-11 18:38:00
  • 小谈访客浏览器分辨率

    2007-10-18 13:12:00
  • 如何获取机器的网络配置属性?

    2009-11-23 20:44:00
  • Win7的IIS7中ASP获得的系统日期格式为斜杠的解决办法

    2012-12-04 19:57:33
  • 语言化H1标签

    2008-01-11 13:54:00
  • Logo 设计准则[译]

    2009-07-22 21:05:00
  • 关于Dreamweaver乱码问题的解决方案

    2010-09-02 12:36:00
  • Select 控件Combox加强版(IE Only)

    2008-07-23 13:26:00
  • 利用ASP实现事务处理的方法

    2010-05-11 16:53:00
  • 13个超酷的js显示时间效果

    2007-08-30 09:52:00
  • asp之家 网络编程 m.aspxhome.com