ですから、私のdb設計を完全に制御することはできません。そのため、このシナリオの目的のために現在のシステムの多くの側面を変更することはできません。
デザインの側面をどのように再考すべきかについてのコメントはおそらく正しいが、役に立たない:)
私は非常に大きなテーブルがあり、幅が約150フィールド、行が約600mあり、多数のプロセスを駆動します。これはデータウェアハウスの状況にあるため、スケジュールされたロードプロセス以外では更新/挿入が行われないため、インデックスが大量に作成されます。
このテーブルをパーティション分割しようとする決定が下されており、パーティション分割されたテーブルのインデックス作成に関して懸念があります。私はパーティション分割の経験がないので、入力やリンクを歓迎します。私はBOLまたはmsdnで私が特に望んでいるものを見つけることができませんでした。
現在IncidentKey
、varchar(50)
一意であるとは呼ばないフィールドにクラスターを作成します。1〜100個の同じレコードを持つことができますIK
(コメントは不要です)。古いIncidentKey
レコードで新しいデータを取得することが多いため、どちらもシーケンシャルではありません。
IncidentDate
パーティションが正しく機能するためには、パーティション化フィールドをクラスター化インデックスキーに含める必要があることを理解しています。そうなると思っていますIncidentKey, IncidentDate
。
問題は、「新しい」パーティションのレコードがクラスター化インデックスの「古い」パーティションのレコードの前にある場合、クラスター化インデックスの仕組みはパーティションテーブルの2パートキーでどのように機能するかです。
たとえば、5つのレコードがあります。
IncidentKey Date
ABC123 1/1/2010
ABC123 7/1/2010
ABC123 1/1/2011
XYZ999 1/1/2010
XYZ999 7/1/2010
新しいレコードを取得する場合ABC123, 2/1/2011
は、クラスター化インデックスのBEFORE にある必要がありXYZ999, 1/1/2010
ます。これはどのように作動しますか?
断片化とポインターを想定していますが、デュアルパートキーを持つパーティションテーブルの非パーティションクラスター化インデックスの物理ストレージと構成に関する情報が見つかりません。