私は数百万のレコードを持つトランザクションテーブル(単一の主キー)を持っており、毎日100個のレコードが追加されています。クラスタ化インデックス、order by節なし
さらに、このテーブルは、新しく挿入されたレコードに対してのみ、順序なしで行われるリコンシリエーションと決済に使用されます。
IDカラムにクラスタード・インデックスを作成しましたが、ASCかDESCかどうかはわかりません。ほとんどの処理は新しく挿入されたレコードで行われるので、私はそのインデックスをDESCとして注文することを考えていましたが、それは確実ではありません。
これについてStackOverflowに関するいくつかのブログと質問をチェックしましたが、それらのすべてがorder by節と複合クラスターインデックスについて議論しています。私の場合は、単一列のクラスタード・インデックスがあり、順序の要件はありません。
SQL Serverは、効率の良い最初または最後のページからインデックスをトラバースできます。 –
コメントを共有してくれてありがとう@RogerWolfいくつかのリンクや詳細を教えてください。 –
私はあなたが 'dboからトップ(1000)*を選択するようなクエリでこれらの"新しく追加された "レコードを拾うとは思わない。そうすれば、並列処理や一般的な効率性を忘れることができます。代わりに、トランザクションが現在どのワークフロー段階にあるかを示すフィールドを表示します。そして、あなたはそのフィールドにインデックスを必要とし、私を信頼してください。この場合、クラスタード・インデックスの順序は関係ありません。 –