Oracle语句优化

1.选用合适的ORACLE优化器:

  a.RULE(基于规则)

  b.COST(基于成本)

  c.CHOOSE(基于选择)(缺省)(尽量避免使用)

2.两种访问表中记录的方式

  a.全表扫描

  b.通过rowid访问表

3.共享sql语句

  避免重复解析相同的sql语句

4.选择最有效的表名排列顺序(只在基于规则的优化器中有效)

  from子句的表名顺序在解析时从右至左,最后一个表名(基础表)最先解析,应选择纪录最少的表作为基础表

5.where子句的链接顺序(自下而上解析)

  表关联查询的条件应该放在最前面

6.select子句中尽量避免使用*

7.减少访问数据库的次数

  比如查询数据库表中某个字段分别等于a和b的纪录,用表内查询效率最高

8.使用decode函数来减少处理时间

  decode()可以避免重复扫描相同记录或重复连接相同的表

9.删除重复记录时使用rowid

10.用truncate代替delete

11.用where子句代替having子句

12.减少对表的查询

13.使用表的别名

14.用(not)exists代替(not)in

原文地址:https://www.cnblogs.com/lxcmyf/p/7450461.html