Oracle语句优化1

优化就是选择最有效的方法来执行SQL语句。Oracle优化器选择它认为最有效的  
  方法来执行SQL语句。  
   
  1. IS   NULL和IS   NOT   NULL  
  如果某列存在NULL值,即使对该列建立索引也不会提高性能。  
  2. 为不同的工作编写不同的SQL语句块。  
  为完成不同的工作编写一大块SQL程序不是好方法。它往往导致每个任务的结果不优  
  化。若要SQL完成不同的工作,一般应编写不同的语句块比编写一个要好。  
  3. IN   和EXISTS  
  Select   name   from   employee   where   name   not   in   (select   name   from   student);  
  Select   name   from   employee   where   not   exists   (select   name   from   student);  
  第一句SQL语句的执行效率不如第二句。  
  通过使用EXISTS,Oracle会首先检查主查询,然后运行子查询直到它找到第一个匹配  
  项,这就节省了时间。Oracle在执行IN子查询时,首先执行子查询,并将获得的结果  
  列表存放在一个加了索引的临时表中。在执行子查询之前,系统先将主查询挂起,待  
  子查询执行完毕,存放在临时表中以后再执行主查询。这也就是使用EXISTS比使用IN  
  通常查询速度快的原因。  
  4. NOT   运算符  
  Select   *   from   employee   where   salary<>1000;  
  Select   *   from   employee   where   salary<1000   or   salary>1000;  
  第一句SQL语句的执行效率不如第二句,因为第二句SQL语句可以使用索引。  
  5. Order   By   语句  
  Order   By   语句的执行效率很低,因为它要排序。应避免在Order   By   字句中使用表达式。  
  6. 列的连接  
  select   *   from   employee   where   name||department=’ZYZBIOINFO’;  
  select   *   from   employee   where   name=’ZYZ’   and   department=’BIOINFO’;  
  这两个查询,第二句比第一句会快,因为对于有连接运算符’||’的查询,Oracle优化器是不  
  会使用索引的。  
  7. 通配符‘%’当通配符出现在搜索词首时,Oracle优化器不使用索引。  
  Select   *   from   employee   where   name   like   ‘%Z%’;  
  Select   *   from   employee   where   name   like   ‘Z%’;  
  第二句的执行效率会比第一句快,但查询结果集可能会不同。  
  8. 应尽量避免混合类型的表达式。  
  假设字段studentno为VARCHAR2类型  
  有语句select   *   from   student   where   studentno>123;  
  则Oracle会有一个隐含的类型转换。隐含的类型转换可能会使Oracle优化器忽略索引。  
  这时应使用显式的类型转换select   *   from   student   where   studentno=to_char(123)。  
  9.DISTINCT  
        DISTINCT总是建立一个排序,所以查询速度也慢。

Oracle语句优化1的更多相关文章

  1. 53个Oracle语句优化规则详解(转)

    Oracle sql 性能优化调整  1. 选用适合的ORACLE优化器        ORACLE的优化器共有3种:a. RULE (基于规则)   b. COST (基于成本) c. CHOOSE ...

  2. oracle 语句优化

    1. 选用适合的ORACLE优化器         ORACLE的优化器共有3种: a. RULE (基于规则)   b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可 ...

  3. Oracle语句优化规则(一)

    1. 选用适合的ORACLE优化器     ORACLE的优化器共有3种:    a. RULE (基于规则)   b. COST (基于成本) c. CHOOSE (选择性)     设置缺省的优化 ...

  4. Oracle语句优化规则(二)

    21.       用EXISTS替换DISTINCT 当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT. 一般可以考虑用EXIST替换  例如: ...

  5. oracle语句优化

    摘录来自https://blog.csdn.net/sap_jack/article/details/3766703 1.选用适合的Oracle优化器 Oracle的优化器共有3种: a.RULE(基 ...

  6. Oracle语句优化之一

    public List<TdDepartment> createZtreeDep(String compId) { List<TdDepartment> dd = new Ar ...

  7. oracle学习 十 数据库的语句优化(持续更)

    平时关注Oracle数据库的网友都知道,Oracle性能优化保证了Oracle数据库的健壮性.下面就此提出需要注意的两个原则.   原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的 ...

  8. oracle之sql语句优化

    oracle之sql语句优化 sql语句的优化 1.在where子句中使用 is null 或 is not null 时,oracle优化器就不能使用索引了. 2.对于有连接的列,即使最有一个是静态 ...

  9. Oracle SQL语句优化34条

    非常好用的SQL语句优化34条 1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 dri ...

随机推荐

  1. mysqldump: Couldn't execute 'show events': Cannot proceed because system tables used by Event Schedu

    最近将老版本的mysql 实例倒入 percona 5.5.30,使用的是线上的全备,结果将mysql 库下的表也倒入了,这下可悲剧了,备份报错. 没办法,将mysql库下的数据倒出来,清空,再倒入p ...

  2. => 朗姆达表达式带入符号

    => 是朗姆达表达式中的用法,是指向的意思具体就是是把=>左边声明的变量带入到=>右边的表达式或者代码段里.

  3. vc++笔记十一

    一.LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 连接器LNK是通过调用cvtres.exe完毕文件向coff格式的转换的,所以出现这样的错误的原因就是cvtres.exe出现了问题 ...

  4. 设计Mysql索引的原则

    1. 搜索的索引列,不一定是所要选择的列.换句话说,最适合索引的列是出如今WHERE 子句中的列,或连接子句中指定的列,而不是出如今SELECT keyword后的选择列表中的列. 2. 使用惟一索引 ...

  5. SQL声明大全

    1.随机选择3记录     select top 3 * from tablename newid() 2.随机选记录     select newid(). 3.删除反复记录 1) delete f ...

  6. jquery省市区三级联动

    jquery省市区三级联动(数据来源国家统计局官网)内附源码下载 很久很久没有写博了. 今天更新了项目的省市区三级联动数据,更新后最新的海南三沙都有,分享给所有需要的小伙伴们... JQUERY + ...

  7. jQuery插件主要有两种扩展方式

    jQuery插件主要有两种扩展方式: 扩展全局函数方式. 扩展对象方法方式. 扩展全局函数方式 扩展全局函数方式定义的插件,即类级别插件,可以通过jQuery.extend()来进行定义.定义格式为: ...

  8. C#的WebBrowser控制浏览

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  9. QUIC简要

    QUIC.即Quick UDP Internet Connection,类似于SPDY,相同也是由Google公司在现有已存协议之上进行了扩展设计,而旨在降低网络延迟.之前我曾介绍过SPDY的相关信息 ...

  10. ueditor使用注意事项

    1.js问题的介绍 第一ueditor型材 <script type="text/javascript" src="ueditor1_4_3-utf8-jsp/ue ...