QA@IT
«回答へ戻る

追記

1183
  
 ADO.NET でのパフォーマンス カウンター
 https://msdn.microsoft.com/ja-jp/library/ms254503(v=vs.110).aspx
+
+
+【2016/2/10 追記】
+
+ご参考に上に紹介したパフォーマンスカウンターの記事のコードの実行結果を書いておきます。記事のコードとは SoftConnectsPerSecond, SoftDisconnectsPerSecond, NumberOfActiveConnections, NumberOfFreeConnections を追加したこと、接続文字列を自分の環境で有効なものに変更したこと以外は同じです。
+
+接続文字列は記事と同様に 3 種類用意して、1st ~ 3rd Connection は別のもの、3rd と 4th Connection は同じものを使っています。
+
+最小接続数、最大接続数はデフォルトで、それぞれ 0, 100 です。
+
+NumberOfActiveConnectionPools, NumberOfActiveConnections, NumberOfFreeConnections の数の変化に着目してください。
+
+それらの数字は最初はゼロで、1st ⇒ 2nd ⇒ 3rd と順に Open していくと NumberOfActiveConnectionPools, NumberOfActiveConnections が一つずつ増えていって、3rd を Open したとき 3 になっています。
+
+4th の接続文字列は 3rd と同じなので、4th を Open すると、NumberOfActiveConnectionPools は 3 のままで、NumberOfActiveConnections は一つ増えて 4 になっています。
+
+1st から 4th を順に Close していくと、NumberOfActiveConnectionPools は 4 から 0 に、NumberOfFreeConnections は 0 から 4 に変化していきます。
+
+CreateConnections メソッドの中を変更すれば上記以外のいろいろなケースを試すことができますので、興味があればやってみてください。
+
+```
+Instance Name: AdoNetPerformanceCounter[8116]
+---------------------------
+Available Performance Counters:
+---------------------------
+NumberOfActiveConnectionPools = 0
+NumberOfReclaimedConnections = 0
+HardConnectsPerSecond = 0
+HardDisconnectsPerSecond = 0
+NumberOfActiveConnectionPoolGroups = 1
+NumberOfInactiveConnectionPoolGroups = 0
+NumberOfInactiveConnectionPools = 0
+NumberOfNonPooledConnections = 0
+NumberOfPooledConnections = 0
+NumberOfStasisConnections = 0
+SoftConnectsPerSecond = 0
+SoftDisconnectsPerSecond = 0
+NumberOfActiveConnections = 0
+NumberOfFreeConnections = 0
+---------------------------
+Opened the 1st Connection:
+---------------------------
+NumberOfActiveConnectionPools = 1
+NumberOfReclaimedConnections = 0
+HardConnectsPerSecond = 2.869965
+HardDisconnectsPerSecond = 0
+NumberOfActiveConnectionPoolGroups = 1
+NumberOfInactiveConnectionPoolGroups = 0
+NumberOfInactiveConnectionPools = 0
+NumberOfNonPooledConnections = 0
+NumberOfPooledConnections = 1
+NumberOfStasisConnections = 0
+SoftConnectsPerSecond = 2.849026
+SoftDisconnectsPerSecond = 0
+NumberOfActiveConnections = 1
+NumberOfFreeConnections = 0
+---------------------------
+Opened the 2nd Connection:
+---------------------------
+NumberOfActiveConnectionPools = 2
+NumberOfReclaimedConnections = 0
+HardConnectsPerSecond = 11.31173
+HardDisconnectsPerSecond = 0
+NumberOfActiveConnectionPoolGroups = 2
+NumberOfInactiveConnectionPoolGroups = 0
+NumberOfInactiveConnectionPools = 0
+NumberOfNonPooledConnections = 0
+NumberOfPooledConnections = 2
+NumberOfStasisConnections = 0
+SoftConnectsPerSecond = 11.2609
+SoftDisconnectsPerSecond = 0
+NumberOfActiveConnections = 2
+NumberOfFreeConnections = 0
+---------------------------
+Opened the 3rd Connection:
+---------------------------
+NumberOfActiveConnectionPools = 3
+NumberOfReclaimedConnections = 0
+HardConnectsPerSecond = 61.84692
+HardDisconnectsPerSecond = 0
+NumberOfActiveConnectionPoolGroups = 3
+NumberOfInactiveConnectionPoolGroups = 0
+NumberOfInactiveConnectionPools = 0
+NumberOfNonPooledConnections = 0
+NumberOfPooledConnections = 3
+NumberOfStasisConnections = 0
+SoftConnectsPerSecond = 61.21758
+SoftDisconnectsPerSecond = 0
+NumberOfActiveConnections = 3
+NumberOfFreeConnections = 0
+---------------------------
+Opened the 4th Connection:
+---------------------------
+NumberOfActiveConnectionPools = 3
+NumberOfReclaimedConnections = 0
+HardConnectsPerSecond = 72.37984
+HardDisconnectsPerSecond = 0
+NumberOfActiveConnectionPoolGroups = 3
+NumberOfInactiveConnectionPoolGroups = 0
+NumberOfInactiveConnectionPools = 0
+NumberOfNonPooledConnections = 0
+NumberOfPooledConnections = 4
+NumberOfStasisConnections = 0
+SoftConnectsPerSecond = 70.90068
+SoftDisconnectsPerSecond = 0
+NumberOfActiveConnections = 4
+NumberOfFreeConnections = 0
+---------------------------
+Closed the 1st Connection:
+---------------------------
+NumberOfActiveConnectionPools = 3
+NumberOfReclaimedConnections = 0
+HardConnectsPerSecond = 0
+HardDisconnectsPerSecond = 0
+NumberOfActiveConnectionPoolGroups = 3
+NumberOfInactiveConnectionPoolGroups = 0
+NumberOfInactiveConnectionPools = 0
+NumberOfNonPooledConnections = 0
+NumberOfPooledConnections = 4
+NumberOfStasisConnections = 0
+SoftConnectsPerSecond = 0
+SoftDisconnectsPerSecond = 95.69633
+NumberOfActiveConnections = 3
+NumberOfFreeConnections = 1
+---------------------------
+Closed the 2nd Connection:
+---------------------------
+NumberOfActiveConnectionPools = 3
+NumberOfReclaimedConnections = 0
+HardConnectsPerSecond = 0
+HardDisconnectsPerSecond = 0
+NumberOfActiveConnectionPoolGroups = 3
+NumberOfInactiveConnectionPoolGroups = 0
+NumberOfInactiveConnectionPools = 0
+NumberOfNonPooledConnections = 0
+NumberOfPooledConnections = 4
+NumberOfStasisConnections = 0
+SoftConnectsPerSecond = 0
+SoftDisconnectsPerSecond = 88.37837
+NumberOfActiveConnections = 2
+NumberOfFreeConnections = 2
+---------------------------
+Closed the 3rd Connection:
+---------------------------
+NumberOfActiveConnectionPools = 3
+NumberOfReclaimedConnections = 0
+HardConnectsPerSecond = 0
+HardDisconnectsPerSecond = 0
+NumberOfActiveConnectionPoolGroups = 3
+NumberOfInactiveConnectionPoolGroups = 0
+NumberOfInactiveConnectionPools = 0
+NumberOfNonPooledConnections = 0
+NumberOfPooledConnections = 4
+NumberOfStasisConnections = 0
+SoftConnectsPerSecond = 0
+SoftDisconnectsPerSecond = 76.96001
+NumberOfActiveConnections = 1
+NumberOfFreeConnections = 3
+---------------------------
+Closed the 4th Connection:
+---------------------------
+NumberOfActiveConnectionPools = 3
+NumberOfReclaimedConnections = 0
+HardConnectsPerSecond = 0
+HardDisconnectsPerSecond = 0
+NumberOfActiveConnectionPoolGroups = 3
+NumberOfInactiveConnectionPoolGroups = 0
+NumberOfInactiveConnectionPools = 0
+NumberOfNonPooledConnections = 0
+NumberOfPooledConnections = 4
+NumberOfStasisConnections = 0
+SoftConnectsPerSecond = 0
+SoftDisconnectsPerSecond = 91.78379
+NumberOfActiveConnections = 0
+NumberOfFreeConnections = 4
+---------------------------
+Press Enter to finish.
+```

