在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历).  为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS.

例如:

SELECT …

FROM EMP

WHERE DEPT_NO NOT IN (SELECT DEPT_NO

FROM DEPT

WHERE DEPT_CAT=’A’);

为了提高效率.改写为:

(方法一: 高效)

SELECT ….

FROM EMP A,DEPT B

WHERE A.DEPT_NO = B.DEPT(+)

AND B.DEPT_NO IS NULL

AND B.DEPT_CAT(+) = ‘A’

(方法二: 最高效)

SELECT ….

FROM EMP E

WHERE NOT EXISTS (SELECT ‘X’

FROM DEPT D

WHERE D.DEPT_NO = E.DEPT_NO

AND DEPT_CAT = ‘A’);

最新文章

  1. codeforces round #234B(DIV2) C Inna and Huge Candy Matrix
  2. Selenium Waits
  3. Codeforces Round #336 (Div. 2)B. Hamming Distance Sum 前缀和
  4. HFile解析 基于0.96
  5. MvvmCross[翻译] 使用Xamarin与MvvmCross完成一个跨平台App
  6. asp.net web.config的学习笔记
  7. 关于Get和Post的学习笔记(五)
  8. Android杂谈--ListView之BaseAdapter的使用
  9. 为什么ajax 必须同源,same origin policy
  10. [转]Wing IDE 6.0 安装及算号器注册机代码
  11. freemarker中的left_pad和right_pad(十五)
  12. 关系型数据库工作原理-高速缓存(翻译自Coding-Geek文章)
  13. 【alpha阶段】第八次Scrum Meeting
  14. 浅谈Kubernetes生产架构
  15. GAN试验记录.
  16. Js高级程序设计~读书笔记
  17. 【HDU - 5790 】Prefix(主席树+Trie树)
  18. js中的值类型和引用类型的区别
  19. ERP产品购进批量提交文件(三十六)
  20. log下一次坑爹的疏忽

热门文章

  1. day38 05-Spring的BeanFactory与ApplicationContext区别
  2. IO 性能 $ iostat -kx 2$ vmstat 2 10$ mpstat 2 10$ dstat --top-io --top-bio
  3. jmeter 通过csv data set config 设置参数化后,执行结果显示为<EOF>
  4. Hdu 1269 强连通判定
  5. 从0开始学习 GitHub 系列之「06.团队合作利器 Branch」
  6. 注解2 --- 自定义 Annotation --- 技术搬运工(尚硅谷)
  7. phpinfo空白
  8. objectarx之判断三点是否在一条直线上
  9. bzoj1221 软件开发
  10. 微信小程序组件——详解wx:if elif else的用法