Oracle In和exists not in和not exists的比较分析
来源:asp之家 发布时间:2009-08-27 10:07:00
标签:Oracle,数据库
把这两个很普遍性的网友比较关心的问题总结回答一下。
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就要具体看情况了
有时间用具体的实例和执行计划来说明。
0
投稿
猜你喜欢
- Timer: 隔一定时间调用一个函数,如果想实现每隔一段时间就调用一个函数的话,就要在Timer调用的函数中,再次设置Timer。Timer
- 四年前写的一个内容管理系统,应用在公司内部网上,昨天DBA说其中的SQL语句未使用参数化的调用,导致服务器负担加重,资源占用大。并列出了几个
- 本文实例为大家分享了JS实现京东快递单号查询的具体代码,供大家参考,具体内容如下<!DOCTYPE html><html
- Pythonpython 真的太好用了,但是它真的好慢啊(哭死) ; C++ 很快,但是真的好难写啊,此生能不碰它就不碰它。老天啊,有没有什
- NumPy什么是NumPyNumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函
- '$.browser.msie' 为空或不是对象,这个是jQuery错误出现这个错误,是因为升级了jQuery版本,从1.9
- Vue路由跳转传参或打开新页面跳转1. 通过路由中的name属性 使用params传递参数, 使用this.$route.para
- TCP 客户端一个使用TCP协议实现可连续对话的客户端示例代码:import socket# 客户端配置HOST = 'localh
- python在进行字符串的拼接时,一般有两种方法,一种是使用+直接相加,另一种是使用joina = "tests"b =
- 原本运行正常的ASP页面,今天突然提示: 代码如下: Microsoft VBScript 运行时错误 错误 '800a01a8&
- Python是一门简单易学的编程语言。阅读好的Python程序感觉就像阅读英语,尽管是非常严格的英语。Python的这种伪代码特性是其最大强
- DataGrip支持几乎所有主流的关系数据库产品,如DB2、Derby、H2、MySQL、Oracle、PostgreSQL、SQL Ser
- 前言:func DeepEqual(x, y interface{}) boolDeepEqual 函数的参数是两个 i
- 1、说明当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方。如果传递到主程序,仍然没有异常处理,程序才会被终止。2、实例def d
- 最近写的资源策略管理,在ceilometer 中创建alarm时,name要求是不能重复的,所以在创建policy的时候,要对policy的
- 现在浏览器种类也越来越多,诸如 IE、Firefox、Chrome、Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一
- 前言首先,一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?ECMAScript是一个国际通过的标准化脚本语
- MySQL从5.1开始支持event功能,类似oracle的job功能。有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用
- 在Flask页面展示echarts,主要有两种方法:方法1、原生echarts方法自己在前端引入echarts.js文件、自己创建div、自
- 首先看一下目标的验证形态是什么样子的是一种通过验证推理的验证方式,用来防人机破解的确是很有效果,但是,But,这里面已经会有一些破绽,比如: