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

述部が非検索引数である場合、カラムにインデックスがあっても、そのインデックスは使用されませんので、述部の記述方法に注意して、可能であれば検索引数になるように書き換えて下さい。