Sql 优化

 

1 from 后的表名 选择最有效率的表名顺序 

    记录条数 最少的放在后面 作为基础表;

     如果有3个以上的表连接查询 选择交叉表作为基础表 ,交叉表 是指那个被其他表引用的比表;

2 where 子句的 连接顺序

    将能够过滤掉最大数据量的条件 放在where子句的末尾;

3 用 列名 代替 * ;

4 使用 decode 函数减少 处理时间;

5 整合 简单 无关联的 数据库访问 即使他们之间没有联系;

6 删除 重复记录:

   delete from emp e where e.rowid >

      (select min(x.rowid) from emp x where x.empno = e.empno)

7 减少对数据库的查询次数;

8 减少对表的查询;

9 尽量 使用 commint;

10 java 中 尽量少用 “+” 连接符;

11 使用 oracle 的函数;

12 使用表的别名 ,并将别名加列名前

13 使用索引,加快查询速度(数据访问量达到30%时 ,没有明显的效率提高), 在索引列上,不要使用计算操作;  避免使用 not,is null,is not null,!= ;

14 总是使用索引的第一个列;避免改变索引列的类型;   

15 用 >= 代替 > 

16 用 in 代替 or

17 用union 代替 or

18 用 exists 代替  in ;not exists 代替 not in ;

19 用 exists 代替 distinct;

20 用union-all 代替 union

21 用truncate 代替 delete ;

22 用 where  代替 having 子句;

23 用 where 代替 order by;

24 sql语句 用大写;

25 在where子句中 "!="  ,"||" 和 "+" 都不使用索引;相同的索引列不能互相比较,将会起动全表扫描;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值