`
anreddy
  • 浏览: 99195 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle exists 和 in 的真正区别

阅读更多
例: select  * from emp_tax;

1: 内表必须要和外表连接。

    select *
       from emp_tax o
    where exists (select *
                                from emp_tax i
                             where i.empno = o.empno
                                 and i.empno < 0005);



    exists 适合外表的结果集小的情况。因为in 是把外表和那表作hash join,而exists是对外表作loop,每次loop再对那表进行查询。
    当 exists 中的 where 后面条件为真的时候则把前面select 的内容显示出来(外表的select ).

    这样的话,in适合内外表都很大的情况,exists适合外表结果集很小的情况。

http://blog.csdn.net/mantisXF/archive/2007/07/06/1680481.aspx
分享到:
评论

相关推荐

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

    in和exist的区别 从sql编程角度来说,in直观,exists不直观多一个select, in可以用于各种子查询,而exists好像只用于关联子查询 从性能上来看 exists是用loop的方式,循环的次数影响大,外表要记录数少,内表就...

    oracle查询优化

    在涉及子查询的场景中,EXISTS关键字通常比IN提供更好的性能,特别是在子查询返回大量行的情况下。这是因为EXISTS只需找到一个匹配即可返回真,而IN则需要遍历整个子查询结果集。因此,在设计查询时,优先考虑使用...

    ORACLE索引与高性能SQL介绍

    在IT行业的数据库管理领域,Oracle数据库因其强大的功能和性能,被广泛应用于企业级的数据管理和处理。其中,Oracle索引和高性能SQL是优化数据库查询效率、提升数据处理速度的关键技术点。以下将对这两个主题进行...

    oracle 性能设计及优化

    ### Oracle 性能设计及优化 #### 一、理解Oracle性能优化 在Oracle数据库的管理和维护过程中,性能优化是一项至关重要的工作。...只有综合运用这些知识和技术,才能真正实现Oracle数据库的高性能运作。

    oracle删除重复记录

    本文介绍了在Oracle数据库中如何有效识别和删除重复记录的方法。通过对表中的数据进行适当的清理,不仅可以提高数据质量,还能节省存储资源。希望本文能帮助您更好地管理和维护Oracle数据库中的数据。

    oracle sql 优化

    #### IN 和 EXISTS 的区别 虽然 `IN` 和 `EXISTS` 都可以用来检查某个值是否存在于另一个表中,但它们在性能上有所不同。一般来说,`EXISTS` 的性能更好,因为它一旦找到匹配项就会停止搜索,而 `IN` 则需要完全...

    oracle函数详解

    Pseudo Columns是Oracle提供的一种特殊类型的列,它们并不真正存储在表中,但在某些情况下非常有用: - **CURRVAL 和 NEXTVAL**: 主要用于序列对象,例如 `NEXTVAL` 用来获取序列的下一个值。 - **LEVEL**: 用于生成...

    oracle详解

    导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...

    oracle中使用group by优化distinct

    5. **使用`IN`代替`JOIN`**:如果`JOIN`只是为了筛选特定的匹配行,尝试使用`IN`或`EXISTS`子句,这通常比`JOIN`更高效。 6. **考虑使用汇总表**:对于频繁的查询,可以预先计算和存储结果,创建汇总表,然后直接...

    SQL优化教程

    - **使用EXISTS替代IN**:当子查询返回单个值时,EXISTS通常比IN更高效。 - **避免使用NOT IN**:可改用LEFT JOIN并检查NULL值。 - **使用UNION ALL代替UNION**:UNION会去重,可能导致排序,UNION ALL则不进行...

    SQL性能优化以及索引的优化

    理解并合理使用SQL内置函数和操作符,如IN、EXISTS等。 2. **使用适当的JOIN类型**:根据数据关系选择INNER JOIN、LEFT JOIN、RIGHT JOIN或FULL JOIN。正确使用JOIN条件,避免全表扫描。 3. **减少SELECT列数**:...

    CrackingTheSQLInterview:SQL面试问题汇编-http://xoraus.github.ioCrackingTheSQLInterview

    - 子查询:嵌套查询,使用IN、EXISTS、NOT EXISTS进行条件判断。 - 分析函数:RANK()、DENSE_RANK()、ROW_NUMBER()进行行编号,LEAD()和LAG()获取相邻行数据,FIRST_VALUE()和LAST_VALUE()获取首尾值。 - 分区...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    因此你必须有办法将两者区别开来。以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法! 从HTML中分离 以下是可以使用的方法: &lt;script language="php"&gt; . . . 语句 与Perl...

    整理后java开发全套达内学习笔记(含练习)

    exist 存在, 发生 [ig'zist] '(SQL关键字 exists) extends (关键字) 继承、扩展 [ik'stend] false (关键字) final (关键字) finally (关键字) fragments 段落; 代码块 ['frægmәnt] FrameWork [java] 结构,...

    springmybatis

    下面开始真正配置mybatis项目了。 1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用如下方式建立,鼠标右键点击 JavaResource. 2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立...

Global site tag (gtag.js) - Google Analytics