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

Oracle SQL优化2

Oracle SQL 的优化规
一:尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替 ,用IN写出来的SQL,的优点是比较容易写及清晰易懂,但是用IN的SQL
性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:
      ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用 IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL
就不能转换了。
      Oracle在执行IN子查询时,首先执行子查询,将查询结果放入临时表再执行主查询。而EXIST则是首先检查主查询,然后运行子查询直到找到第一个匹配项。NOT EXISTS比NOT IN效率稍高。但具体在选择IN或EXIST操作时,要根据主子表数据量大小来具体考虑。
        推荐方案:在业务密集的SQL当中尽量不采用IN操作符。不用NOT IN操作符,可以用NOT EXISTS或者外连接(+) 替代此操作          
 二: 推荐方案:用NOT EXISTS 或(外连接+判断为空)方案代替
不用“<>”或者“!=”操作符。对不等于操作符的处理会造成全表扫描,可以用“<” or “>”代替
        不等于操作符是永远不会用到索引的,因此对它的处理只会产生全表扫描。
        推荐方案:用其它相同功能的操作运算代替,如:
        1)a<>0 改为 a>0 or a<0
        2)a<>’’“ 改为 a>“”
      比如:表A里面的一个字段叫做MOBILE 里面存的记录如下
       1
       2
       3
       4
      表B里面的一个字段也叫做MOBILE里面存的记录如下
      1
      2
     


相关文档:

常见Oracle HINT的用法

 1. /*+ALL_ROWS*/
  表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
  例如:
  SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
  2. /*+FIRST_ROWS*/
  表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
  例如 ......

Oracle实现自增主键

Oracle实现自增主键
oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。
create table t_client (id number(4) primary key,
pid number(4) not null,
name varchar2(30) not null,
client_id varchar2(10),
client_level char(3),
bank_acct_no varchar2(30),
contact_tel&n ......

oracle体系结构深入学习Buffer Cache

oracle体系结构深入学习Buffer Cache - Overview
oracle 2009-09-02 23:13:26 阅读40 评论0 字号:大中小
涛涛深入学习oracle体系结构
我发觉,英文的一些技术文章在描述oracle原理非常的恰当到位,表达的非常的美,呵呵。英文不好,献丑翻译并学习了,认真看了,相信你受益匪浅。
oracle体系结构之:Buffer Cache - O ......

ORACLE函数大全

  SQL中的单记录函数
1.ASCII
返回与指定的字符对应的十进制数;
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
        A         A      ZERO   ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号