TECHNOLOGY
Tips !(使用上のテクニック)
対象バージョン : 7.0.x, 8.0.x, 9.0.x
対象OS : 全て
ST0601052
検索引数(sargable)
Tips !
WHERE 句、HAVING 句、または ON 句に記述する条件式を「述部」といいます。
述部は単体、または論理演算子 AND や OR と組み合わせて使用されます。
この述部の中でも、テーブルからローを取り出すためにインデックスを利用することができる述部を「検索引数(sargable)」といいます。
述部が検索引数であるかどうかは条件式の記述に依存します。
次に示す各例では、属性 x と y は、単一テーブルのそれぞれのカラムです。属性 z は、別のテーブルに格納されています。このような属性のそれぞれにインデックスが 1 つ存在することが前提です。
検索引数 | 非検索引数 |
x = 10 | x <> 10 |
x IS NULL | x IS NOT NULL |
x > 25 | x = 4 OR y = 5 |
x = z | x = y |
x IN (4, 5, 6) | x NOT IN (4, 5, 6) |
x LIKE ‘pat%’ | x LIKE ‘%tern’ |
x = 20 – 2 | x + 2 = 20 |
述部が非検索引数である場合、カラムにインデックスがあっても、そのインデックスは使用されませんので、述部の記述方法に注意して、可能であれば検索引数になるように書き換えて下さい。