ITPub博客

首页 > Linux操作系统 > Linux操作系统 > in , exists , not in , not exists 尽量使用exists 而不是in

in , exists , not in , not exists 尽量使用exists 而不是in

原创 Linux操作系统 作者:tolywang 时间:2010-03-14 23:25:15 0 删除 编辑

提示:我在做优化sql时,经常碰到使用in的语句,这时我们一定要用exists把它给换掉,因为Oracle在处理In时是按Or的方式做的,即使使用了索引也会很慢。

比如:

SELECT col1,col2,col3 FROM table1 a
WHERE a.col1 not in (SELECT col1 FROM table2)

可以换成:

SELECT col1,col2,col3 FROM table1 a
WHERE not exists
(SELECT 'x' FROM table2 b
WHERE a.col1=b.col1)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/35489/viewspace-629470/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: (zt)Oracle性能调整
请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    14695628