SQLの性能について質問です。
Oracle 11gにて、抽出条件が『ID(varchar2)の下一桁が「1」でないレコード』というSQLを作成しています。(IDは索引付きのカラムです。)
仕様をそのままコーディングすると
WHERE NOT SUBSTR(ID,-1) = '1'
となると思いますが、
NOTにより索引走査ではなく全表走査となると認識しています。
そのため性能の良いSQLを検討中ですが、
REGEXP_LIKE(ID,'[^1]$')
とした場合、こちらは索引走査されるでしょうか?
LIKEはワイルドカードの前までは索引走査されると聞いたので、そうするとREGEXP_LIKEも全表走査されると予想していますが、情報がなく困っています。
もし結局性能が変わらないようであれば、NOT SUBSTRの方が可読性が高いので採用したいと思っています。
もし他に良い条件式がある場合はご教示願います。
ご回答よろしくお願いいたします。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/30 14:39