ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Sql调优Rule

Sql调优Rule

原创 Linux操作系统 作者:grace_xuxj 时间:2010-10-21 10:56:42 0 删除 编辑

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/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: DB优化
下一篇: db调优和锁
请登录后发表评论 登录
全部评论

注册时间:2010-03-10

  • 博文量
    126
  • 访问量
    114699