SQL Serverでマルチテナント用の実装を検討しています。ここで説明する共有データベース、共有スキーマ、テナントビューフィルタを検討しています。マルチテナントアプリケーションでSQL Serverが断片化した接続プールのパフォーマンス
「SQLビューは、個々のテナントを付与するために使用することができます内の行の一部にアクセスします。唯一の欠点は、次のようにテナントビューフィルターが記述されている...
http://msdn.microsoft.com/en-au/architecture/aa479086パー、断片化された接続プールです
SQLでは、ビューはSELECTクエリの結果で定義された仮想テーブルで、結果としてビューがクエリされ、ストアドプロシージャで使用されているかのように使用できます。実際のデータベーステーブル。たとえば、次のSQL文はEmployeesというテーブルのビューを作成します。このテーブルはフィルタリングされています。シングルテナントに属するトン行だけが表示されている:この文はあなたが思い出した、(データベースにアクセスするユーザーアカウントのセキュリティ識別子(SID)を取得
CREATE VIEW TenantEmployees AS
SELECT * FROM Employees WHERE TenantID = SUSER_SID()
、アカウントです
これを考えると、5,000の異なるテナントが格納されているデータベースが1つあれば、接続プールは次のようになります。完全に断片化され、要求がデータベースに送られるたびにADO.NETは新しい接続を確立して認証する必要があります(接続プールはそれぞれの固有の接続文字列で機能することを覚えておいてください)...
私はこれについて心配する必要がありますか?接続プールが忙しいマルチテナントデータベースサーバー(1秒あたり100リクエストを処理する)にどれだけ大きな影響を及ぼすかの実例を教えてください。問題でハードウェアをもっと投げてもいいのですか?
思考?
あなたは、各テナントは、SQL Serverへの接続を確立した上で計画している、またはあなたが仲介サービスを持つことを計画している参照してください。WCF)どこにすべての要求がルーティングされますか? – Alexander
要約:ドキュメントに記載されていることは悪い考えです... – usr