私はいくつかの列を持つテーブルを持っています.2つの重要なものはappidとfileidです. 一緒に、テーブルの PK を構成します。テーブルの典型的な使用例は、appid x を含むファイルの数、または最も人気のある appid です。これらのクエリは、すべてのファイルではなく、ファイルのサブセットに対してのみ頻繁に実行されます。どちらの列も個別に一意ではありません。
それに基づいて、クラスター化されたインデックスの最良の選択は AppId になると思います。ただし、両方の列を PK として設定すると、追加の非クラスター化インデックスが作成され、appids の一意性の欠如 (多くの繰り返しがある) は、いずれにしても舞台裏で一意化列が必要になることを意味するため、 PK はクラスター化されており、別のクラスター化インデックスを指定していませんか? PK で最初に AppId を指定したと仮定すると、診断ファイル ID は舞台裏で一意識別子のように扱われ、最適なパフォーマンスが得られるでしょうか?
編集: 最初に言及するのを忘れていた重要なことは、APPId が着実に増加することはないということです。そのため、テーブルの中央に挿入が行われます。フィルファクタを使えばある程度は防げると思っていたのですが、テーブルがかなり大きくなってしまうので、それがどれだけ役立つかわかりません。
また、かなり頻繁に挿入されますが、一度に大きなチャンクが挿入されることはありません。おそらく、1 時間あたり数千行のようなものです。確実に増加し、その点でクラスター化インデックスの適切な選択となる値は実際にはありませんが、それがどれほど大きな取引であるかはわかりませんでした. クラスター化するのに適切な値を取得するためだけに id を追加することもできますが、選択が大幅に遅くなるように感じます。