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