1

私は ASP.NET MVC アプリに取り組んでいます。このアプリは、SQL Azure データベースに格納されたデータに依存しています。SQL Azure 管理インターフェイスにログインすると、データベースへのアクティブな接続が 17 あることに気付きました。データベース接続プーリングの概念は昔から漠然と覚えています。何らかの理由で、接続プールを使用することを考えました。web.config ファイルの接続文字列に設定を追加する必要がありました。しかし、私の人生では、設定に関するドキュメントを思い出したり見つけたりすることはできません。

参考までに、接続文字列設定の提供として System.Data.SqlClient を使用しています。SQL Azure で接続プールを使用する方法を教えてください。データベースにアクセスしているのは私だけであることを考えると、17 のアクティブな接続は多いように見えました。接続プールがオンになっている場合、アクティブな接続は1つだけ表示されるはずです。

ありがとうございました。

4

2 に答える 2

3

接続プールは、Sql Azure のクライアントによって構成できない既定の動作です。あなたのアプリは、デフォルトで接続プーリングの恩恵を受けているはずです。異なる文字列を持つ接続に対して新しいプールが作成されるため、接続文字列が一意であることを確認してください。MSDN のこの記事では、次のように指定しています。

新しい接続が開かれたときに、接続文字列が既存のプールと完全に一致しない場合は、新しいプールが作成されます。接続は、プロセスごと、アプリケーション ドメインごと、接続文字列ごとにプールされ、統合セキュリティが使用されている場合は Windows ID ごとにプールされます。接続文字列も完全に一致する必要があります。同じ接続に対して別の順序で指定されたキーワードは、個別にプールされます。

さて、あなたが覚えていない設定に関して。MARS (Multiple Active Result Sets)について話しているかもしれません。この機能は、Sql Azure で利用できるようになりました。

于 2012-05-14T06:10:27.347 に答える
-2

SQL Azure への接続を正しく設計する方法を説明する次の記事を読むことをお勧めします。また、その方法を示す C# ベースのサンプル コードも含まれています。

http://blogs.msdn.com/b/sqlazure/archive/2010/05/11/10011247.aspx

于 2012-05-11T17:11:22.507 に答える