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