SQL语句的优化(Oracle)

来源:互联网 发布:藏獒神话破灭 知乎 编辑:程序博客网 时间:2024/04/29 15:48

选择最有效率的表名顺序

       SELECT子句中避免使用 ‘ * ‘

       减少访问数据库的次数

使用DECODE函数来减少处理时间:使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表.

       整合简单,无关联的数据库访问

       删除重复记录

       TRUNCATE替代DELETE

       减少对表的查询

       Where子句替换HAVING子句

       通过内部函数提高SQL效率

       使用表的别名(Alias)

       EXISTS替代IN、用NOT EXISTS替代NOT IN

sql语句用大写的;因为oracle总是先解析sql语句,把小写的字母转换成大写的再执行

java代码中尽量少用连接符连接字符串!

 >=替代>

高效:
SELECT * FROM  EMP  WHERE  DEPTNO >=4
  
低效
:
SELECT * FROM EMP WHERE DEPTNO >3
两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录.

WHERE替代ORDER BY

DECODEexpr,search1,result1[,search2,result2,…][,default]:函数用于返回匹配于特定表达式的结果。如果search1匹配于expr,则返回result1;如果search2匹配于expr,则返回result2,依此类推;如果没有任何匹配关系,则返回default.

select decode(12,12,0,2,1,12) from dual

原创粉丝点击