私たちの環境にはテーブルがあります。最近、dbaがプライマリキーを作成したいdatetimeをソートすることで、パフォーマンスが大幅に向上することが発見されました。彼はdatetimeの一意性を保証できないので、一度主キーだったidを新しい複合キーに追加しました。プライマリテーブルのコンポジットとしてのプライマリキー
したがって、datetime/idとしてプライマリキーを持つテーブルがあり、クラスタ化インデックスもこのように定義されています。すべてのpk/fkの関係はまだ適切に設定されており、id-idパラダイムに存在します。
lopsided主キーの考えられる問題は何ですか?
この変更でパフォーマンスが大幅に向上しました。
ただし、スキーマでは、実際の「主キー」は2つの列です。おそらく何がうまくいかないでしょうか?
[複数の列を主キー(複合主キー)として使用する理由](http://stackoverflow.com/questions/2626158/why-use-multiple-columns-as-primary-keys-composite-primary -key) – Whencesoever
これは、既存のFK関係を壊さなかったためです。なぜ、datetimeにクラスタ化されていないインデックスを置くだけではないのですか? – Paparazzi
既存の一意の列を主キーとして保持します。次に、datetime列に新しいINDEXを作成します。あなたはデータベースプラットフォームは言及していませんが、これがSql Server 2008(*私は*信じています)以上であれば、インデックス付きの列で永続化されるINCLUDE列を選択することができます。これにより、クラスタード・インデックスに日付を含める/含められる速度に近いものになります。より多くのオプションが必要な場合は、データベースプラットフォームとバージョンを含める必要があります。 – Igor