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

今天在优化一段sql,原脚本大体以下:sql

select  a.字段n from tab_a a

where

a.字段2 is not null;

a.字段2增长了索引的,可是查询速度很是慢,ide

因而作了以下修改:优化

select  a.字段n from tab_a a

where

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

速度提高很明显。索引

缘由是什么呢?其实很简单,由于is null和is not null使字段的索引失效了。it

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

相关文章
相关标签/搜索