私はインデックス作成の初心者であり、インデックス作成の基本について学びました。対応するテーブルのインデックス部分内にある主キー制約のデフォルトのクラスター化インデックスを見つけることができますが、外部キー制約を作成した後は見つかりません。
これで、パフォーマンスを向上させるためにインデックス付けを実装する必要があるという要件がありました。 JOIN結果のパフォーマンスを向上させるために、外部キーのインデックス付けについて読みました。
外部キー列を追加の非クラスター化インデックスに追加する必要がありますか、それとも外部キーにデフォルトのインデックスがありますか?
SQLテーブル構造が次のようになり、JOIN query with WHERE句を使用して( t1_col
table1 table2
------ ------
t1_col1(pk) t2_col1(pk)
t1_col2 t2_col2
t1_col3 t2_col3
t1_col4 t2_col4
t2_col1(FK)
外部キーには、デフォルトではインデックスがありません。作成する必要があります。
この場合は、どちらかをお勧めします。 2つのカラムの相対的な選択性に依存します
CREATE INDEX IX_table2fk ON
table1 (t2_col1, t1_col3)
INCLUDE (any columns needed for the query)
OR
CREATE INDEX IX_table2fk ON
table1 (t1_col3, t2_col1)
INCLUDE (any columns needed for the query)
INCLUDEは、キー/ブックマークの検索を回避するために インデックスカバー を作成します