[解決済み] 外部キーは自動的にインデックスを作成しますか?
2022-03-22 07:58:11
質問
2つのテーブルを外部キーにすると、SQL Serverは子テーブルにインデックスのようなものを作成すると聞いたことがあります。 これが本当だとは信じがたいのですが、これに関する具体的な情報はあまり見当たりません。
この質問をした本当の理由は、おそらく15個の関連テーブルを持つテーブルに対する削除ステートメントで、非常に遅い応答時間を経験しているためです。 データベース担当者に尋ねたところ、フィールドに外部キーがある場合、それはインデックスのように機能するとのことです。 これについては、どのような経験がありますか? すべての外部キーフィールドにインデックスを追加すべきでしょうか、それとも不要なオーバーヘッドでしょうか?
どのように解決するのですか?
外部キーは制約であり、2つのテーブル間の関係であり、それ自体はインデックスとは関係ありません。
なぜなら、FKリレーションシップを通じて、関連するテーブルを検索し、単一の値または値の範囲に基づいて特定の行を抽出する必要が生じることが多いからです。
ですから、FKに関係するカラムにインデックスを付けるのは良いことですが、FKそのものはインデックスではありません。
Kimberly Trippの素晴らしい記事を参照してください。 SQL Server はいつから外部キー列にインデックスを付けなくなったのでしょうか。 .
関連
-
[解決済み] SSIS - データ損失の可能性があるため、値を変換することはできません。
-
[解決済み] COUNTフィールドが正しくないか、構文エラーです。
-
[解決済み] UPDATEエラーです。"REPLACEの引数1の引数データ型textは無効です"
-
[解決済み] データベースとスキーマの違い
-
[解決済み] MS SQL Serverで数値をパーセントでフォーマットする
-
[解決済み] クラスター化インデックスと非クラスター化インデックスの実際の意味は何ですか?
-
[解決済み] T-SQLを使用して外部キー制約を一時的に無効にするにはどうすればよいですか?
-
[解決済み] SQL Serverで、指定したテーブルを参照しているすべての外部キーを一覧表示するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] 外部キー制約は、サイクルまたは複数のカスケードパスの原因となる可能性がありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SQL Serverでシングルクォートを置換する
-
[解決済み] サブレポートが表示されない。サブレポートは別々に動作します - メインレポートとは連動しません
-
[解決済み] SQL Server の更新コマンドでエラー - "現在のコマンドで深刻なエラーが発生しました".
-
[解決済み] SSRS レポートの定義が無効です。
-
[解決済み] BCP - IDENTITY列を持つテーブルにインポートする際、キャスト指定に無効な文字値がある。
-
[解決済み] SQL Serverで文字列からすべてのスペースを削除する
-
[解決済み] クエリでカラムを落とさずにデータ型を変更するには?
-
[解決済み] SQL Serverでdatetimeを切り捨てるにはどうすればよいですか?
-
[解決済み】MySQLは外部キーカラムのインデックスを自動的に作成するか?
-
[解決済み】Postgresと外部キーおよびプライマリキー上のインデックス