欢迎光临
我们一直在努力

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

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

select  a.字段n from tab_a a

where

a.字段2 is not null;

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

于是做了如下修改:

select  a.字段n from tab_a a

where

nvl(a.字段2,'0' ) != '0';

速度提升很明显。

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

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

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。