ORACLE数据库sql语句优化的学习笔记

概要:最近看的一本oracle数据库的书,这里写一下关于sql语句的优化;

一,一般的sql优化技巧

1.Select语句中避免使用" * "

2.使用where子句替代having子句

   在select语句中,使用where子句过滤行,使用having子句过滤分组,也就是在行分组之后才执行过滤,因为行被分组需要一定的时间,所以应该尽量使用where子句过滤行,减少分组的行数,也就减少了分组的时间,从而提高了 语句的执行效率;

3.使用truncate替代delete

   删除表中的数据可以使用delete,也可以使用truncate;如果确定要删除表中的所有行,建议使用truncate语句;

4.使用表连接而不是多个子查询

   尽量减少表的查询次数,主要是指可以使用一次查询获得的数据,尽量不要通过两次或更多次的查询获得;

5.使用Exists替代In

   exists与in不同,exists只检查行的存在性,而in检查实际的值;

6.使用"<="替代"<"

 

7.使用完全限定的列引用;

二,表的连接方法

1.from子句中表的顺序

  建议在使用表的连接查询时,选择记录行数量少得表作为驱动表,也就是将它作为from子句中的最后一个表;

2.where子句的连接顺序

   将可以过滤掉最大数量记录的条件写在where子句的末尾

三,使用索引

posted on 2015-09-03 00:58  巴夫巴夫  阅读(176)  评论(0编辑  收藏  举报