ORACLE-017:SQL优化-is not null和nvl

今天在优化一段sql,原脚本大致如下:

[sql]  view plain  copy
  1. select  a.字段n from tab_a a  
  2.   
  3. where  
  4.   
  5. a.字段2 is not null;  

a.字段2增加了索引的,但是查询速度非常慢,

于是做了如下修改:

[sql]  view plain  copy
  1. select  a.字段n from tab_a a  
  2.   
  3. where  
  4.   
  5. nvl(a.字段2,'0' ) != '0';  

速度提升很明显。

原因是什么呢?其实很简单,因为is null和is not null使字段的索引失效了。

虽然都知道哪些情形下会使索引失效,但是有时难免受业务需求的影响而考虑的不够全面,所以sql优化要时刻进行,随时进行。努力提高sql的执行效率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值