インデックスを作成するときに INCLUDE 句を使用するのはなぜですか? 質問する

インデックスを作成するときに INCLUDE 句を使用するのはなぜですか? 質問する

70-433 試験の勉強中に、次の 2 つの方法のいずれかでカバーリング インデックスを作成できることに気付きました。

CREATE INDEX idx1 ON MyTable (Col1, Col2, Col3)

- または -

CREATE INDEX idx1 ON MyTable (Col1) INCLUDE (Col2, Col3)

INCLUDE 句は初めて聞きました。なぜこれを使用するのでしょうか。また、INCLUDE 句の有無にかかわらずカバー インデックスを作成するかどうかを決定する際に、どのようなガイドラインをお勧めしますか。

ベストアンサー1

列が になくWHERE/JOIN/GROUP BY/ORDER BY、 句の列リストにのみ存在する場合はSELECT、 を使用しますINCLUDE

このINCLUDE句は、インデックスツリーではなく、最下位/リーフレベルでデータを追加します。これにより、ツリーの一部ではなくなるため、インデックスが小さくなります。

INCLUDE columnsインデックスのキー列ではないため、順序付けされません。つまり、上で述べたように、述語やソートなどにはあまり役立ちません。ただし、キー列から数行の残余検索がある場合は役立つ場合があります。

実例を載せた別のMSDN記事

おすすめ記事