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

淺析ASP.NET的數(shù)據(jù)庫連接池及原理

2017-05-19 16:07:01湯小波
商情 2017年12期
關(guān)鍵詞:進(jìn)程數(shù)據(jù)庫物理

湯小波

(重慶三峽職業(yè)學(xué)院)

【摘要】數(shù)據(jù)庫連接池在.NET開發(fā)中有著重要的作用,本文講述了連接池的概念、工作原理,連接池的數(shù)據(jù)連接,以及如何避免連接泄漏,對(duì)于.NET應(yīng)用程序在實(shí)際開發(fā)中具有深入的指導(dǎo)意義。

【關(guān)鍵字】連接池 連接

1、數(shù)據(jù)訪問原理及數(shù)據(jù)連接池產(chǎn)生的必要性

實(shí)現(xiàn)數(shù)據(jù)訪問,首先要建立了物理數(shù)據(jù)庫的連接,通過ADO.NET提供的Connection連接類,實(shí)現(xiàn)數(shù)據(jù)庫的連接。每當(dāng)操作完成后,要斷開連接對(duì)象,釋放連接資源,一旦操作數(shù)據(jù)庫,又要重新連接。反復(fù)處理數(shù)據(jù),就要反復(fù)實(shí)現(xiàn)數(shù)據(jù)連接。當(dāng)數(shù)據(jù)連接中,便可對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行相關(guān)處理。

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

2、連接池的概念

池可以想象成一個(gè)容器,數(shù)據(jù)連接池可以看成是一個(gè)已打開的及可重用的數(shù)據(jù)庫連接的一個(gè)容器。里面可以有多個(gè)打開的數(shù)據(jù)連接,處于激活或非激活狀態(tài)。通過為每個(gè)給定的連接配置保留一組活動(dòng)連接來管理連接。每當(dāng)用戶在連接上調(diào)用Open時(shí),池進(jìn)程就會(huì)查找池中可用的連接。如果某個(gè)池連接可用,會(huì)將該連接返回給調(diào)用者,而不是打開新連接。應(yīng)用程序在該連接上調(diào)用Close時(shí),池進(jìn)程會(huì)將連接返回到活動(dòng)連接池中,而不是關(guān)閉連接。連接返回到池中之后,即可在下一個(gè)Open調(diào)用中重復(fù)使用。

連接池中提供了空閑的、打開的、可重用的數(shù)據(jù)庫連接,而不再需要每次在請(qǐng)求數(shù)據(jù)庫數(shù)據(jù)時(shí)新打開一個(gè)數(shù)據(jù)庫連接。當(dāng)數(shù)據(jù)庫連接關(guān)閉或釋放時(shí),將返回到連接池中保持空閑狀態(tài),直到新的連接請(qǐng)求到來。連接池在所有的數(shù)據(jù)庫連接都關(guān)閉時(shí)才從內(nèi)存中釋放。因此,如果有效地使用連接池,打開和關(guān)閉數(shù)據(jù)庫所耗費(fèi)的系統(tǒng)資源將大大減少。

3、連接池的工作原理

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

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

4、連接池中的連接

4.1連接增加

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

一旦程序運(yùn)行連接的Close()方法后,“被占用的”連接被釋放回連接池變?yōu)椤翱捎玫摹边B接。如果連接已經(jīng)達(dá)到最大連接數(shù),并且所有連接都被占用,新的連接請(qǐng)求需要等待。如果有被占用的連接釋放回連接池,那么請(qǐng)求得到連接;如果請(qǐng)求等待超過連接時(shí)間,程序會(huì)拋出異常。

4.2 連接的減少

通常,對(duì)于如下兩種情況,連接池里的連接會(huì)減少。其一、每當(dāng)一個(gè)連接使用完后釋放回連接池,如果當(dāng)前時(shí)間減去該連接建立的時(shí)間的值大于Connection Lifetime設(shè)定的值,該連接被銷毀。其二、當(dāng)發(fā)現(xiàn)某個(gè)連接對(duì)應(yīng)的“物理連接”斷開時(shí),該連接被銷毀。

5、連接遺漏

