成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談如何更好的打開和關閉ADO.NET連接池

開發 后端
于ADO.NET連接池有什么作用,相信大家都比較了解了。當開啟了連接池后我們應該如何打開和關閉連接才能更好地利用連接池所帶給我們的好處呢?
MS提倡我們盡可能每次的在連接使用完成后就關閉;這樣導致每次都要進行打開和關閉操作或用using(){…}寫起代碼比較麻煩,還有經常對池的操作似乎也帶來一些性能上的問題;在Asp.net里一個WebForm經常涉及有N個數據庫操作,為了方便直接在init里打開一個連接,然后在Dispose里關閉即省事又能減少對池的操作提高性能;那到底這樣做能不能提高性能呢?答案是能,但有些情況估計會很讓你感覺到失望。當池的連接數能應付用戶請求的時候,的確是可以減少池的操作帶來性能的提升;反之就不一樣了用戶必須等待到獲取連接后才能進行其他操作,當有更多用戶在等待獲取連接的時候只能讓線程處于更長等待時間導致服務總體處理能力下降。

以下做一次簡單的測試:

測試方式是使用VS2008自帶的負載測試,測試用戶數是200,數據庫連接池數設置20,測度時長10分鐘。

關閉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);

            }

           

}

關閉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);

        }

關閉ADO.NET連接池測試結果1

 

<!--[if !vml]-->

測試結果1


<!--[endif]-->

關閉ADO.NET連接池測試結果2

 

<!--[if !vml]-->

測試結果2


<!--[endif]-->

從以上測試結果來看顯然是MS所提倡的方式在某些情況是更好的,因為隨著并發用戶的提高,即用即斷的方式總體上表現效果更佳。還有一點非常重要就是***種代碼方式會啟用了池的***數據庫連接數,而第二種代碼方式只使用了6個數據庫連接;這一點進一步說明了,即用即斷在某種情況下更節省數據庫連接資源。

雖然結果這樣但不代表是什么情況都使用即用即斷好,當池不會讓用戶在門外等的情況是不需要用的,當N個數據庫操作間沒其他特別耗時的運算***就用一個連接(對于這個耗時多長就根據你實際情況作出權衡了),對于什么情況應該怎樣做其實通過測試就能找到答案。不過我個人推薦還是用MS提倡的:),本人一向都是采用這種方式。  

【編輯推薦】

  1. ADO.NET中SQL Server數據庫連接池
  2. ADO.NET中的多數據表操作讀取
  3. 淺談ADO.NET中的五個主要對象
  4. 使用LINQ和ADO.NET創建Silverlight程序
  5. ADO.NET數據庫連接、操作SQL舉例
責任編輯:彭凡 來源: cnblogs
相關推薦

2010-01-05 10:11:23

ADO.NET連接池

2009-11-03 16:51:04

ADO.NET連接池觀

2009-11-13 13:11:37

ADO.NET連接池

2009-12-23 09:01:15

ADO.NET連接池

2009-12-23 14:53:28

ADO.NET連接池

2009-11-12 09:25:21

ADO.NET連接池

2009-11-11 14:04:14

ADO.NET連接池

2009-11-03 15:58:22

2010-02-25 09:06:40

ADO.NET連接池

2009-12-23 09:14:52

ADO.NET連接池

2009-12-30 16:22:58

ADO.NET連接池

2009-07-20 14:03:43

Ado.net連接池

2009-11-03 16:04:29

2009-12-24 09:49:02

ADO.Net連接池

2010-01-04 16:18:13

ADO.NET連接池

2009-06-26 14:41:48

ADO.NET

2009-12-24 11:04:21

ADO.Net技術

2009-12-24 14:39:53

設計ADO.NET

2009-11-03 16:57:34

ADO.NET FAQ

2009-11-12 08:59:18

ADO.NET數據庫連
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99福利 | 99久久精品国产一区二区三区 | 在线观看www高清视频 | av av在线| 91一区二区三区在线观看 | 成人影院免费视频 | 97精品视频在线观看 | 国产精品久久久久久久久久久久久久 | 四虎影音 | 国产精品久久久乱弄 | 蜜桃视频在线观看免费视频网站www | 日韩一二区在线 | 欧美自拍视频 | 久草免费福利 | 福利视频三区 | 四虎首页| 欧美激情精品久久久久久免费 | 亚洲a在线视频 | 一级欧美日韩 | 日韩和的一区二区 | 亚洲欧美一区二区三区在线 | 国产精品区一区二区三区 | 日日夜夜精品视频 | 狠狠色综合欧美激情 | 国产成人一区二 | 国产三区四区 | 精品成人av | 成人激情免费视频 | 久久亚洲综合 | 久久在线| 日日摸夜夜爽人人添av | 啪啪综合网 | 成人av免费 | 成人激情视频网 | 国产精品黄色 | 久久久久国 | 91免费在线看 | 欧美精品在线视频 | 伊人网在线看 | 亚洲欧美日韩在线一区二区 | 草久视频 |