今天在优化一段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';
速度提升非常明显。
原因是什么呢?事实上非常easy,由于is null和is not null使字段的索引失效了。
尽管都知道哪些情形下会使索引失效,可是有时难免受业务需求的影响而考虑的不够全面,所以sql优化要时刻进行。随时进行。努力提高sql的运行效率。