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