探索ADO.NET連接池相關(guān)使用說明
ADO.NET連接池允許應(yīng)用程序從連接池中獲得一個(gè)連接并使用這個(gè)連接,而不需要為每一個(gè)連接請求重新建立一個(gè)連接。一旦一個(gè)新的連接被創(chuàng)建并且放置在連接池中,應(yīng)用程序。
技巧和提示
1.當(dāng)你需要數(shù)據(jù)庫連接時(shí)才去創(chuàng)建連接池,而不是提前建立。一旦你使用完連接立即關(guān)閉它,不要等到垃圾收集器來處理它。
2.在關(guān)閉數(shù)據(jù)庫連接前確保關(guān)閉了所有用戶定義的事務(wù)。
3.不要關(guān)閉數(shù)據(jù)庫中所有的連接,至少保證連接池中有一個(gè)連接可用。如果內(nèi)存和其他資源是你必須首先考慮的問題,可以關(guān)閉所有的連接,然后在下一個(gè)請求到來時(shí)創(chuàng)建連接池。
ADO.NET連接池faq
1.何時(shí)創(chuàng)建連接池?
當(dāng)***個(gè)連接請求到來時(shí)創(chuàng)建連接池;連接池的建立由數(shù)據(jù)庫連接的連接字符創(chuàng)來決定。每一個(gè)連接池都與一個(gè)不同的連接字符串相關(guān)。當(dāng)一個(gè)新的連接請求到來時(shí)如果連接字符串和連接池使用的字符串相同,就從連接池取出一個(gè)連接;如果不相同,就新建一個(gè)連接池。
2.何時(shí)關(guān)閉連接池?
當(dāng)連接池中的所有連接都已經(jīng)關(guān)閉時(shí)關(guān)閉連接池。
3.當(dāng)連接池中的連接都已經(jīng)用完,而有新的連接請求到來時(shí)會(huì)發(fā)生什么?
當(dāng)連接池已經(jīng)達(dá)到它的***連接數(shù)目時(shí),有新的連接請求到來時(shí),新的連接請求將放置到連接隊(duì)列中。ADO.NET連接池當(dāng)有連接釋放給連接池時(shí),連接池將新釋放的連接分配給在隊(duì)列中排隊(duì)的連接請求。你可以調(diào)用close和dispose將連接歸還給連接池。
4.我應(yīng)該如何允許連接池?
對于.net應(yīng)用程序而言,默認(rèn)為允許連接池。(這意味著你可以不必為這件事情做任何的事情)當(dāng)然,如果你可以在sqlconnection對象的連接字符串中加進(jìn)pooling=true;確保你的應(yīng)用程序允許連接池的使用。
5.我應(yīng)該如何禁止ADO.NET連接池?
ado.net默認(rèn)為允許數(shù)據(jù)庫連接池,如果你希望禁止連接池,可以使用如下的方式:
1)使用sqlconnection對象時(shí),往連接字符串加入如下內(nèi)容:pooling=false;
2)使用oledbconnection對象時(shí),往連接字符串加入如下內(nèi)容:ole db services=-4;
oling=true;確保你的應(yīng)用程序允許ADO.NET連接池的使用。
5.我應(yīng)該如何禁止連接池?#t#
ado.net默認(rèn)為允許數(shù)據(jù)庫連接池,如果你希望禁止ADO.NET連接池,可以使用如下的方式:
1)使用sqlconnection對象時(shí),往連接字符串加入如下內(nèi)容:pooling=false;
2)使用oledbconnection對象時(shí),往連接字符串加入如下內(nèi)容:ole db services=-4;