本篇內(nèi)容主要講解“如何更方便地打開和關(guān)閉ADO.NET連接池”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“如何更方便地打開和關(guān)閉ADO.NET連接池”吧!
網(wǎng)站制作、建網(wǎng)站找專業(yè)網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián):定制網(wǎng)站、模板網(wǎng)站、仿站、微信小程序定制開發(fā)、軟件開發(fā)、成都App定制開發(fā)等。做網(wǎng)站價格咨詢創(chuàng)新互聯(lián):服務(wù)完善、10多年建站、值得信賴!網(wǎng)站制作電話:028-86922220
MS提倡我們盡可能每次的在連接使用完成后就關(guān)閉;這樣導(dǎo)致每次都要進行打開和關(guān)閉操作或用using(){…}寫起代碼比較麻煩,還有經(jīng)常對池的操作似乎也帶來一些性能上的問題;在Asp.net里一個WebForm經(jīng)常涉及有N個數(shù)據(jù)庫操作,為了方便直接在init里打開一個連接,然后在Dispose里關(guān)閉即省事又能減少對池的操作提高性能;那到底這樣做能不能提高性能呢?答案是能,但有些情況估計會很讓你感覺到失望…。當(dāng)池的連接數(shù)能應(yīng)付用戶請求的時候,的確是可以減少池的操作帶來性能的提升;反之就不一樣了用戶必須等待到獲取連接后才能進行其他操作,當(dāng)有更多用戶在等待獲取連接的時候只能讓線程處于更長等待時間導(dǎo)致服務(wù)總體處理能力下降。
以下做一次簡單的測試:
測試方式是使用VS2008自帶的負載測試,測試用戶數(shù)是200,數(shù)據(jù)庫連接池數(shù)設(shè)置20,測度時長10分鐘。
關(guān)閉ADO.NET連接池測試代碼1:
protected void Page_Load(object sender, EventArgs e)
{
using (System.Data.SqlClient.SqlConnection sqlconn= new System.Data.SqlClient.SqlConnection("data source=.;initial catalog=northwind;user id=sa;pwd=;Max Pool Size=20"))
{
sqlconn.Open();
System.Threading.Thread.Sleep(300);
}
}
關(guān)閉ADO.NET連接池測試代碼2:
protected void Page_Load(object sender, EventArgs e)
{
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection("data source=.;initial catalog=northwind;user id=sa;pwd=;Max Pool Size=20"))
{
sqlconn.Open();
}
System.Threading.Thread.Sleep(50);
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection("data source=.;initial catalog=northwind;user id=sa;pwd=;Max Pool Size=20"))
{
sqlconn.Open();
}
System.Threading.Thread.Sleep(50);
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection("data source=.;initial catalog=northwind;user id=sa;pwd=;Max Pool Size=20"))
{
sqlconn.Open();
}
System.Threading.Thread.Sleep(50);
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection("data source=.;initial catalog=northwind;user id=sa;pwd=;Max Pool Size=20"))
{
sqlconn.Open();
}
System.Threading.Thread.Sleep(50);
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection("data source=.;initial catalog=northwind;user id=sa;pwd=;Max Pool Size=20"))
{
sqlconn.Open();
}
System.Threading.Thread.Sleep(100);
}
關(guān)閉ADO.NET連接池測試結(jié)果1
<!--[if !vml]-->
<!--[endif]-->
undefined
關(guān)閉ADO.NET連接池測試結(jié)果2
<!--[if !vml]-->
<!--[endif]-->
從以上測試結(jié)果來看顯然是MS所提倡的方式在某些情況是更好的,因為隨著并發(fā)用戶的提高,即用即斷的方式總體上表現(xiàn)效果更佳。還有一點非常重要就是***種代碼方式會啟用了池的***數(shù)據(jù)庫連接數(shù),而第二種代碼方式只使用了6個數(shù)據(jù)庫連接;這一點進一步說明了,即用即斷在某種情況下更節(jié)省數(shù)據(jù)庫連接資源。
雖然結(jié)果這樣但不代表是什么情況都使用即用即斷好,當(dāng)池不會讓用戶在門外等的情況是不需要用的,當(dāng)N個數(shù)據(jù)庫操作間沒其他特別耗時的運算***就用一個連接(對于這個耗時多長就根據(jù)你實際情況作出權(quán)衡了),對于什么情況應(yīng)該怎樣做其實通過測試就能找到答案。不過我個人推薦還是用MS提倡的:),本人一向都是采用這種方式。
到此,相信大家對“如何更方便地打開和關(guān)閉ADO.NET連接池”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
文章名稱:如何更方便地打開和關(guān)閉ADO.NET連接池
網(wǎng)頁網(wǎng)址:http://m.newbst.com/article12/gceogc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、軟件開發(fā)、品牌網(wǎng)站設(shè)計、營銷型網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)