連接到數據庫服務器通常需要一定的時間,且服務器也需要一定的資源來處理連接。Web應用程序有時處理成千上萬的連接,需要相當多的資源來處理連接。ADO.NET具有連接池的特性,連接池的功能是保留一定數量的連接,當用戶使用相同的連接字符串再次連接服務器時,ASO.NET將使用連接池中的連接而不用重新發起一次連接過程。當調用Close方法關閉連接時,ADO.NET將使用連接池中的連接而不用重新發起一次連接過程。當調用Close方法關閉連接時,連接將會返回到連接池中,下次再次調用Open方法時,將從連接池中取出一個連接使用。
數據庫連接字符串默認為啟用連接池。使用連接池可以在連接字符串中用pooling=true/false來控制,設置連接池最大值和最小值可以使用Max Pool Size=200;Min Pool Size=1; 進行控制。
下邊新建一個控制臺應用程序來演示連接池的使用,其實我們僅僅是在Connection String中使用pooling=false/true來控制,默認是使用連接池技術的,也就是pooling=true:
復制代碼 代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
private static readonly string connectionString1 = @"Data Source=.;Initial Catalog=Northwind;Integrated Security=True;pooling=true;";//默認值即為true,所以可省略pooling=true
private static readonly string connectionString2 = @"Data Source=.;Initial Catalog=Northwind;Integrated Security=True;pooling=false;";
static void Main(string[] args)
{
long startTicks1 = DateTime.Now.Ticks;
using (SqlConnection conn1 = new SqlConnection(connectionString1))
{
for (int i = 0; i < 100; i++)
{
conn1.Open();
conn1.Close();
}
}
long endTicks1 = DateTime.Now.Ticks;
long usedTicks1 = endTicks1 - startTicks1;
Console.WriteLine("Used time: " + usedTicks1);
long startTicks2 = DateTime.Now.Ticks;
using (SqlConnection conn2 = new SqlConnection(connectionString2))
{
for (int i = 0; i < 100; i++)
{
conn2.Open();
conn2.Close();
}
}
long endTicks2 = DateTime.Now.Ticks;
long usedTicks2 = endTicks2 - startTicks2;
Console.WriteLine("Used time: " + usedTicks2);
}
}
}
復制代碼 代碼如下:
pooling=true: 710040
pooling=false: 3100177
Tags:ADO.NET 連接池技術
上一篇:.net 操作xml的簡單方法及說明
下一篇:asp.net+jquery ajax無刷新登錄的實現方法
相關文章
文章評論
最 近 更 新
熱 點 排 行
關于我們 - 廣告合作 - 聯系我們 - 免責聲明 - 網站地圖 - 投訴建議 - 在線投稿
CopyRight © 2006-2013 腳本之家 JB51.Net , All Rights Reserved. 蘇ICP備12007328號-1
業務QQ:461478385 QQ群:14624678、36345889
新聞熱點
疑難解答
圖片精選