0

私は SaaS ベースのアプリケーションの開発を開始し、SQL Server 2008 を使用したデータベースの設計に関与しました。

アプリケーションに共有 DB インスタンスを使用しています。TenantId/ClientId によって識別されるすべてのクライアント/テナント レコードを持つ 1 つのデータベースのみを意味します。

いくつかの議論の後、すべてのテーブルのすべての識別子を自動インクリメンタル ID ではなく GUID に変更することにしました。

これを行う主な理由は

  1. GUID の助けを借りて、1 つのクライアント データを別の新しいホストに移動/マージするのは簡単です。

しかし、JOINを行うと識別子としてGUIDを作成するのが遅くなる気がします。データベースには 100 を超えるすべてのクライアントがあり、各クライアントには 10,000 レコードがあります。

このアプローチを優れたパフォーマンスで実装するためのアイデアを提案してもらえますか?

4

1 に答える 1

0

しかし、JOINを行うと、GUIDを識別子として作成するのが非常に遅くなる気がします

証拠に裏打ちされていない限り、不合理な「感情」を乗り越えようとすることをお勧めします. それはおそらくあなたの問題を解決するでしょう

于 2012-10-03T08:34:43.453 に答える