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