oracle数据库sql优化

oracle数据库sql优化

1.select子句中不要使用 * ,这会使数据字典消耗一些资源。
2.尽量定义表的别名使用别名前缀于列做关联,减小解析时间,避免错误。
3. ⽤>=替代>
⾼效: SELECT * FROM TABLE WHERE CLUNM>=5
低效: SELECT * FROM TABLE WHERE CLUNM>6
4.在where中不要在索引列上使用函数,会导致索引失效。
5.使用union all 代替 union ,union会有去重的操作。
6.不要在索引列上⽤NOT关键字, NOT会产⽣在和在索引列上使⽤函数相同的影响。导致索引失效,转⽽执⾏全表扫描。
7.⽤EXISTS替代IN、⽤NOT EXISTS替代NOT IN:
使⽤EXISTS(或NOT EXISTS)通常将提⾼查询的效率。 在⼦查询中,NOT IN⼦句将执⾏⼀个内部的排序和合并。NOT IN都是最低效的 (因为它对⼦查询中的表执⾏了⼀个全表遍历)。
8.使用索引提高查询效率。
9.多索引,a b为索引列,where a=1 and b>1(使用>导致索引失效)。
10.索引数据类型不匹配 ,索引列a 为varchar2()类型, where a=‘1’ (索引正常) where a=1(索引失效)。
11.where使用is null,is not null时会影响效率。
12.用UNION代替OR(适用索引列)
13.WHERE子句中使用‘!=’、‘||’、‘+’会索引失效

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值