※SQLServer Oracle共通?
■Indexが効くSQL
=,>, <, >=, <=, BETWEEN,% からはじまらない LIKE(前方一致)
■Indexが効かないSQL
・LIKE検索(後方・部分一致)
WHERE name LIKE '%田中%'
WHERE name LIKE '%田中'
・左辺が式
WHERE age / 2 > 10 否定構文
WHERE name NOT age = 20 NULL指定
WHERE name IS NULL
・OR検索(片方にしかインデックスなし)
WHERE name = '田中' OR age = 33
※ name と age の両方にインデックスがないと全件検索になる
[参考]http://www.atmarkit.co.jp/ait/articles/0412/22/news090.html
・indexを張ったnvarchar項目に対して、シングルクォートを忘れると、効かない。
WHERE xxxcd = 111 ⇒改善後 WHERE xxxcd = '111'