私は(実験的に)複数のデータセットのデータを単一のSQLServer2012データベースにマージする必要があるプロジェクトを行っています。これらのセットでは一部のデータが重複しており、重複を検出して削除する方法に取り組んでいます。私の現在のテストは、データアイテムのハッシュを実行し、重複するハッシュをチェックしています。これはこれまでのところ非常にうまく機能しているようです(ハッシュの衝突がある場合、それは世界の終わりではありません)。
このハッシュを「binary(32)」としてデータベースに保存しており、新しい行を挿入する必要があるときはいつでも(実際にはMERGEを使用しています)、ハッシュ値を探し、そうでない場合にのみ挿入します。見つかった。この検索を支援するために、ハッシュ列にインデックスがあります。
私が抱えている問題は、インデックスが常に非常に断片化されていることです。これにより、不必要に速度が低下しているに違いありません。これは、バイナリデータのランダム性に近いためだと思います。
この断片化を制限するために使用できるインデックスオプションはありますか?現時点では、デフォルトを使用しています。手がかりをいただければ幸いです。
前もって感謝します。