999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析ASP.NET的數據庫連接池及原理

2017-05-19 16:07:01湯小波
商情 2017年12期
關鍵詞:進程數據庫物理

湯小波

(重慶三峽職業學院)

【摘要】數據庫連接池在.NET開發中有著重要的作用,本文講述了連接池的概念、工作原理,連接池的數據連接,以及如何避免連接泄漏,對于.NET應用程序在實際開發中具有深入的指導意義。

【關鍵字】連接池 連接

1、數據訪問原理及數據連接池產生的必要性

實現數據訪問,首先要建立了物理數據庫的連接,通過ADO.NET提供的Connection連接類,實現數據庫的連接。每當操作完成后,要斷開連接對象,釋放連接資源,一旦操作數據庫,又要重新連接。反復處理數據,就要反復實現數據連接。當數據連接中,便可對數據庫中的數據進行相關處理。

在應用程序的開發過程中,連接數據庫服務器是應用程序耗費大量資源且相對較慢的操作,但連接又是必須的。通常,連接到數據庫服務器由幾個需要花費很長時間的步驟組成,如建立物理通道、與服務器進行初次握手、分析連接字符串、服務器身份驗證等。如果這些連接反復打開和關閉,則系統開銷就會很大。因此為了避免這種相同連接不斷地重復打開與關閉操作,從而使打開連接花費的系統開銷最小,引入連接池的方法就很有必要。

2、連接池的概念

池可以想象成一個容器,數據連接池可以看成是一個已打開的及可重用的數據庫連接的一個容器。里面可以有多個打開的數據連接,處于激活或非激活狀態。通過為每個給定的連接配置保留一組活動連接來管理連接。每當用戶在連接上調用Open時,池進程就會查找池中可用的連接。如果某個池連接可用,會將該連接返回給調用者,而不是打開新連接。應用程序在該連接上調用Close時,池進程會將連接返回到活動連接池中,而不是關閉連接。連接返回到池中之后,即可在下一個Open調用中重復使用。

連接池中提供了空閑的、打開的、可重用的數據庫連接,而不再需要每次在請求數據庫數據時新打開一個數據庫連接。當數據庫連接關閉或釋放時,將返回到連接池中保持空閑狀態,直到新的連接請求到來。連接池在所有的數據庫連接都關閉時才從內存中釋放。因此,如果有效地使用連接池,打開和關閉數據庫所耗費的系統資源將大大減少。

3、連接池的工作原理

要理解連接池工作原理,首先需要了解程序里打開和關閉一個“物理連接”的關系。數據提供者在收到連接請求時建立連接的過程為:先在連接池里建立新的連接,然后建立該“邏輯連接”對應的“物理連接”,建立“邏輯連接”一定伴隨建立“物理連接”。關閉一個連接的過程為:先關閉“邏輯連接”對應的“物理連接”,然后銷毀“邏輯連接”。銷毀“邏輯連接”一定伴隨著關閉“物理連接”。其中,Open()是向Data Provider請求一個連接,Data Provider不一定需要完成建立連接的完整過程,可能只需要從連接池里取出一個可用的連接就可以;而Close()是請求關閉一個連接,Data Provider不一定需要完成關閉連接的完整過程,可能只需要把連接釋放回連接池就可以。

圖示中描述了一個應用中和不同客戶端應用程序使用連接池訪問數據庫的情況。圖中的虛線雙向箭頭表示客戶端應用程序和數據庫建立的“邏輯連接”,實線雙向箭頭表示連接池與數據庫之間的“物理連接”。如果增加一個連接,連接池與數據庫的“物理連接”就增加一個;如果減少一個連接。連接池與數據庫的“物理連接”就減少一個。

4、連接池中的連接

4.1連接增加

連接池由唯一的連接字符串創建。一旦連接池被建立,就立即建立由最小連接數量指定的連接。如果只有一個連接被占用,那么其它的連接為池里“可用的”連接。如果某進程有連接請求,而且請求的連接的連接串與該進程的某個連接池的連接串相同,那么如果該連接池里有“可用的”連接,就從連接池里取出一個“可用的”連接使用,如果沒有“可用的”連接就建立新的連接。