ADO.NET + SqlClient を使ってのアプリからの SQL Server へのアクセスの話ですよね。そう理解して・・・

この状態でDBを利用した時、接続の度にプールが1つづつ増えていくのでしょうか。

まず、Connection Pool は接続文字列ごとに作られ、最初はその中の Connection はゼロです。そして、前の接続を Close しないまま次の接続を Open すると一つずつ増えていきます。

Close してから Open すれば Pool の中の Connection が再利用されますので増えることはないです。

そのあたりは以下の記事で最初に出てくる図とその説明 ".Open() メソッドは、コネクションプールからのコネクションの貸し出し処理、.Close() メソッドは、プールへの返却処理になっている。" を見るとよく分かると思います。

.NETの例外処理 Part.2
http://blogs.msdn.com/b/nakama/archive/2009/01/02/net-part-2.aspx

その様子は、以下の記事のコードを NumberOfActiveConnections と NumberOfFreeConnections も有効にして試すと、実際に自分の目で見て確認できると思います。

ADO.NET でのパフォーマンス カウンター
https://msdn.microsoft.com/ja-jp/library/ms254503(v=vs.110).aspx

【2016/2/10 追記】

ご参考に上に紹介したパフォーマンスカウンターの記事のコードの実行結果を書いておきます。記事のコードとは SoftConnectsPerSecond, SoftDisconnectsPerSecond, NumberOfActiveConnections, NumberOfFreeConnections を追加したこと、接続文字列を自分の環境で有効なものに変更したこと以外は同じです。

