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

相關文章
相關標籤/搜索