如何避免連接的泄漏,請(qǐng)注意下面幾點(diǎn):其一、使用CommandBehavior.CloseConnection作為ExecuteReader參數(shù),否則在多層結(jié)構(gòu)的系統(tǒng)中,如果中間層向表現(xiàn)層返回DataReader,在表現(xiàn)層中關(guān)閉DataReader時(shí)不會(huì)關(guān)閉連接,就會(huì)造成連接遺漏。其二、執(zhí)行DataAdapter的Fill和Update方法時(shí),如果連接沒有打開,那么DataAdapter會(huì)自動(dòng)打開連接,執(zhí)行完操作后自動(dòng)關(guān)閉連接;但如果連接已經(jīng)打開,DataAdapter執(zhí)行操作后需要手動(dòng)關(guān)閉連接。

綜合來看,數(shù)據(jù)連接池在數(shù)據(jù)庫操作中有著重要的作用,但在使用時(shí),完全不必?fù)?dān)心如何去管理數(shù)據(jù)連接池,它時(shí)由Data Provider自動(dòng)管理的,應(yīng)用程序默認(rèn)采用數(shù)據(jù)連接池管理模式,在進(jìn)行應(yīng)用程序開發(fā)時(shí),應(yīng)注意連接的打開后的關(guān)閉,保證數(shù)據(jù)庫的正常使用。

猜你喜歡
進(jìn)程數(shù)據(jù)庫物理
只因是物理
井岡教育(2022年2期)2022-10-14 03:11:44
債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
處處留心皆物理
三腳插頭上的物理知識(shí)
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
我不是教物理的
中學(xué)生(2015年2期)2015-03-01 03:43:33
社會(huì)進(jìn)程中的新聞學(xué)探尋
主站蜘蛛池模板: 亚洲精品波多野结衣| 国产在线精品人成导航| 国产亚洲成AⅤ人片在线观看| 精品国产黑色丝袜高跟鞋 | 青草视频网站在线观看| 日本一区二区三区精品AⅤ| 国产swag在线观看| 欧美色亚洲| 日本尹人综合香蕉在线观看| 精品99在线观看| 国产精品污污在线观看网站| 久久视精品| 欧美性久久久久| 国产综合精品日本亚洲777| 试看120秒男女啪啪免费| 五月激情婷婷综合| 91九色视频网| 欧美精品1区2区| 国产成人久视频免费| 欧美日韩第二页| 亚洲精品无码AⅤ片青青在线观看| 四虎在线观看视频高清无码| 亚洲综合极品香蕉久久网| 亚洲最大在线观看| 91成人在线观看| 日韩毛片基地| 亚洲第一区欧美国产综合| 欧美在线三级| 日韩精品成人网页视频在线| 久久精品人妻中文系列| 三级国产在线观看| 国产专区综合另类日韩一区| 天天色天天综合| 中文字幕首页系列人妻| 全部免费特黄特色大片视频| 2021最新国产精品网站| 免费中文字幕一级毛片| 99热国产在线精品99| 91无码人妻精品一区| 国产精品视频公开费视频| 国产亚洲欧美在线专区| 欧美日韩国产在线播放| 国产视频只有无码精品| 2020极品精品国产 | 日韩视频免费| 日韩人妻无码制服丝袜视频| 在线不卡免费视频| 国产麻豆精品久久一二三| 亚洲无码精彩视频在线观看| 欧美精品亚洲精品日韩专区va| 亚洲综合国产一区二区三区| 香蕉国产精品视频| 国产极品美女在线| 国产精品网址你懂的| 欧美第九页| 中文字幕无码av专区久久| 国产精品深爱在线| 亚洲美女高潮久久久久久久| 久久永久视频| 99国产精品一区二区| 九九免费观看全部免费视频| 国产人免费人成免费视频| 国产精品不卡永久免费| 亚洲h视频在线| 免费在线看黄网址| 经典三级久久| 亚洲中文字幕手机在线第一页| 香蕉久久国产超碰青草| 国产成人精品一区二区| 91在线国内在线播放老师| 国产sm重味一区二区三区| 国产精品视频观看裸模| 日韩美毛片| 日韩欧美在线观看| 色婷婷视频在线| 久久天天躁狠狠躁夜夜躁| 国产极品美女在线播放| 日本一本在线视频| 亚洲男人在线天堂| 国产亚洲精品97AA片在线播放| 永久免费AⅤ无码网站在线观看| 欧美午夜性视频|