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. 解决SMARTFORMS 中table 控件单行跨页的问题

    在CX项目中,MM模块做了大量的的单据打印的工作,一个问题困扰了我好久,一直不能解决.当物料描述很长时,table控件在单元格中能自动换行,这样就有可能在换页处出现一行记录的一部分打在上一页,一部分记 ...

  2. MySQL中数据表的增操作

    今天学习到表的增操作,写个博客总结一下,PS:以下所有的凝视都是我在电脑上所有操作完毕后,再拷贝到记事本上加入的.至于在运行的时候可不能够那样加入凝视,就有待考证了. 选择库 mysql> sh ...

  3. mysql 插入Emoji表情报错

    今天做的了个获取微信粉丝的功能,发现将昵称插入数据库报错.长度肯定是够的 Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F 找了点资料发现UTF-8编 ...

  4. String类疑虑

    Java String类疑虑: 创 拼接 String是java的经常使用类之中的一个,本质是字符数组char[].String类是final类,不可被继承. 关于String的创建,能够通过new来 ...

  5. 我收集的sonar参考资料

    sonarQube代码质量管理工具环境筹建笔记 http://www.myexception.cn/open-source/1307345.html 配置sonar.jenkins进行持续审查 htt ...

  6. poj3928 Ping pong 树状数组

    http://poj.org/problem?id=3928 Ping pong Time Limit: 1000MS   Memory Limit: 65536K Total Submissions ...

  7. IntelliJ 15 unmapped spring configuration files found

    IntelliJ Spring Configuration Check 用IntelliJ 导入现有工程时,如果原来的工程中有spring,每次打开工程就会提示:Spring Configuratio ...

  8. Directx11学习笔记【十一】 画一个简单的三角形--effect框架的使用

    这里不再介绍effect框架的具体使用,有关effect框架使用可参考http://www.cnblogs.com/zhangbaochong/p/5475961.html 实现的功能依然是画一个简单 ...

  9. 新手学Unity3d的一些网站及相应学习路线

    一.unity3d有什么优势 如果您对开发游戏感兴趣,而又没有决定选择哪一个游戏引擎,别犹豫了 unity3d是一个很好的选择! 就我来看unity3d优势主要有以下几方面:首先部署简单,自带了一个I ...

  10. Excel一项研究指出色彩

    Excel一项研究指出色彩 从Office2007跳到了2013版本号,尽管有着种种不适,但应该承认Excel2013版本号在图表和色彩上更加人性化和"专业"了一些. 但假设须要更 ...