1

データベースを設計していて、パフォーマンス関連の問題に遭遇しました。私たちはまだ実装ではなく設計の段階にあることに注意してください。そのため、まだ何もテストできません。

次のテーブル構造があります

Events
----------------------
EventID      INT    PK
SourceID     INT    FK
TypeID       INT    FK
Date         DATETIME

テーブルには、数千万のエントリが含まれていると予想されます。SourceID両方ともTypeID、最大で数百のエントリを持つテーブルを参照します。私が望むのは、タプル(SourceID, TypeID, Date)をテーブル全体で一意にすることです。問題は、テーブルに新しいアイテムを挿入するときに、一意性を判断するために 3 つの列のどれを最初に使用するかをどうにかして指定できるかということです。インデックスがDate最初に比較された場合、たとえば最初に使用された場合よりも加算がはるかに高速になるためTypeIDですよね? それとも、これは完全に間違った質問であり、SQL サーバーを信頼してこれ自体を最適化する必要がありますか?

フィードバックをお待ちしております。

4

1 に答える 1

2

一意の制約をサポートするために作成された基礎となるインデックスは、制約によって定義されたものと同じ列順序になります。

于 2013-08-12T09:37:19.463 に答える