すべての PK が GUID であるデータベースがあり、ほとんどの PK はテーブルのクラスター化インデックスでもあります。これが悪いことであることはわかっています (GUID のランダムな性質のため)。したがって、ここには基本的に 2 つのオプションがあるようです (GUID を PK として完全に破棄することを除けば、これはできません (少なくとも現時点ではできません))。
- この記事で詳しく説明されているように、GUID 生成アルゴリズムを NHibernate が使用するアルゴリズムなどに変更することもできます。
- 最も頻繁に使用されているテーブルについては、別のクラスター化インデックス (IDENTITY 列など) に変更し、「ランダムな」GUID を PK として保持することができます。
そのようなシナリオで一般的な推奨事項を与えることは可能ですか?
問題のアプリケーションには 500 以上のテーブルがあり、最大のものは現在約 1,500 万行、いくつかのテーブルは約 500,000 行で、残りは大幅に少なくなります (ほとんどのテーブルは 10K をはるかに下回っています)。
さらに、アプリケーションはすでにいくつかの顧客サイトにインストールされているため、既存の顧客への悪影響を考慮する必要があります。
ありがとう!