1

重複の可能性:
インクルード列を使用するか使用しないかによるインデックスの作成の違い

編集:この投稿を無視します。重複しているため、modのフラグを付けました。返信ありがとうございます!

複数列のインデックスを作成する場合、これら2つの違いは何ですか。

CREATE INDEX MyIndex ON TABLE1 (COLUMN1 ASC, COLUMN2 ASC, COLUMN3 ASC, [etc...])

対。

CREATE INDEX MyIndex ON TABLE1 (COLUMN1 ASC)
INCLUDE (COLUMN2, COLUMN3, [etc...] )

MSDNによると、後者は非キー列を含めることを意味します。これは素人の言葉で何を意味しますか?つまり、私は基本的に、テーブル内の数十の列のうち3〜5列のデータのみを必要とするクエリを最適化する必要がある状況に対処しており、列の1つをいわば「ベース」インデックスとして使用して、同じ行の他の列の値。

テーブルは定期的に更新されるため、1つにクラスター化インデックスを作成することはできません。これにより、多くのロックと待機が発生する傾向があります。私は現在これらをテストしていますが、皆さんからも情報に基づいた回答をお願いします。:)

4

1 に答える 1

2

これは、インデックスがINCLUDE句の列に基づいていないことを意味します。つまり、INCLUDE句の列が更新されたときに、インデックス内の対応する行を移動する必要はありません。使用シナリオなどの詳細については、こちらをご覧ください

于 2012-06-11T15:30:23.727 に答える