易截截图软件、单文件、免安装、纯绿色、仅160KB

比较Oracle SQL中的IN & EXISTS

在Oracle SQL中取数据时有时要用到in 和 exists 那么他们有什么区别呢?
1 性能上的比较
比如Select * from T1 where x in ( select y from T2 )
执行的过程相当于:
select *
  from t1, ( select distinct y from t2 ) t2
 where t1.x = t2.y;
相对的
select * from t1 where exists ( select null from t2 where y = x )
执行的过程相当于:
for x in ( select * from t1 )
   loop
      if ( exists ( select null from t2 where y = x.x )
      then
         OUTPUT THE RECORD
      end if
end loop
表 T1 不可避免的要被完全扫描一遍
分别适用在什么情况?
以子查询 ( select y from T2 )为考虑方向
如果子查询的结果集很大需要消耗很多时间,但是T1比较小执行( select null from t2 where y = x.x )非常快,那么exists就比较适合用在这里
相对应得子查询的结果集比较小的时候就应该使用in.
2 含义上的比较
在标准的scott/tiger用户下
   
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
1
7499
ALLEN
SALESMAN
7698
1981/02/20
1600.00
300.00
30
2
7521
WARD
SALESMAN
7698
1981/02/22
1250.00
500.00
30
3
7566
JONES
MANAGER
7839
1981/04/02
2975.00
20
4
7654
MARTIN
SALESMAN
7698
1981/09/28
1250.00
1400.00
30
5
7698
BLAKE
MANAGER
7839
1981/05/01
2850.00
30
6
7782
CLARK
MANAGER
7839
1981/06/09
2450.00
10
7
7788
SCOTT
ANALYST
7566
1987/04/19
3000.00
20
8
7839
KING
PRESIDENT
 
1981/11/17
5000.00
10
9
7844
TURNER
SALESMAN
7698
1981/09/08
1500.00
0.00
30
10
7876
ADAMS
CLERK
7788
1987/05/23
1100.00
20
11
7900
JAMES
CLERK
7698
1981/12/03
950.00
30
12
7902
FORD
ANALYST
7566
1981/12/03
3000.00
20
13
7934
MILLER
CLERK
7782
1982/01/23
1300.00
 
10
执行
SQL> select count(*) from emp where empno not in ( select mgr from emp );
COUNT(


相关文档:

oracle 锁 (查询/解锁语句)

通过 select * from table whereid=16701 for update 锁住一张表
通过以下语句可查询出被锁住的对象
SELECT OBJECT_ID,
       SESSION_ID,
       SERIAL#,
       ORACLE_USERNAME,
     &nb ......

oracle, stored procedure, cursor

CREATE OR REPLACE PROCEDURE kevin_proc(x varchar) IS
a VARCHAR(20);
b VARCHAR(20);
CURSOR mycur(rn NUMBER) IS SELECT * from t_kevin_test WHERE ROWNUM<rn;
BEGIN
OPEN mycur(10);
LOOP FETCH mycur INTO a,b;
EXIT WHEN mycur%NOTFOUND;
Dbms_Output.put_line('a: '||a);
Dbms_Output.put_line('b: '| ......

在Windows 7 下安装 Oracle 10g 过程

(红色部分为修改内容)
第一步,在磁盘下建一个文件夹,注意不要有空格,否则oracle安装时会出现警告。
第二步,用于进入安装界面后,检测环境在安装文件夹里搜索 "refhost.xml",共2个文件。
用记事本打开,看到
 <!--Microsoft Windows vista-->
  <OPERATING_SYSTEM>
  &l ......

oracle服务硬件升级 调整参数

author:skate
time:2010-05-13
1)If memory increases and you're 64-bit,  e.g  8G to 16G,  Oracle SGA and related parameters need adjust; So are some the Unix kernel parameters.
2)As for CPU related configuration,  some  parameters, based on CPU_co ......

ORACLE体系结构 实例

ORACLE实例有系统全局区(SGA)和一些后台进程组成.
系统全局区(SGA)有共享池(shared pool),数据库高速缓冲区(database buffer cache),重做日志缓冲区(redo log buffer).共享池又有库高速缓存(library cache)和数据字典高速缓存(dictionary cache)组成。
ORACLE 实例5个必需的后台进程:SMON,PMON,DBWR,LGWR, ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号