接続文字列は記事と同様に 3 種類用意して、1st ~ 3rd Connection は別のもの、3rd と 4th Connection は同じものを使っています。

最小接続数、最大接続数はデフォルトで、それぞれ 0, 100 です。

NumberOfActiveConnectionPools, NumberOfActiveConnections, NumberOfFreeConnections の数の変化に着目してください。

それらの数字は最初はゼロで、1st ⇒ 2nd ⇒ 3rd と順に Open していくと NumberOfActiveConnectionPools, NumberOfActiveConnections が一つずつ増えていって、3rd を Open したとき 3 になっています。

4th の接続文字列は 3rd と同じなので、4th を Open すると、NumberOfActiveConnectionPools は 3 のままで、NumberOfActiveConnections は一つ増えて 4 になっています。

1st から 4th を順に Close していくと、NumberOfActiveConnectionPools は 4 から 0 に、NumberOfFreeConnections は 0 から 4 に変化していきます。

CreateConnections メソッドの中を変更すれば上記以外のいろいろなケースを試すことができますので、興味があればやってみてください。

Instance Name: AdoNetPerformanceCounter[8116]
---------------------------
Available Performance Counters:
---------------------------
NumberOfActiveConnectionPools = 0
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 0
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 1
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 0
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 0
SoftDisconnectsPerSecond = 0
NumberOfActiveConnections = 0
NumberOfFreeConnections = 0
---------------------------
Opened the 1st Connection:
---------------------------
NumberOfActiveConnectionPools = 1
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 2.869965
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 1
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 1
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 2.849026
SoftDisconnectsPerSecond = 0
NumberOfActiveConnections = 1
NumberOfFreeConnections = 0
---------------------------
Opened the 2nd Connection:
---------------------------
NumberOfActiveConnectionPools = 2
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 11.31173
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 2
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 2
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 11.2609
SoftDisconnectsPerSecond = 0
NumberOfActiveConnections = 2
NumberOfFreeConnections = 0
---------------------------
Opened the 3rd Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 61.84692
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 3
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 61.21758
SoftDisconnectsPerSecond = 0
NumberOfActiveConnections = 3
NumberOfFreeConnections = 0
---------------------------
Opened the 4th Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 72.37984
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 4
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 70.90068
SoftDisconnectsPerSecond = 0
NumberOfActiveConnections = 4
NumberOfFreeConnections = 0
---------------------------
Closed the 1st Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 0
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 4
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 0
SoftDisconnectsPerSecond = 95.69633
NumberOfActiveConnections = 3
NumberOfFreeConnections = 1
---------------------------
Closed the 2nd Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 0
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 4
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 0
SoftDisconnectsPerSecond = 88.37837
NumberOfActiveConnections = 2
NumberOfFreeConnections = 2
---------------------------
Closed the 3rd Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 0
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 4
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 0
SoftDisconnectsPerSecond = 76.96001
NumberOfActiveConnections = 1
NumberOfFreeConnections = 3
---------------------------
Closed the 4th Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 0
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 4
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 0
SoftDisconnectsPerSecond = 91.78379
NumberOfActiveConnections = 0
NumberOfFreeConnections = 4
---------------------------
Press Enter to finish.
ADO.NET + SqlClient を使ってのアプリからの SQL Server へのアクセスの話ですよね。そう理解して・・・

