メリットがあります。しかし、 正式な構造化と正規化に限定されません。 のパフォーマンスまたはスケーラビリティの利点を提供する場合にのみ、それを実行します。SQL Serverの外部キー制約は、私たちは、私はいくつかのFK(外部キー) 制約を考慮する必要のあるデータベースを設計している
私はいくつかの面白い記事を読んで、実用的なメリットを求めています。ここではいくつかのリンクがあります:
http://www.mssqltips.com/tip.asp?tip=1296
私はFKのメリットについての詳細を知りたいと思った(別に正式な構造から、有名なは\更新をカスケード削除します)。
FKはデフォルトで「インデックス登録」されていないので、FKのインデックス作成時に考慮すべき点は何ですか?外部キーとしてマッピングするnull許容のフィールドを処理する方法を
- この許可されていますか?
は別にインデックスから、SQL-Serverのクエリ実行計画を最適化するには、このヘルプのでしょうか?
私はもっと知っていますが、私はこれについて話すのが好きです。私を案内してください。
私は数百万のレコードを持ついくつかのデータベースを扱ってきました。データベースとそのクローンの間でデータをインポートしてから、そのクローンをWebアプリケーション環境で使用することが多くなります。 私は、PKインデックスを自動的に保持することでデータアクセスのスピードアップに役立つことが分かっています。さて、この議論から、私がSQLクエリでJOINを使用している場合、私はFKを使用してインデックスを作成して、JOIN操作を効率的にすることができます。 –
たとえば、テーブルOrgMaster(すべてのOrgレコードを含む)を持っていて、BookingMasterテーブル(すべての予約レコードが含まれています)を持っています。 OrgMaster.IdがBookingMaster.OrgIdとして参照されています。だから、OrgIdとIdの関係のためにFKを持っていて、両方のテーブル間のJOIN演算のパフォーマンスを向上させるために 'インデックス'をshudしました。正しく取得できましたか?
上記のすべては、余分なスペースと時間のオーバーヘッドを犠牲にしています(FKでテーブルにレコードを挿入中)。 –
私は、あなたが私にポイントのリストを提供するようにお願いします。 - テーブルが数百万レコード増えているので、FK-indexは時間がかかりすぎますか? - その場合、「毎回」FKインデックスに行く価値はありますか? - 私はFKを適用しないか、それをインデックス化するか、どちらも実行しないでください。 - JOINや他の時間のかかる検索を高速化するために他のトリッキーな方法はありますか? –