日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
三分鐘讓你了解什么是ADO.NET連接池

ADO.NET經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解ADO.NET了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。數(shù)據(jù)庫(kù)連接,對(duì)于以數(shù)據(jù)庫(kù)做數(shù)據(jù)存儲(chǔ)基石的應(yīng)用系統(tǒng)來(lái)說(shuō),數(shù)據(jù)庫(kù)連接是整個(gè)系統(tǒng)中最珍貴的資源之一。數(shù)據(jù)庫(kù)連接池是為了更有效地利用數(shù)據(jù)庫(kù)連接的最重要措施。它對(duì)于一個(gè)大型的應(yīng)用系統(tǒng)的性能至關(guān)重要,特別是Web應(yīng)用。ADO.NET Data Provider(以下簡(jiǎn)稱Data Provider)會(huì)幫我們管理連接池,所以有人說(shuō)使用連接池就像游兒童池一樣輕松。但并不是說(shuō)有了Data Provider程序員就萬(wàn)事無(wú)憂的,不正確地使用ADO.NET連接池可能導(dǎo)致你的應(yīng)用在池里淹死。筆者希望通過(guò)本文能讓讀者徹底明白連接池的重要性以及能根據(jù)實(shí)際情況正確配置連接池的參數(shù),明白實(shí)際應(yīng)用中出現(xiàn)的連接泄漏、“死連接”等異常情況和應(yīng)對(duì)方法,讓?xiě)?yīng)用輕松暢游連接池。本文主要介紹ADO.NET連接池。

什么是ADO.NET連接池

#T#連接池是Data Provider提供的一個(gè)機(jī)制,使得應(yīng)用程序使用的連接保存在連接池里而避免每次都要完成建立/關(guān)閉連接的完整過(guò)程。要理解連接池,先要理解程序里 SqlConnection.Open()、SqlConnection.Close()和打開(kāi)/關(guān)閉一個(gè)“物理連接”的關(guān)系。 Data Provider在收到連接請(qǐng)求時(shí)建立連接的完整過(guò)程是:先連接池里建立新的連接(即“邏輯連接”),然后建立該“邏輯連接”對(duì)應(yīng)的“物理連接”。建立 “邏輯連接”一定伴隨著建立“物理連接”。Data Provider關(guān)閉一個(gè)連接的完整過(guò)程是先關(guān)閉“邏輯連接”對(duì)應(yīng)的“物理連接”然后銷毀“邏輯連接”。

銷毀“邏輯連接”一定伴隨著關(guān)閉“物理連接”。 SqlConnection.Open()是向Data Provider請(qǐng)求一個(gè)連接,Data Provider不一定需要完成建立連接的完整過(guò)程,可能只需要從連接池里取出一個(gè)可用的連接就可以;SqlConnection.Close()是請(qǐng)求關(guān)閉一個(gè)連接,Data Provider不一定需要完成關(guān)閉連接的完整過(guò)程,可能只需要把連接釋放回連接池就可以。

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

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

文章題目:三分鐘讓你了解什么是ADO.NET連接池
網(wǎng)站URL:http://m.5511xx.com/article/dpsdoch.html