> この状態でDBを利用した時、接続の度にプールが1つづつ増えていくのでしょうか。

まず、Connection Pool は接続文字列ごとに作られ、最初はその中の Connection はゼロです。そして、前の接続を Close しないまま次の接続を Open すると一つずつ増えていきます。

Close してから Open すれば Pool の中の Connection が再利用されますので増えることはないです。

そのあたりは以下の記事で最初に出てくる図とその説明 ".Open() メソッドは、コネクションプールからのコネクションの貸し出し処理、.Close() メソッドは、プールへの返却処理になっている。" を見るとよく分かると思います。
 
.NETの例外処理 Part.2
 http://blogs.msdn.com/b/nakama/archive/2009/01/02/net-part-2.aspx
 
その様子は、以下の記事のコードを NumberOfActiveConnections と NumberOfFreeConnections も有効にして試すと、実際に自分の目で見て確認できると思います。
 
ADO.NET でのパフォーマンス カウンター
https://msdn.microsoft.com/ja-jp/library/ms254503(v=vs.110).aspx


【2016/2/10 追記】

ご参考に上に紹介したパフォーマンスカウンターの記事のコードの実行結果を書いておきます。記事のコードとは SoftConnectsPerSecond, SoftDisconnectsPerSecond, NumberOfActiveConnections, NumberOfFreeConnections を追加したこと、接続文字列を自分の環境で有効なものに変更したこと以外は同じです。

接続文字列は記事と同様に 3 種類用意して、1st ~ 3rd Connection は別のもの、3rd と 4th Connection は同じものを使っています。

最小接続数、最大接続数はデフォルトで、それぞれ 0, 100 です。

NumberOfActiveConnectionPools, NumberOfActiveConnections, NumberOfFreeConnections の数の変化に着目してください。

それらの数字は最初はゼロで、1st ⇒ 2nd ⇒ 3rd と順に Open していくと NumberOfActiveConnectionPools, NumberOfActiveConnections が一つずつ増えていって、3rd を Open したとき 3 になっています。

4th の接続文字列は 3rd と同じなので、4th を Open すると、NumberOfActiveConnectionPools は 3 のままで、NumberOfActiveConnections は一つ増えて 4 になっています。

1st から 4th を順に Close していくと、NumberOfActiveConnectionPools は 4 から 0 に、NumberOfFreeConnections は 0 から 4 に変化していきます。

CreateConnections メソッドの中を変更すれば上記以外のいろいろなケースを試すことができますので、興味があればやってみてください。

