c++教程 數(shù)據(jù)庫(kù)連接池,該怎么處理?
數(shù)據(jù)庫(kù)連接池,該怎么處理?目的:提高并發(fā)客戶端訪問(wèn)的數(shù)量和效率。一般來(lái)說(shuō),并發(fā)客戶機(jī)的數(shù)量應(yīng)該是500?,F(xiàn)在我要做一個(gè)datasnap程序。我將直接使用adoconnection來(lái)連接sqlserve
數(shù)據(jù)庫(kù)連接池,該怎么處理?
目的:提高并發(fā)客戶端訪問(wèn)的數(shù)量和效率。一般來(lái)說(shuō),并發(fā)客戶機(jī)的數(shù)量應(yīng)該是500?,F(xiàn)在我要做一個(gè)datasnap程序。我將直接使用adoconnection來(lái)連接sqlserver程序,而不是使用連接池。這樣做之后,我至少可以支持來(lái)自客戶機(jī)的幾十個(gè)并發(fā)查詢。假設(shè)一個(gè)adoconnection支持30個(gè)并發(fā)連接,那么您應(yīng)該支持30*3=90個(gè)并發(fā)連接我在Internet上尋找數(shù)據(jù)庫(kù)連接池已經(jīng)很久了。許多連接池都有相同的想法。我還是很困惑。。。。
如何設(shè)置數(shù)據(jù)庫(kù)連接池的數(shù)量?
1. 數(shù)據(jù)庫(kù)連接數(shù),即數(shù)據(jù)庫(kù)可以同時(shí)接受的最大連接數(shù)。
2。在沒(méi)有數(shù)據(jù)庫(kù)連接池的情況下,每次客戶訪問(wèn)時(shí),都需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接,執(zhí)行SQL,獲得結(jié)果,然后關(guān)閉并釋放數(shù)據(jù)庫(kù)連接。問(wèn)題是,創(chuàng)建數(shù)據(jù)庫(kù)連接是一項(xiàng)耗費(fèi)資源和時(shí)間的操作,因此會(huì)生成數(shù)據(jù)庫(kù)連接池。
3. 數(shù)據(jù)庫(kù)連接池預(yù)先打開一定數(shù)量的數(shù)據(jù)庫(kù)連接并維護(hù)連接。
4. 當(dāng)客戶想要執(zhí)行SQL語(yǔ)句時(shí),從數(shù)據(jù)庫(kù)連接池獲取連接,執(zhí)行SQL,獲取結(jié)果,然后將數(shù)據(jù)庫(kù)連接返回到數(shù)據(jù)庫(kù)連接池。
5. 如果一個(gè)會(huì)話執(zhí)行10個(gè)獨(dú)立的操作,如果它不使用數(shù)據(jù)庫(kù)連接池,它需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接10次并關(guān)閉它10次。
6. 如果使用數(shù)據(jù)庫(kù)連接池,則可以直接使用已在數(shù)據(jù)庫(kù)連接池中打開的連接池。