溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET數(shù)據(jù)庫(kù)連接池設(shè)置方法

發(fā)布時(shí)間:2021-07-15 11:46:03 來(lái)源:億速云 閱讀:426 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“ASP.NET數(shù)據(jù)庫(kù)連接池設(shè)置方法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“ASP.NET數(shù)據(jù)庫(kù)連接池設(shè)置方法”吧!

對(duì)于ASP.NET數(shù)據(jù)庫(kù)連接池可以使用一組名稱-值對(duì)以鏈接字符串的形式配置鏈接池。例如,可以配置池是否有效(默認(rèn)是有效的),池的***、最小容量,用于打開鏈接的排隊(duì)請(qǐng)求被阻斷的時(shí)間。下面的示例字符串配置了池的***和最小容量。

"Server=(local); Integrated Security=SSPI; Database=Northwind;
Max Pool Size=75; Min Pool Size=5"

ASP.NET數(shù)據(jù)庫(kù)連接池摘要

連接池允許應(yīng)用程序從連接池中獲得一個(gè)連接并使用這個(gè)連接,而不需要為每一個(gè)連接請(qǐng)求重新建立一個(gè)連接。一旦一個(gè)新的連接被創(chuàng)建并且放置在連接池中,應(yīng)用程序就可以重復(fù)使用這個(gè)連接而不必實(shí)施整個(gè)數(shù)據(jù)庫(kù)連接創(chuàng)建過(guò)程。

當(dāng)應(yīng)用程序請(qǐng)求一個(gè)連接時(shí),連接池為該應(yīng)用程序分配一個(gè)連接而不是重新建立一個(gè)連接;當(dāng)應(yīng)用程序使用完連接后,該連接被歸還給連接池而不是直接釋放。

如何實(shí)現(xiàn)ASP.NET數(shù)據(jù)庫(kù)連接池

確保你每一次的連接使用相同的連接字符串(和連接池相同);只有連接字符串相同時(shí)連接池才會(huì)工作。如果連接字符串不相同,應(yīng)用程序就不會(huì)使用連接池而是創(chuàng)建一個(gè)新的連接。

ASP.NET數(shù)據(jù)庫(kù)連接池優(yōu)點(diǎn)

使用連接池的最主要的優(yōu)點(diǎn)是性能。創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)連接所耗費(fèi)的時(shí)間主要取決于網(wǎng)絡(luò)的速度以及應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器的(網(wǎng)絡(luò))距離,而且這個(gè)過(guò)程通常是一個(gè)很耗時(shí)的過(guò)程。而采用數(shù)據(jù)庫(kù)連接池后,數(shù)據(jù)庫(kù)連接請(qǐng)求可以直接通過(guò)連接池滿足而不需要為該請(qǐng)求重新連接、認(rèn)證到數(shù)據(jù)庫(kù)服務(wù)器,這樣就節(jié)省了時(shí)間。

ASP.NET數(shù)據(jù)庫(kù)連接池缺點(diǎn)

數(shù)據(jù)庫(kù)連接池中可能存在著多個(gè)沒有被使用的連接一直連接著數(shù)據(jù)庫(kù)(這意味著資源的浪費(fèi))。

技巧和提示

1.當(dāng)你需要數(shù)據(jù)庫(kù)連接時(shí)才去創(chuàng)建連接池,而不是提前建立。一旦你使用完連接立即關(guān)閉它,不要等到垃圾收集器來(lái)處理它。

2.在關(guān)閉數(shù)據(jù)庫(kù)連接前確保關(guān)閉了所有用戶定義的事務(wù)。

3.不要關(guān)閉數(shù)據(jù)庫(kù)中所有的連接,至少保證連接池中有一個(gè)連接可用。如果內(nèi)存和其他資源是你必須首先考慮的問題,可以關(guān)閉所有的連接,然后在下一個(gè)請(qǐng)求到來(lái)時(shí)創(chuàng)建連接池。

ASP.NET數(shù)據(jù)庫(kù)連接池FAQ

1.何時(shí)創(chuàng)建連接池?

當(dāng)***個(gè)連接請(qǐng)求到來(lái)時(shí)創(chuàng)建連接池;連接池的建立由數(shù)據(jù)庫(kù)連接的連接字符創(chuàng)來(lái)決定。每一個(gè)連接池都與一個(gè)不同的連接字符串相關(guān)。

當(dāng)一個(gè)新的連接請(qǐng)求到來(lái)時(shí)如果連接字符串和連接池使用的字符串相同,就從連接池取出一個(gè)連接;如果不相同,就新建一個(gè)連接池。

2.何時(shí)關(guān)閉連接池?

當(dāng)連接池中的所有連接都已經(jīng)關(guān)閉時(shí)關(guān)閉連接池。

3.當(dāng)連接池中的連接都已經(jīng)用完,而有新的連接請(qǐng)求到來(lái)時(shí)會(huì)發(fā)生什么?

當(dāng)連接池已經(jīng)達(dá)到它的***連接數(shù)目時(shí),有新的連接請(qǐng)求到來(lái)時(shí),新的連接請(qǐng)求將放置到連接隊(duì)列中。當(dāng)有連接釋放給連接池時(shí),連接池將新釋放的連接分配給在隊(duì)列中排隊(duì)的連接請(qǐng)求。你可以調(diào)用close和dispose將連接歸還給連接池。

4.我應(yīng)該如何允許連接池?

對(duì)于.NET應(yīng)用程序而言,默認(rèn)為允許連接池。(這意味著你可以不必為這件事情做任何的事情)當(dāng)然,如果你可以在SQLConnection對(duì)象的連接字符串中加進(jìn)Pooling=true;確保你的應(yīng)用程序允許連接池的使用。

5.我應(yīng)該如何禁止連接池?

ADO.NET默認(rèn)為允許數(shù)據(jù)庫(kù)連接池,如果你希望禁止連接池,可以使用如下的方式:

1) 使用SQLConnection對(duì)象時(shí),往連接字符串加入如下內(nèi)容:Pooling=False;

2) 使用OLEDBConnection對(duì)象時(shí),往連接字符串加入如下內(nèi)容:OLE DB Services=-4;

ASP.NET數(shù)據(jù)庫(kù)連接池設(shè)置和操作的基本信息就向你介紹到這里,希望對(duì)你有所幫助。

到此,相信大家對(duì)“ASP.NET數(shù)據(jù)庫(kù)連接池設(shè)置方法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI