特定の種類のデータにカスタム インデックスを使用すると、データベースの断片化が減少するかどうかを確認しようとしています。
[編集: MS SQL Server 2008 R2 を使用しています]
タイムスタンプ付きの測定データを含む SQL データベースがあります。大量のデータが常に挿入されますが、一度挿入されると、実質的に更新する必要はありません。ただし、複数のデバイス (約 50 台) が同時にデータを測定するため、これらのタイムスタンプは一意ではありません。
これは、テーブル内の 50 行ごとに同じタイムスタンプ値が含まれていることを意味します。このデータは多かれ少なかれ同時に受信されますが、行が可能な限り順番に書き込まれるようにするために追加の注意を払うことができますが (それが役立つ場合)、おそらくしばらくメモリに保持し、データを取得したときにのみ書き込むことによって可能です。単一のタイムスタンプのすべてのデバイスから。
Guid.Comb で NHibernate を使用して、単純な bigint ID でのインデックス ルックアップを回避しています。単純な GUID とは対照的に、これは断片化を減らすはずですが、挿入が非常に多いため、断片化はすぐに発生します。
私のデータにはタイムスタンプが付けられ、データはほぼ順番に挿入される (タイムスタンプが増加する) ため、このテーブルの一意のクラスター化インデックスを使用して主キーを作成するより賢い方法があるかどうか疑問に思っています。Timestamp 列は基本的に bigint 数値 (.NET DateTime ティック) です。
また、同じタイムスタンプ列の非クラスター化インデックスもかなり断片化されていることに気付きました。この場合、ヒープの断片化を減らすためにどのようなインデックス戦略をお勧めしますか?