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子句的末尾
三,使用索引
时间: 2024-11-05 06:08:50