新聞中心
不要關(guān)閉數(shù)據(jù)庫中所有的連接,至少保證ADO.NET連接池中有一個連接可用。如果內(nèi)存和其他資源是你必須首先考慮的問題,可以關(guān)閉所有的連接,然后在下一個請求到來時創(chuàng)建連接池。

創(chuàng)新互聯(lián)建站服務(wù)項目包括清澗網(wǎng)站建設(shè)、清澗網(wǎng)站制作、清澗網(wǎng)頁制作以及清澗網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,清澗網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到清澗省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
ADO.NET經(jīng)過長時間的發(fā)展,很多用戶都很了解ADO.NET了,這里我發(fā)表一下個人理解,和大家討論討論。數(shù)據(jù)庫連接,對于以數(shù)據(jù)庫做數(shù)據(jù)存儲基石的應(yīng)用系統(tǒng)來說,數(shù)據(jù)庫連接是整個系統(tǒng)中最珍貴的資源之一。
數(shù)據(jù)庫連接池是為了更有效地利用數(shù)據(jù)庫連接的最重要措施。它對于一個大型的應(yīng)用系統(tǒng)的性能至關(guān)重要,特別是Web應(yīng)用。ADO.NET Data Provider(以下簡稱Data Provider)會幫我們管理連接池,所以有人說使用連接池就像游兒童池一樣輕松。
但并不是說有了Data Provider程序員就萬事無憂的,不正確地使用ADO.NET連接池可能導(dǎo)致你的應(yīng)用在池里淹死。筆者希望通過本文能讓讀者徹底明白連接池的重要性以及能根據(jù)實際情況正確配置連接池的參數(shù),明白實際應(yīng)用中出現(xiàn)的連接泄漏、“死連接”等異常情況和應(yīng)對方法,讓應(yīng)用輕松暢游連接池。本文主要介紹ADO.NET連接池。
什么是ADO.NET連接池
連接池是Data Provider提供的一個機制,使得應(yīng)用程序使用的連接保存在連接池里而避免每次都要完成建立/關(guān)閉連接的完整過程。要理解連接池,先要理解程序里 SqlConnection.Open()、SqlConnection.Close()和打開/關(guān)閉一個“物理連接”的關(guān)系。 Data Provider在收到連接請求時建立連接的完整過程是:先連接池里建立新的連接(即“邏輯連接”),然后建立該“邏輯連接”對應(yīng)的“物理連接”。建立 “邏輯連接”一定伴隨著建立“物理連接”。Data Provider關(guān)閉一個連接的完整過程是先關(guān)閉“邏輯連接”對應(yīng)的“物理連接”然后銷毀“邏輯連接”。 #t#
銷毀“邏輯連接”一定伴隨著關(guān)閉“物理連接”。 SqlConnection.Open()是向Data Provider請求一個連接,Data Provider不一定需要完成建立連接的完整過程,可能只需要從連接池里取出一個可用的連接就可以;SqlConnection.Close()是請求關(guān)閉一個連接,Data Provider不一定需要完成關(guān)閉連接的完整過程,可能只需要把連接釋放回連接池就可以。
下面以一個例子來說明。本文例子都使用Console Application。我們使用ADO.NET連接池操作系統(tǒng)的性能監(jiān)視器來比較使用連接池與否,數(shù)據(jù)庫的“物理連接”數(shù)量的不同。因為性能監(jiān)視器至少每一秒采集一次數(shù)據(jù),為方便觀察效果,代碼中Open和Close連接后都Sleep一秒。
當(dāng)前文章:講述什么是ADO.NET連接池及其使用方法
地址分享:http://m.fisionsoft.com.cn/article/dhjijpj.html


咨詢
建站咨詢
