1

プールが実際にvb.netで機能するかどうかは疑問です。以下のクエリを使用して、別のPCからデータベースへの接続を確認しました。

SELECT hostname,p.status,[program_name],loginame,name
FROM Master..sysprocesses  as p join master.dbo.sysdatabases as  d on p.dbID = d.dbID
WHERE p.ecid=0 and p.hostname<>'' 
order by name

出力では、PC から同じデータベースへの複数の接続が見られました。

私のvb.netアプリケーションでは、接続を1回だけ開いているので、同じプールから接続が使用されるように考えていたので、PCからデータベースへの接続は1つしか開いていません。

アップデート

SQL サーバー データベースへの接続を利用する vb.net アプリケーションがあります。

  1. 同じプログラムの複数のインスタンスを開くと、接続は同じプールまたは別のプールから引き出されますか?

  2. 異なるexeを開くが、両方が同じデータベースへの接続を開いている場合、同じ接続プールが両方で使用されますか?

SQL サーバーでクエリを実行すると、同じ PC から同じ DB に多くの接続が表示されます。

4

1 に答える 1

1

プーリングは、単一の接続を保証しません。同時にアクティブな (論理) 接続ごとに、1 つの物理接続が必要です。したがって、それぞれ接続インスタンスを使用する 10 個のスレッドがある場合、または何らかの理由で 1 つのスレッドで 10 個の接続を開いている場合、10 個の物理接続が表示されます。

1 つのセッションが 1 つの接続に割り当てられます。各接続は、同時に最大 1 つのセッションを持つことができます。

于 2013-07-29T21:43:54.273 に答える