一旦程序運行連接的Close()方法后,“被占用的”連接被釋放回連接池變為“可用的”連接。如果連接已經達到最大連接數,并且所有連接都被占用,新的連接請求需要等待。如果有被占用的連接釋放回連接池,那么請求得到連接;如果請求等待超過連接時間,程序會拋出異常。

4.2 連接的減少

通常,對于如下兩種情況,連接池里的連接會減少。其一、每當一個連接使用完后釋放回連接池,如果當前時間減去該連接建立的時間的值大于Connection Lifetime設定的值,該連接被銷毀。其二、當發現某個連接對應的“物理連接”斷開時,該連接被銷毀。

5、連接遺漏

如何避免連接的泄漏,請注意下面幾點:其一、使用CommandBehavior.CloseConnection作為ExecuteReader參數,否則在多層結構的系統中,如果中間層向表現層返回DataReader,在表現層中關閉DataReader時不會關閉連接,就會造成連接遺漏。其二、執行DataAdapter的Fill和Update方法時,如果連接沒有打開,那么DataAdapter會自動打開連接,執行完操作后自動關閉連接;但如果連接已經打開,DataAdapter執行操作后需要手動關閉連接。

綜合來看,數據連接池在數據庫操作中有著重要的作用,但在使用時,完全不必擔心如何去管理數據連接池,它時由Data Provider自動管理的,應用程序默認采用數據連接池管理模式,在進行應用程序開發時,應注意連接的打開后的關閉,保證數據庫的正常使用。

猜你喜歡
進程數據庫物理
只因是物理
井岡教育(2022年2期)2022-10-14 03:11:44
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
處處留心皆物理
三腳插頭上的物理知識
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
我不是教物理的
中學生(2015年2期)2015-03-01 03:43:33
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 无码精品国产VA在线观看DVD| 成人福利一区二区视频在线| 色综合久久综合网| 日本五区在线不卡精品| 九九免费观看全部免费视频| 国产在线观看一区精品| 国产麻豆永久视频| 久久国产毛片| 亚洲国产天堂在线观看| 三级国产在线观看| 这里只有精品免费视频| a毛片在线播放| 国产精品性| 国产欧美日韩va另类在线播放 | 欧美日韩中文字幕在线| 色成人亚洲| 日韩资源站| 毛片免费在线| www.狠狠| 男女男精品视频| 欧美特黄一级大黄录像| 一区二区欧美日韩高清免费| 波多野结衣久久精品| 欧美国产精品不卡在线观看| 久久一日本道色综合久久| 欧美亚洲日韩中文| 国产亚洲视频中文字幕视频| 天天色综网| 六月婷婷精品视频在线观看 | 欧美精品不卡| 五月六月伊人狠狠丁香网| 国产亚洲精品自在久久不卡 | 无遮挡国产高潮视频免费观看 | 午夜精品久久久久久久99热下载| 五月天久久婷婷| 国产乱论视频| 99ri国产在线| 欧日韩在线不卡视频| 九月婷婷亚洲综合在线| 久青草免费视频| 91热爆在线| 欧美性爱精品一区二区三区| 在线国产91| 99re66精品视频在线观看| 亚洲黄色片免费看| 麻豆精品国产自产在线| 欧美亚洲欧美| 亚洲床戏一区| 国产超碰在线观看| 伊在人亚洲香蕉精品播放| 久久精品一品道久久精品| 久久99国产乱子伦精品免| 国产精品久久精品| 亚洲精品欧美日本中文字幕| 看国产一级毛片| 暴力调教一区二区三区| 亚洲不卡av中文在线| 久久综合色播五月男人的天堂| 久久香蕉国产线看观| 久久亚洲精少妇毛片午夜无码| 日韩一区二区三免费高清| a级免费视频| 丁香五月亚洲综合在线| 亚洲系列中文字幕一区二区| 99re在线视频观看| 久热re国产手机在线观看| 精品久久久久久成人AV| 日韩av无码精品专区| 亚洲无码不卡网| 91亚洲精品国产自在现线| 爆乳熟妇一区二区三区| 亚洲成A人V欧美综合天堂| 超薄丝袜足j国产在线视频| 亚洲高清在线播放| 亚洲欧美国产高清va在线播放| yjizz视频最新网站在线| 国产www网站| а∨天堂一区中文字幕| 国产成人凹凸视频在线| 亚洲一区二区三区在线视频| 久久久久久尹人网香蕉| 久久综合婷婷|