データベースを設計していて、パフォーマンス関連の問題に遭遇しました。私たちはまだ実装ではなく設計の段階にあることに注意してください。そのため、まだ何もテストできません。
次のテーブル構造があります
Events
----------------------
EventID INT PK
SourceID INT FK
TypeID INT FK
Date DATETIME
テーブルには、数千万のエントリが含まれていると予想されます。SourceID
両方ともTypeID
、最大で数百のエントリを持つテーブルを参照します。私が望むのは、タプル(SourceID, TypeID, Date)
をテーブル全体で一意にすることです。問題は、テーブルに新しいアイテムを挿入するときに、一意性を判断するために 3 つの列のどれを最初に使用するかをどうにかして指定できるかということです。インデックスがDate
最初に比較された場合、たとえば最初に使用された場合よりも加算がはるかに高速になるためTypeID
ですよね? それとも、これは完全に間違った質問であり、SQL サーバーを信頼してこれ自体を最適化する必要がありますか?
フィードバックをお待ちしております。