効率の良い SQL
検索条件項目は、計算するな
索引が使用されなくなる
×
SELECT * FROM TBL_A WHERE TBL_A.VALUE * 10 > :WK_VALUE○
SELECT * FROM TBL_A WHERE TBL_A.VALUE > :WK_VALUE / 10
/
NOT は回避せよ
否定演算子は、検索が効かず、全表走査になる。他の判定方法で代用可能かのうか、検討せよ
×
SELECT * FROM TBL_A WHERE TBL_A.VALUE != '0'○
SELECT * FROM TBL_A WHERE TBL_A.VALUE > '0'
/
インデックスの第一項目を条件に使わなくても、Oracle9iからはイデックスが使用される INDEX SKIP SCAN