自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

漫談ADO.NET連接池相關注意問題說明

開發(fā) 后端
SQLServer的ADO.NET連接池數(shù)量都減少一。由于不使用連接池,每次Close連接的時候Data Provider需要把“邏輯連接”和“物理連接”都銷毀了。

ADO.NET連接池是Data Provider提供的一個機制,使得應用程序使用的連接保存在連接池里而避免每次都要完成建立/關閉連接的完整過程。要理解連接池,首先要了解程序里“物理連接”的關系。

Data Provider在收到連接請求時建立連接的完整過程是:先連接池里建立新的連接(即“邏輯連接”),然后建立該“邏輯連接”對應的“物理連接”。建立“邏輯連接”一定伴隨著建立“物理連接”。

Data Provider關閉一個連接的完整過程是先關閉“邏輯連接”對應的“物理連接”然后銷毀“邏輯連接”。銷毀“邏輯連接”一定伴隨著關閉“物理連接”。SqlConnection.Open()是向Data Provider請求一個連接,Data Provider不一定需要完成建立連接的完整過程。#t#

可能只需要從連接池里取出一個可用的連接就可以;SqlConnection.Close()是請求關閉一個連接,Data Provider不一定需要完成關閉連接的完整過程,可能只需要把連接釋放回連接池就可以。

下面以一個例子來說明。本文例子都使用Console Application。我們使用操作系統(tǒng)的性能監(jiān)視器來比較使用連接池與否,數(shù)據(jù)庫的“物理連接”數(shù)量的不同。因為性能監(jiān)視器至少每一秒采集一次數(shù)據(jù),為方便觀察效果,代碼中Open和Close連接后都Sleep一秒。

  1. SqlConnection con = new SqlConnection("server = .; 
  2.  database = northwind;pooling = false;trusted_connection = true"); 
  3.  for(int i = 0;i < 10;i++)  {  try  {  con.Open();  System.Threading.Thread.Sleep(1000);  
  4. }  
  5. catch(Exception e){Console.WriteLine(e.Message);}  finally  {  con.Close();  System.Threading.Thread.Sleep(1000);  }   
  6. }   

首先,不使用ADO.NET連接池做測試。以上程序中pooing = false表示不使用連接池,程序使用同一個連接串Open & Close了10次連接,使用性能計數(shù)器觀察SQL Server的“物理連接”數(shù)量。

從下面的鋸齒圖可以看出每執(zhí)行一次con.Open(),SQLServer的“ADO.NET連接池”數(shù)量都增加一,而每執(zhí)行一次con.Close(),SQLServer的“物理連接”數(shù)量都減少一。由于不使用連接池,每次Close連接的時候Data Provider需要把“邏輯連接”和“物理連接”都銷毀了,每次Open連接的時候Data Provider需要 建立“邏輯連接”和“物理連接”,鋸齒圖因此而成。

責任編輯:chenqingxiang 來源: csdn
相關推薦

2009-12-23 09:14:52

ADO.NET連接池

2009-12-29 14:24:40

使用ADO.NET

2009-12-23 09:01:15

ADO.NET連接池

2009-12-23 14:53:28

ADO.NET連接池

2009-12-22 15:33:33

ADO.NET參數(shù)

2009-12-29 13:40:24

使用ADO.NET

2009-11-03 16:51:04

ADO.NET連接池觀

2009-11-13 13:11:37

ADO.NET連接池

2010-01-04 14:40:51

ADO 檢索

2009-12-21 17:39:02

ADO.NET操作

2009-11-12 09:25:21

ADO.NET連接池

2009-11-11 14:04:14

ADO.NET連接池

2010-01-05 10:11:23

ADO.NET連接池

2009-11-03 15:58:22

2010-02-25 09:06:40

ADO.NET連接池

2009-07-20 14:03:43

Ado.net連接池

2009-12-30 16:22:58

ADO.NET連接池

2009-12-23 16:31:04

ADO.NET EF

2009-12-24 09:49:02

ADO.Net連接池

2009-12-25 10:25:59

點贊
收藏

51CTO技術棧公眾號