私は SaaS ベースのアプリケーションの開発を開始し、SQL Server 2008 を使用したデータベースの設計に関与しました。
アプリケーションに共有 DB インスタンスを使用しています。TenantId/ClientId によって識別されるすべてのクライアント/テナント レコードを持つ 1 つのデータベースのみを意味します。
いくつかの議論の後、すべてのテーブルのすべての識別子を自動インクリメンタル ID ではなく GUID に変更することにしました。
これを行う主な理由は
- GUID の助けを借りて、1 つのクライアント データを別の新しいホストに移動/マージするのは簡単です。
しかし、JOINを行うと識別子としてGUIDを作成するのが遅くなる気がします。データベースには 100 を超えるすべてのクライアントがあり、各クライアントには 10,000 レコードがあります。
このアプローチを優れたパフォーマンスで実装するためのアイデアを提案してもらえますか?