私はクラスタードインデックスを作成するためのベストプラクティスを研究していて、かなりリストにあるこれらの2つの提案を完全に理解しようとしていますすべてのブログや記事に関する記事クラスタリングされたインデックスの考慮事項別個のバリューと大きな結果セットと監査用の単一の垂直テーブル
- 多数の異なる値を含む列。
- 大きな結果セットを返すクエリ。
これらがわずかに反するように見えるか、私は多分それはちょうど..あなたがテーブルにアクセスしているかに依存または「大きな結果セット」は何を意味するかの私の解釈が間違っている推測している....
クラスタ化された列に対して範囲クエリを実行しているのでなければ、通常は重要な結果セットが得られないようです。したがって、SQL ServerがPK上のクラスタード・インデックスをデフォルト設定している場合、大規模な結果セット提案を実行することはめったにありませんが、多くの個別の値が得られます。
質問。このquetionは、我々はそれが表の列を持っている必要があり、縦監査テーブルから茎....このテーブルに対して書かれているすべての単一のクエリは
WHERE TABLE = 'TABLENAME'
を持っていますが、テーブル名は非常に不明確な...各結果セットです2番目の条件を満たしているようですが、確かにそれほどユニークではありません....つまり、テーブルを大きくするために4バイトのUniquifer(sp?)を追加しなければならないということです。 ..
すべての連絡先または一部のアカウントが1つのテーブルに正規化され、TYPEパラメータで区切られているDBがあると、この状況が数回発生しています。すべてのクエリには....
監査テーブルの場合、クエリは通常、変更された日付、並べ替えられた列、時には変更されたユーザーなどのいずれかによって並べ替えられます。この監査シナリオに
私の他の思考はテーブルが監査され、その後、データの上にインデックス付きビューを生成する間に競合がないので、その挿入が速いので、ちょうど...監査テーブルに
グレートアンサー:-) テーブルを最初に持っていることによるパフォーマンスの向上が、インデックスを再構築することの上にとどまっている他の作業を正当化するのに十分であるかどうか不思議です。何かがそのテーブルのメンテナンスと間違って行くと、それはすべてのトランザクションがそのテーブルに値を挿入する必要があるため、システム全体が苦しむ可能性が高いフラグメンテーションが発生した場合、特に、このシナリオは一種である場合、私は好奇心が強い。また... 監査テーブルであること過剰な正規化とテーブルの名前はちょうど分割する必要があります.. テストテストテストのテスト右:-) –
+1大きな答え - すべての主要なポイントをカバーします(クラスタ化キーは**すべての**非クラスタ化インデックスに含まれていますよく、したがって、**狭く、静的でユニークな**と - 可能な限り - 増加している必要があります!) –
@ PureWeen、Enterprise Editionをお持ちの場合は、問題が発生しないようにオンラインで再構築できます。また、断片化の原因となる状況によって、あまり知られていない、多くのINSERTが同じデータページで発生した場合に発生する可能性がある「ホットスポット」の問題を回避できるという利点があると主張します。この場合、主にバルクロードのパフォーマンスを向上させることを意図しているため、パーティション化が有効であるかどうかはわかりません。私はちょうど私の経験が毎秒何百回ものトランザクションを持つ1億回以上の行テーブルであったことをあなたに伝えています。そしておそらく、統計の更新だけが必要で、再構築は必要ありません。 –