2009-08-29 3 views

答えて

4

私の推測では、あなたは外部キーについて話しています。これは参照整合性とも呼ばれ、constraintの1種類です。外部キーは唯一の種類の制約ではありません。固有の制約とチェック制約を持つこともできます。とにかく、参照整合性は、insertの場合はやや遅く、selectの場合は速くなりません。

insert ed値が他のテーブルに存在することを確認する必要があるためです。

selectクエリのパフォーマンスを向上させたい場合は、結合してフィルタリングする列にインデックスを挿入する必要があります。しかし、インデックスは、inserts、updates、およびdeletesの速度が低下するため、テーブルを変更するたびにインデックスを更新する必要があるため、コストがかかります。

テーブルが大量の場合は、insert/update、あまりにも多くのインデックスを追加しないでください。あなたのテーブルが主にselectの場合は、可能な限りインデックスを使用してください。 Database Engine Tuning Advisorは、最も一般的なクエリのいくつかのインデックスを定義するのに役立ちます。

クエリを実行するときに、あなたがやっているSQL Serverの見ることができるようにあなたが(SSMSではCtrl +L)クエリ実行プランを使用していることを確認してください。できるだけ多くの数字がseekになるようにしてください。つまり、インデックスを最も効率的に使うことができます。

3

テーブルリレーションが定義されていればSQLの方が高速ではありません。

インデックスはパフォーマンスを改善します。 参照整合性(テーブル関係)は、ビジネス要件に従ってデータの品質を保証します。

+1

データの整合性(RIが強制する)は、はるかに速いスピードよりもはるかに重要です!私はあなたに間違った答えを与えると本当に速いですか? –