web-dev-qa-db-ja.com

SQL Server:「NO」に設定されている場合に「外部キー制約を適用する」を使用する利点は何ですか?

RDBMSで「外部キー制約を適用する」の目的を知っています。しかし、「いいえ」に設定した場合、何かメリットはありますか?

25
odiseh

通常の本番環境では、この設定は決してNOに設定する必要があります。

ただし、データベースを開発または再構築しているとき、または実行するとき。 「サニタイズ」(クリーンアップ)する必要のある大量のデータをロードする場合は、外部キー制約をオフにして、「無効な」データをテーブルにロードできるようにするのが理にかなっています。もちろん、私が言ったように(その設定を長期間オフにしておくべきではありません)、データのクリーンアップに進むか、FK制約に違反している行を削除するか、値を更新する必要がありますしたがって、それらは親行と一致します。

繰り返しになりますが、「通常の」本番モードでは、この設定をNOにすることはできませんが、特定のタスクでは、ジョブをより簡単に実行できる場合があります。注意して使用し、できるだけ早くFK制約をオンに戻してください。

28
marc_s

私の知る限り、日常の使用ではありません。私がしばらくの間外部キーを無効にしたのは、データに問題があり、それらを修正することが関係チェックによって隠されているときです。

一括操作中は、パフォーマンスを向上させるために、制約チェックは一時的に無視されます。

3
vonPryz