中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ADO.NET連接池相關注意問題有哪些

發布時間:2021-12-02 16:01:31 來源:億速云 閱讀:138 作者:iii 欄目:編程語言

本篇內容介紹了“ADO.NET連接池相關注意問題有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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

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

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

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

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

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

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

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

“ADO.NET連接池相關注意問題有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湖州市| 临朐县| 大丰市| 芒康县| 浦县| 驻马店市| 徐水县| 共和县| 赤峰市| 旺苍县| 遂溪县| 阿图什市| 明水县| 石棉县| 南昌市| 郓城县| 和硕县| 萝北县| 安庆市| 芦山县| 阳朔县| 台北县| 白玉县| 南城县| 乌鲁木齐市| 龙山县| 屏东县| 建宁县| 中牟县| 阿鲁科尔沁旗| 吉隆县| 宁阳县| 石楼县| 图木舒克市| 江都市| 喀什市| 娱乐| 仪陇县| 江油市| 孝昌县| 盘山县|