連接配接池的概念:連接配接池是一個程序,該程序儲存連接配接并使其處于活動狀态,使連接配接可以被重複使用。在實際的應用場景中,相同的連接配接字元串對應一個連接配接池。如果用這個連接配接字元串new出多個資料庫連接配接,操作完相關的資料操作後,顯示close掉連接配接,對于資料庫而言,該連接配接并沒有被釋放,而隻不過是被标記為"關閉"狀态,當一次再次要用到該連接配接的時候,它可以從連接配接池中拿出來使用。然而,如果你有太多的連接配接都沒有close掉的話,那麼連接配接池裡打開的連接配接都未被标記為“關閉”狀态,這些連結是不可以重複利用的,當超過一定數額的時候就會出現連接配接異常。在沒有超過max pool size (該值可以在寫連接配接字元串的時候自己設定大小,預設為100)的情況下,如果沒有可以重複利用的連接配接,則,資料庫會自行往連接配接池中增加連接配接。
下面用一個簡單的例子來說明下:

代碼如下:
代碼
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ConnectionPool
{
public partial class Form1 : Form
{
SqlConnection conn = null ;
public Form1()
{
InitializeComponent();
}
private void Form1_Load( object sender, EventArgs e)
{
this .textBox1.Text = @" Data Source=HUAMA-QJ;
Initial Catalog=DBApp;Persist Security Info=True;User ID=sa;
Password=******;max pool size=5 " ;
}
private void btnOpen_Click( object sender, EventArgs e)
{
conn = new SqlConnection( this .textBox1.Text);
conn.Open();
}
private void btnClose_Click( object sender, EventArgs e)
{
if (conn != null )
conn.Close();
// SqlConnection.ClearPool(conn);
}
}
}
在Textbox裡設定了連接配接池中能夠容納連接配接的最大數:5個。
如果您點選“OpenConn”,你點選5次,這個時候在SQLSERVER MANAGEMENT STUDIO中執行sp_who2存儲過程可以看到以下結果:
如果你再次點選"openConn"這個時候就出現異常“”。
當然,你也可以配置min pool size,可以将上述的連接配接字元串中的max改成min,你會發現,你隻要點選一次"openConn"就會發現直接打開了5個連接配接,這個就是最小連接配接的含義。當你想要清除該連接配接字元串相關的連接配接的時候,也就是清除連接配接池中相關的連接配接,你可以用SqlConnection.ClearPool(conn);
大家可以自己親手體驗一下這個簡單的demo,然後再去體會連接配接池的作用。
轉載于:https://www.cnblogs.com/shineqiujuan/archive/2010/04/21/1717303.html