```
Instance Name: AdoNetPerformanceCounter[8116]
---------------------------
Available Performance Counters:
---------------------------
NumberOfActiveConnectionPools = 0
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 0
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 1
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 0
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 0
SoftDisconnectsPerSecond = 0
NumberOfActiveConnections = 0
NumberOfFreeConnections = 0
---------------------------
Opened the 1st Connection:
---------------------------
NumberOfActiveConnectionPools = 1
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 2.869965
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 1
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 1
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 2.849026
SoftDisconnectsPerSecond = 0
NumberOfActiveConnections = 1
NumberOfFreeConnections = 0
---------------------------
Opened the 2nd Connection:
---------------------------
NumberOfActiveConnectionPools = 2
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 11.31173
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 2
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 2
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 11.2609
SoftDisconnectsPerSecond = 0
NumberOfActiveConnections = 2
NumberOfFreeConnections = 0
---------------------------
Opened the 3rd Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 61.84692
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 3
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 61.21758
SoftDisconnectsPerSecond = 0
NumberOfActiveConnections = 3
NumberOfFreeConnections = 0
---------------------------
Opened the 4th Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 72.37984
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 4
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 70.90068
SoftDisconnectsPerSecond = 0
NumberOfActiveConnections = 4
NumberOfFreeConnections = 0
---------------------------
Closed the 1st Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 0
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 4
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 0
SoftDisconnectsPerSecond = 95.69633
NumberOfActiveConnections = 3
NumberOfFreeConnections = 1
---------------------------
Closed the 2nd Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 0
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 4
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 0
SoftDisconnectsPerSecond = 88.37837
NumberOfActiveConnections = 2
NumberOfFreeConnections = 2
---------------------------
Closed the 3rd Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 0
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 4
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 0
SoftDisconnectsPerSecond = 76.96001
NumberOfActiveConnections = 1
NumberOfFreeConnections = 3
---------------------------
Closed the 4th Connection:
---------------------------
NumberOfActiveConnectionPools = 3
NumberOfReclaimedConnections = 0
HardConnectsPerSecond = 0
HardDisconnectsPerSecond = 0
NumberOfActiveConnectionPoolGroups = 3
NumberOfInactiveConnectionPoolGroups = 0
NumberOfInactiveConnectionPools = 0
NumberOfNonPooledConnections = 0
NumberOfPooledConnections = 4
NumberOfStasisConnections = 0
SoftConnectsPerSecond = 0
SoftDisconnectsPerSecond = 91.78379
NumberOfActiveConnections = 0
NumberOfFreeConnections = 4
---------------------------
Press Enter to finish.
```

回答を投稿

ADO.NET + SqlClient を使ってのアプリからの SQL Server へのアクセスの話ですよね。そう理解して・・・

この状態でDBを利用した時、接続の度にプールが1つづつ増えていくのでしょうか。

まず、Connection Pool は接続文字列ごとに作られ、最初はその中の Connection はゼロです。そして、前の接続を Close しないまま次の接続を Open すると一つずつ増えていきます。

Close してから Open すれば Pool の中の Connection が再利用されますので増えることはないです。

そのあたりは以下の記事で最初に出てくる図とその説明 ".Open() メソッドは、コネクションプールからのコネクションの貸し出し処理、.Close() メソッドは、プールへの返却処理になっている。" を見るとよく分かると思います。

.NETの例外処理 Part.2
http://blogs.msdn.com/b/nakama/archive/2009/01/02/net-part-2.aspx

その様子は、以下の記事のコードを NumberOfActiveConnections と NumberOfFreeConnections も有効にして試すと、実際に自分の目で見て確認できると思います。

ADO.NET でのパフォーマンス カウンター
https://msdn.microsoft.com/ja-jp/library/ms254503(v=vs.110).aspx

ADO.NET + SqlClient を使ってのアプリからの SQL Server へのアクセスの話ですよね。そう理解して・・・

> この状態でDBを利用した時、接続の度にプールが1つづつ増えていくのでしょうか。

まず、Connection Pool は接続文字列ごとに作られ、最初はその中の Connection はゼロです。そして、前の接続を Close しないまま次の接続を Open すると一つずつ増えていきます。

Close してから Open すれば Pool の中の Connection が再利用されますので増えることはないです。

そのあたりは以下の記事で最初に出てくる図とその説明 ".Open() メソッドは、コネクションプールからのコネクションの貸し出し処理、.Close() メソッドは、プールへの返却処理になっている。" を見るとよく分かると思います。
 
.NETの例外処理 Part.2
 http://blogs.msdn.com/b/nakama/archive/2009/01/02/net-part-2.aspx
 
その様子は、以下の記事のコードを NumberOfActiveConnections と NumberOfFreeConnections も有効にして試すと、実際に自分の目で見て確認できると思います。
 
ADO.NET でのパフォーマンス カウンター
https://msdn.microsoft.com/ja-jp/library/ms254503(v=vs.110).aspx