自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

闡述ADO.NET計(jì)數(shù)器BUG說(shuō)明舉例

開(kāi)發(fā) 后端
學(xué)習(xí)使用ADO.NET很長(zhǎng)時(shí)間了, 偶然間發(fā)現(xiàn)了ADO.NET1.1下使用性能計(jì)數(shù)器觀察連接池有關(guān)計(jì)數(shù)器的兩個(gè)bug,下面就和大家說(shuō)說(shuō),簡(jiǎn)單說(shuō)說(shuō)ADO.NET計(jì)數(shù)器bug。

學(xué)習(xí)使用ADO.NET很長(zhǎng)時(shí)間了, 那天偶然發(fā)現(xiàn)ADO.NET計(jì)數(shù)器出現(xiàn)了很多的錯(cuò)誤,這些錯(cuò)誤我也不知道是因?yàn)槭裁丛蛳略斐傻?,下面就和大家說(shuō)說(shuō),簡(jiǎn)單說(shuō)說(shuō)ADO.NET計(jì)數(shù)器bug。

ADO.NET計(jì)數(shù)器bug一.

當(dāng)應(yīng)用程序進(jìn)程關(guān)閉后,計(jì)數(shù)器“SqlClient: Current # pooled connections”和“SqlClient: Current # connection pools”不會(huì)減為0,所以每重新運(yùn)行一次應(yīng)用程序性能計(jì)數(shù)器的值在上次的值的基礎(chǔ)上一直累加。這是計(jì)數(shù)器的錯(cuò)誤顯示,實(shí)際上當(dāng)應(yīng)用程序關(guān)閉后connection pool和pooled connection就減為0。因?yàn)殛P(guān)閉應(yīng)用程序后把性能監(jiān)視器也關(guān)閉,重啟應(yīng)用程序后再重新打開(kāi)性能監(jiān)視器就可以看出“SqlClient: Current # pooled connections”和“SqlClient: Current # connection pools”是重新從0開(kāi)始上升的。

ADO.NET計(jì)數(shù)器bug二.

用斷點(diǎn)調(diào)試的情況下,連接串為"server = .;database = northwind;pooling = true;trusted_connection = true" 的connnection第一次Open的時(shí)候“SqlClient: Current # pooled connections”就從0變?yōu)?。但根據(jù)連接串參數(shù)的意義,只Open了一個(gè)connection,“SqlClient: Current # pooled connections”應(yīng)該從0變?yōu)?(圖2是在沒(méi)有斷點(diǎn)調(diào)試的情況下得出的曲線)。這不是計(jì)數(shù)器顯示錯(cuò)誤,而是ADO.ENT 1.1本身的bug,因?yàn)椤癠ser Connections”也隨著“SqlClient: Current # pooled connections”從0變?yōu)?。 #t#

為什么需要連接池?

完成建立/關(guān)閉一個(gè)連接的完整過(guò)程是一個(gè)消耗大量資源和時(shí)間的一個(gè)過(guò)程。想象一下一個(gè)ASP.NET的系統(tǒng),里面包含大量訪問(wèn)數(shù)據(jù)庫(kù)的代碼片,系統(tǒng)有大量的用戶同時(shí)在使用系統(tǒng),如果程序每次Open/Close一個(gè)連接Data Provider都完成建立/關(guān)閉一個(gè)連接的完整過(guò)程,這樣的系統(tǒng)性能肯定讓人無(wú)法接受。

Data Provider提供連接池并通過(guò)連接池實(shí)現(xiàn)“物理連接”重復(fù)使用而避免頻繁地建立和關(guān)閉“ADO.NET計(jì)數(shù)器”,從而大大提高應(yīng)用系統(tǒng)的性能。圖1描述一個(gè)應(yīng)用的不同Client App使用連接池訪問(wèn)數(shù)據(jù)庫(kù),Data Provider負(fù)責(zé)建立和管理一個(gè)或者多個(gè)的連接池,每一個(gè)連接池里有一個(gè)或者多個(gè)連接,池里的連接就是“邏輯連接”。連接池里有N個(gè)連接表示該連接池與數(shù)據(jù)庫(kù)之間有N個(gè)“ADO.NET計(jì)數(shù)器”。增加一個(gè)連接,連接池與數(shù)據(jù)庫(kù)的“物理連接”就增加一個(gè),減少一個(gè)連接,連接池與數(shù)據(jù)庫(kù)的“物理連接”就減少一個(gè)。

物理連接

責(zé)任編輯:chenqingxiang 來(lái)源: NET130
相關(guān)推薦

2009-10-29 11:47:15

ADO.NET計(jì)數(shù)器b

2009-12-18 16:28:35

ADO.NET結(jié)構(gòu)

2009-12-22 10:43:48

ADO.NET類庫(kù)

2009-12-22 10:58:50

ADO.NET類

2009-11-04 16:23:09

ADO.NET存儲(chǔ)過(guò)程

2009-11-03 16:51:04

ADO.NET連接池觀

2009-12-21 17:29:43

ADO.NET模型

2009-12-24 09:34:47

調(diào)用ADO.NET

2009-12-22 17:43:26

ADO.Net技術(shù)

2009-12-30 16:05:20

ADO.NET實(shí)例

2009-12-22 11:17:58

ADO.NET產(chǎn)品

2009-12-21 10:37:05

Ado.Net 實(shí)例

2009-12-22 09:15:02

ADO.NET功能

2009-12-30 15:11:35

ADO.NET數(shù)據(jù)

2009-12-21 14:55:49

ADO.NET屬性

2009-12-21 11:29:13

Ado.Net代碼

2010-01-04 13:16:31

ADO.NET命令

2009-12-18 17:01:21

ADO.NET數(shù)據(jù)

2010-01-04 09:03:57

ADO.NET連接對(duì)象

2009-12-21 15:52:30

ADO.NET對(duì)象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)