今天在优化一段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