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

Oracle select in/exists/not in/not exits

in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那么用in和exists差别不大。
in 是把外表和内表作hash
连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那么用in和exists差别不大。
如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:
例如:表A(小表),表B(大表)
1:
select * from A where cc in (select cc from B)
效率低,用到了A表上cc列的索引;
select * from A where exists(select cc from B where
cc=A.cc)
效率高,用到了B表上cc列的索引。
相反的
2:
select * from B where cc in (select cc from A)
效率高,用到了B表上cc列的索引;
select * from B where exists(select cc from A where
cc=B.cc)
效率低,用到了A表上cc列的索引。
not in 和not exists
如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;
而not extsts 的子查询依然能用到表上的索引。
所以无论那个表大,用not exists都比not in要快。
in 与 =的区别
select name from student where name in
('zhang','wang','li','zhao');

select name from student where name='zhang' or
name='li' or name='wang' or name='zhao'
的结果是相同的。
 
http://blog.163.com/sz_putishu/blog/static/121826854200963131426178/


相关文档:

Oracle object学习笔记 1

 1 聚集(cluster)
1.1 概念:
用于将不同表中的数据存储到相同的物理数据块中,用于多表数据需要频繁进行联合查询的情况下。多表数据存储在相同数据块后,在对对表进行联合查询时,所需读取的物理块数减少,从而提高查询性能。
需要注意的是对聚集中单表的查询和对聚集中表数据进行修改或插入等事务操作时,性能将� ......

Oracle AWR速查

 SQL> SQLPLUS / AS SYSDBA
SQL> exec dbms_workload_repository.create_snapshot
SQL> exec:snap_id:=dbms_workload_repository.create_snapshot
SQL> var snap_id number
SQL> print snap_id
SQL> @?/rdbms/admin/awrrpt.sql
OracleAWR速查
 
1.查看当前的AWR保存策略
select * fro ......

Oracle start with ... connect by prior 用法

 语法:
select *
from 表名
where 条件1
start with 条件2
connect by prior 当前表字段=级联表字段
start with与connect by prior语句完成递归记录,形成一棵树形结构,通常可以在具有层次结构的表中使用。
start with表示开始的记录
connect by prior 指定与当前记录关联时的字段关系
代码:
--创建部门� ......

Oracle笔记——转贴

声明:以下内容转自 http://www.weixiuwang.com/Article/server/tech/200610/22126.html
1. 查询正在执行语句的执行计划(也就是实际语句执行计划)
    select * from v$sql_plan where hash_value = (select sql_hash_value from v$session where sid = 1111);
    其中id和parent_id表示 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号