选择最有效率的表名顺序
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
DECODE(expr,search1,result1[,search2,result2,…][,default]):函数用于返回匹配于特定表达式的结果。如果search1匹配于expr,则返回result1;如果search2匹配于expr,则返回result2,依此类推;如果没有任何匹配关系,则返回default.
select decode(12,12,0,2,1,12) from dual