ADO.NET之連接池技術(shù)的使用詳解
連接到數(shù)據(jù)庫(kù)服務(wù)器通常需要一定的時(shí)間,且服務(wù)器也需要一定的資源來(lái)處理連接。Web應(yīng)用程序有時(shí)處理成千上萬(wàn)的連接,需要相當(dāng)多的資源來(lái)處理連接。ADO.NET具有連接池的特性,連接池的功能是保留一定數(shù)量的連接,當(dāng)用戶使用相同的連接字符串再次連接服務(wù)器時(shí),ASO.NET將使用連接池中的連接而不用重新發(fā)起一次連接過(guò)程。當(dāng)調(diào)用Close方法關(guān)閉連接時(shí),ADO.NET將使用連接池中的連接而不用重新發(fā)起一次連接過(guò)程。當(dāng)調(diào)用Close方法關(guān)閉連接時(shí),連接將會(huì)返回到連接池中,下次再次調(diào)用Open方法時(shí),將從連接池中取出一個(gè)連接使用。
數(shù)據(jù)庫(kù)連接字符串默認(rèn)為啟用連接池。使用連接池可以在連接字符串中用pooling=true/false來(lái)控制,設(shè)置連接池最大值和最小值可以使用Max Pool Size=200;Min Pool Size=1; 進(jìn)行控制。
下邊新建一個(gè)控制臺(tái)應(yīng)用程序來(lái)演示連接池的使用,其實(shí)我們僅僅是在Connection String中使用pooling=false/true來(lái)控制,默認(rèn)是使用連接池技術(shù)的,也就是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;";//默認(rèn)值即為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);
}
}
}
輸出結(jié)果:
pooling=true: 710040
pooling=false: 3100177
- ADO.NET EF中的實(shí)體修改方法
- ADO.NET 連接數(shù)據(jù)庫(kù)字符串小結(jié)(Oracle、SqlServer、Access、ODBC)
- ADO.NET實(shí)體數(shù)據(jù)模型詳細(xì)介紹
- ADO.NET中的五個(gè)主要對(duì)象的詳細(xì)介紹與應(yīng)用
- ADO.Net 類型化DataSet的簡(jiǎn)單介紹
- ASP.NET中實(shí)現(xiàn)把Json數(shù)據(jù)轉(zhuǎn)換為ADO.NET DataSet對(duì)象
- ADO.NET編程之基礎(chǔ)知識(shí)
- ADO.NET基礎(chǔ)知識(shí)匯總
相關(guān)文章
在.NET使用JSON作為數(shù)據(jù)交換格式實(shí)例演示
JSON(JavaScript Object Notation)是一種輕量級(jí)輕量級(jí)的數(shù)據(jù)交換格式,并且它獨(dú)立于編程語(yǔ)言,接下來(lái)為大家介紹下使用JSON作為數(shù)據(jù)交換格式在.net中的應(yīng)用2013-03-03
使用ASP.NET創(chuàng)建線程實(shí)例教程
這篇文章主要介紹了使用ASP.NET創(chuàng)建線程的方法,需要的朋友可以參考下2014-07-07
一個(gè)簡(jiǎn)單的文件MD5碼自動(dòng)計(jì)算比較器(附源碼)
一直在玩 WOW ,發(fā)現(xiàn)網(wǎng)上的 MD5 計(jì)算工具都沒(méi)有自動(dòng)比較功能,每次下載更新計(jì)算后,都要自己一個(gè)一個(gè)字母核對(duì),比較麻煩。 最近開(kāi)始學(xué)習(xí) C# ,用 .NET ,做了一個(gè)簡(jiǎn)單的文件MD5碼自動(dòng)計(jì)算比較器。2013-02-02
12小時(shí)制和24小時(shí)制獲取當(dāng)天零點(diǎn)的問(wèn)題探討
這篇文章介紹了12小時(shí)制和24小時(shí)制獲取當(dāng)天零點(diǎn)的問(wèn)題探討,有需要的朋友可以參考一下2013-09-09
asp.net core新特性之TagHelper標(biāo)簽助手
這篇文章主要為大家詳細(xì)介紹了asp.net core新特性之TagHelper標(biāo)簽助手的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Repeater事件OnItemCommand取得行內(nèi)控件的方法
這篇文章主要介紹了Repeater事件OnItemCommand取得行內(nèi)控件的方法,有需要的朋友可以參考一下2014-01-01
四個(gè)常用的.NET的SQLHELPER方法實(shí)例
這篇文章主要介紹了四個(gè)常用的.NET的SQLHELPER方法,在WinForm的實(shí)際開(kāi)發(fā)中比較常用,需要的朋友可以參考下2014-08-08

