Oracle 优化里最重要的是优化sql
(1) 选择最有效率的表名顺序--from写在最后的表最先被处理
(2) 减少访问数据库的次数
例如:需要查询id为38和29的用户姓名。
低效: select name from test.user u where id=38;
select name from test.user u where id=29;
高效: select name from test.user a,test.user b where a.id=38 and b.id=29;
(3) 用TRUNCATE替代DELETE—回滚段不存放信息(可恢复的)
(4) 尽量多使用COMMIT—释放资源(回滚段、锁、redo log buffer)-Insert没有commit会占用很多undo tbs
(5) Where 后面的条件顺序—可过滤掉最大数量记录的条件写在where子句的末尾
(6) 不要在列上进行数学运算
例如:查询test.user表中,薪资增加500圆后仍然小于或者等于3000圆的人员ID和名字。
低效:select id,name form. test.user where emolument+500 <= 3000;
高效:select id,name form. test.user where emolument <= 2500-500;
(7) 通过内部函数提高SQL效率。
例如:查询test.user表中,查询入职时间超过3个月的人员ID和名字。
低效:select id,name form. test.user where sysdate-onsite <= 90;
高效:select id,name form. test.user where months_between(sysdate,onsite_time) <= 3;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23490498/viewspace-676443/ ,如需转载,请注明出处,否则将追究法律责任。