-
「AND.sql」を SQL Server Management Studio/クエリーアナライザー使って開く

-
前準備を実行する

-
とりあえず実行プランを確認する


-
「PERSON_NAME」の非クラスタ化インデックスを作成

-
テーブルヒント「INDEX(0)」「INDEX(1)」のそれぞれとテーブルヒントがないクエリーで実行プランを比較する



実際の実行プラン

テーブルヒントがないクエリーで、作成した「IX_MEMBER_PERSON_NAME」インデックスが使われず、クラスタ化インデックスの SEEK が行われていて、明らかに作成したインデックスが無効であることが理解できる
-
検索条件を網羅するカバリング・インデックスを作成してみる

-
再度、実行プランを確認

カバリング・インデックスが使用されていることがわかる
-
最適なカバリング・インデックスを見つけるために、項目の順番を変えてみる

-
再度、実行プランを確認する





バッチ相対のコストが一番低いのが、検索条件と同じ順番で作成したインデックスであることがわかる
-
結論
検索時の条件と同じ順番でインデックスを作成すると最適なパフォーマンスが得られる
また、検索引数(SARG)は否定を使うとインデックスが使用されなくなったり、暗黙的型変換を起こすような条件を指定するとパフォーマンスに多大な影響を与える