1. ホーム
  2. sql-server

[解決済み] 外部キーは自動的にインデックスを作成しますか?

2022-03-22 07:58:11

質問

2つのテーブルを外部キーにすると、SQL Serverは子テーブルにインデックスのようなものを作成すると聞いたことがあります。 これが本当だとは信じがたいのですが、これに関する具体的な情報はあまり見当たりません。

この質問をした本当の理由は、おそらく15個の関連テーブルを持つテーブルに対する削除ステートメントで、非常に遅い応答時間を経験しているためです。 データベース担当者に尋ねたところ、フィールドに外部キーがある場合、それはインデックスのように機能するとのことです。 これについては、どのような経験がありますか? すべての外部キーフィールドにインデックスを追加すべきでしょうか、それとも不要なオーバーヘッドでしょうか?

どのように解決するのですか?

外部キーは制約であり、2つのテーブル間の関係であり、それ自体はインデックスとは関係ありません。

なぜなら、FKリレーションシップを通じて、関連するテーブルを検索し、単一の値または値の範囲に基づいて特定の行を抽出する必要が生じることが多いからです。

ですから、FKに関係するカラムにインデックスを付けるのは良いことですが、FKそのものはインデックスではありません。

Kimberly Trippの素晴らしい記事を参照してください。 SQL Server はいつから外部キー列にインデックスを付けなくなったのでしょうか。 .