欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)庫(kù)的連接控制方法及裝置的制作方法

文檔序號(hào):6426381閱讀:199來(lái)源:國(guó)知局
專利名稱:一種數(shù)據(jù)庫(kù)的連接控制方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于數(shù)據(jù)庫(kù)訪問技術(shù),尤其涉及一種數(shù)據(jù)庫(kù)的連接控制方法及裝置。
背景技術(shù)
如今,大量應(yīng)用需要訪問數(shù)據(jù)庫(kù)以獲得所需要的數(shù)據(jù)。一般在數(shù)據(jù)庫(kù)的應(yīng)用中使用連接來(lái)進(jìn)行與數(shù)據(jù)庫(kù)之間的交互。在實(shí)際情況中,每一次應(yīng)用請(qǐng)求都要建立一次數(shù)據(jù)庫(kù)連接。具體做法如下首先,建立數(shù)據(jù)庫(kù)連接;其次,打開數(shù)據(jù)庫(kù)連接;再次,運(yùn)用該連接執(zhí)行SQL語(yǔ)句;最后,關(guān)閉數(shù)據(jù)庫(kù)連接,釋放數(shù)據(jù)庫(kù)連接資源。然而,上述做法存在如下缺陷(1)當(dāng)有大量數(shù)據(jù)庫(kù)操作時(shí),建立的大量數(shù)據(jù)庫(kù)連接得不到及時(shí)釋放,導(dǎo)致內(nèi)存上升,嚴(yán)重時(shí)會(huì)使程序崩潰;(2)建立數(shù)據(jù)庫(kù)連接后,需要打開連接,打開連接耗時(shí)較長(zhǎng),當(dāng)有大量數(shù)據(jù)庫(kù)并發(fā)操作時(shí),會(huì)導(dǎo)致數(shù)據(jù)庫(kù)執(zhí)行效率大幅下降;C3)打開數(shù)據(jù)庫(kù)連接后,執(zhí)行完SQL語(yǔ)句僅將連接釋放,數(shù)據(jù)庫(kù)連接資源沒有得到循環(huán)利用,導(dǎo)致效率降低。

發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)庫(kù)的連接控制方法及裝置以解決上述問題。本發(fā)明提供一種數(shù)據(jù)庫(kù)的連接控制方法,包括以下步驟。數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程從數(shù)據(jù)庫(kù)調(diào)度進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求。數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程判斷數(shù)據(jù)庫(kù)操作請(qǐng)求的類型??刂七M(jìn)程根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的類型及調(diào)用策略調(diào)用相應(yīng)數(shù)目的連接,以根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型你管訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求。于連接執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求后,數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程將處于打開狀態(tài)的連接放回至數(shù)據(jù)庫(kù)連接堆棧,供下一次調(diào)用??刂七M(jìn)程根據(jù)關(guān)閉策略關(guān)閉數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于打開狀態(tài)的連接。本發(fā)明還提供一種數(shù)據(jù)庫(kù)的連接控制裝置,包括接收模塊、判斷模塊、連接管理模塊以及控制模塊。接收模塊用于從數(shù)據(jù)庫(kù)調(diào)用進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求。判斷模塊與接收模塊相連,并用于判斷數(shù)據(jù)庫(kù)操作請(qǐng)求的類型。連接管理模塊與判斷模塊相連??刂颇K與連接管理模塊相連,用于根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的類型及調(diào)用策略調(diào)用相應(yīng)數(shù)目的連接,以根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求。于連接執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求后,連接管理模塊用于將處于打開狀態(tài)的連接放回至數(shù)據(jù)庫(kù)連接堆棧,供下一次調(diào)用,控制模塊根據(jù)關(guān)閉策略關(guān)閉數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于打開狀態(tài)的連接。相較于先前技術(shù),根據(jù)本發(fā)明提供的數(shù)據(jù)庫(kù)的連接控制方法及裝置,連接根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求,從而提高數(shù)據(jù)庫(kù)執(zhí)行效率。另外,通過控制進(jìn)程根據(jù)調(diào)用策略及關(guān)閉策略控制數(shù)據(jù)庫(kù)連接堆棧內(nèi)連接的打開調(diào)用與關(guān)閉,從而提高連接的利用率。此外,通過數(shù)據(jù)庫(kù)連接堆棧實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接的循環(huán)使用, 同時(shí)防止建立過多數(shù)據(jù)庫(kù)連接占用系統(tǒng)內(nèi)存。而且,于連接執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求后,處于打開狀態(tài)的連接將被放回至數(shù)據(jù)庫(kù)連接堆棧。如此,可循環(huán)使用已經(jīng)打開的連接,從而提高連接的使用效率。另外,根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的類型調(diào)用與其相對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接堆棧內(nèi)的連接,如此,對(duì)數(shù)據(jù)庫(kù)操作進(jìn)行分離,提高數(shù)據(jù)庫(kù)執(zhí)行效率。


此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的數(shù)據(jù)庫(kù)的連接控制方法的流程圖;圖2所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的數(shù)據(jù)庫(kù)的連接控制方法的流程圖;圖3所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的數(shù)據(jù)庫(kù)的連接控制裝置的示意圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。圖1所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的數(shù)據(jù)庫(kù)的連接控制方法的流程圖。如圖ι所示,本發(fā)明較佳實(shí)施例提供的數(shù)據(jù)庫(kù)的連接控制方法包括步驟101 105。于步驟 101中,數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程從數(shù)據(jù)庫(kù)調(diào)度進(jìn)程接收數(shù)據(jù)庫(kù)數(shù)據(jù)請(qǐng)求。于步驟102中,數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程判斷數(shù)據(jù)庫(kù)操作請(qǐng)求的類型。于步驟103中,控制進(jìn)程根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的類型及調(diào)用策略調(diào)用相應(yīng)數(shù)目的連接,以根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求。于步驟104中,于連接執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求后,數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程將處于打開狀態(tài)的連接放回至數(shù)據(jù)庫(kù)連接堆棧,供下一次調(diào)用。于步驟105中,控制進(jìn)程根據(jù)關(guān)閉策略關(guān)閉數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于打開狀態(tài)的連接。其中,關(guān)閉策略為于數(shù)據(jù)庫(kù)連接堆棧內(nèi)正在執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求的連接數(shù)目與處于打開狀態(tài)的連接數(shù)目的比值小于或等于預(yù)設(shè)值時(shí),按照預(yù)設(shè)的百分比關(guān)閉數(shù)據(jù)庫(kù)連接堆棧內(nèi)多余的處于打開狀態(tài)的連接。調(diào)用策略包括于當(dāng)前數(shù)據(jù)庫(kù)操作請(qǐng)求的數(shù)目小于或等于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目時(shí),調(diào)用數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于打開狀態(tài)但未執(zhí)行操作的連接;于當(dāng)前數(shù)據(jù)庫(kù)操作請(qǐng)求的數(shù)目大于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目且小于或等于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目與處于關(guān)閉狀態(tài)的連接的數(shù)目之和時(shí),調(diào)用數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接,且打開并調(diào)用所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于關(guān)閉狀態(tài)的連接;于當(dāng)前數(shù)據(jù)庫(kù)操作請(qǐng)求的數(shù)目大于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目與處于關(guān)閉狀態(tài)的連接的數(shù)目之和時(shí),調(diào)用數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接,打開并調(diào)用所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)全部處于關(guān)閉狀態(tài)的連接,并調(diào)用其他數(shù)據(jù)庫(kù)連接堆棧內(nèi)的空余可用連接,若所述空余可用連接處于關(guān)閉狀態(tài),則打開并調(diào)用所述空余可用連接。如下對(duì)上述過程進(jìn)行詳細(xì)說(shuō)明。請(qǐng)參考圖2。圖2所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的數(shù)據(jù)庫(kù)的連接控制方法的流程圖。如圖2所示,本實(shí)施例提供的數(shù)據(jù)庫(kù)的連接控制方法包括步驟201 206。于步驟201中,數(shù)據(jù)庫(kù)調(diào)度進(jìn)程從業(yè)務(wù)邏輯進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求。于步驟202中,數(shù)據(jù)庫(kù)調(diào)度進(jìn)程根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型的優(yōu)先級(jí)以及業(yè)務(wù)類型與數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程的映射關(guān)系將數(shù)據(jù)庫(kù)操作請(qǐng)求發(fā)送至對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程。于此,數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型包括用戶信息管理、離線信息管理以及聊天信息管理。然而,本發(fā)明對(duì)此不作限定。于實(shí)際應(yīng)用中,可根據(jù)需要設(shè)置其他的業(yè)務(wù)類型。具體而言,當(dāng)數(shù)據(jù)庫(kù)調(diào)度進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求后,根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型的優(yōu)先級(jí),采用任務(wù)隊(duì)列管理數(shù)據(jù)庫(kù)操作請(qǐng)求的執(zhí)行順序。于此,優(yōu)先執(zhí)行業(yè)務(wù)類型優(yōu)先級(jí)較高的數(shù)據(jù)庫(kù)操作請(qǐng)求。舉例而言,用戶信息管理的優(yōu)先級(jí)高于離線信息管理及聊天信息管理,離線信息管理的優(yōu)先級(jí)高于聊天信息管理,此時(shí),對(duì)用戶信息管理的操作(例如,查詢或修改)優(yōu)先處理,接著,對(duì)離線信息管理及聊天信息管理的操作依次執(zhí)行。此外,數(shù)據(jù)庫(kù)調(diào)度進(jìn)程根據(jù)業(yè)務(wù)類型與數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程的映射關(guān)系將數(shù)據(jù)庫(kù)操作請(qǐng)求發(fā)送至對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程。舉例而言,若關(guān)于用戶信息管理的業(yè)務(wù)類型對(duì)應(yīng)于數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程1,關(guān)于離線信息管理的業(yè)務(wù)類型對(duì)應(yīng)于數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程2,關(guān)于聊天信息管理的業(yè)務(wù)類型對(duì)應(yīng)于數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程3,結(jié)合上述業(yè)務(wù)類型的優(yōu)先級(jí),則數(shù)據(jù)庫(kù)調(diào)度進(jìn)程優(yōu)先將有關(guān)用戶信息管理的數(shù)據(jù)庫(kù)操作請(qǐng)求發(fā)送至數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程1,然后依次將有關(guān)離線信息管理的數(shù)據(jù)庫(kù)操作請(qǐng)求發(fā)送至數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程2,將有關(guān)聊天信息管理的數(shù)據(jù)庫(kù)操作請(qǐng)求發(fā)送至數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程3。于步驟203中,數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求后判斷數(shù)據(jù)庫(kù)操作請(qǐng)求的類型。于此,數(shù)據(jù)庫(kù)操作請(qǐng)求的類型包括查詢、增加、刪除以及修改。然而,本發(fā)明并不限定于此。具體而言,當(dāng)數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求后,首先將接收到的數(shù)據(jù)庫(kù)操作請(qǐng)求放入任務(wù)隊(duì)列中。然后,數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程按照任務(wù)隊(duì)列調(diào)度的數(shù)據(jù)庫(kù)操作請(qǐng)求,判斷數(shù)據(jù)庫(kù)操作請(qǐng)求的類型。然而,本發(fā)明并不限定于此。于其他實(shí)施例中,數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求后可先判斷數(shù)據(jù)庫(kù)操作請(qǐng)求的類型,然后,按照數(shù)據(jù)庫(kù)操作請(qǐng)求的類型將數(shù)據(jù)庫(kù)操作請(qǐng)求放入不同的任務(wù)隊(duì)列中,供后續(xù)執(zhí)行。接下來(lái),以查詢操作為例進(jìn)行詳細(xì)說(shuō)明,其他操作的執(zhí)行與查詢操作的執(zhí)行相同, 故于此不再贅述。于本實(shí)施例中,根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的類型,對(duì)不同的數(shù)據(jù)庫(kù)操作請(qǐng)求首先調(diào)用其對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接堆棧內(nèi)的連接,以執(zhí)行所述數(shù)據(jù)庫(kù)操作請(qǐng)求,從而提高數(shù)據(jù)庫(kù)執(zhí)行效率。于步驟204中,控制進(jìn)程根據(jù)調(diào)用策略調(diào)用相應(yīng)數(shù)目的連接,以根據(jù)數(shù)據(jù)庫(kù)查詢請(qǐng)求的業(yè)務(wù)類型訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)查詢請(qǐng)求。其中,調(diào)用策略包括如下三個(gè)方于當(dāng)前數(shù)據(jù)庫(kù)查詢請(qǐng)求的數(shù)目小于或等于數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目時(shí),調(diào)用數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)相應(yīng)數(shù)目的所述處于打開狀態(tài)但未執(zhí)行操作的連接,以執(zhí)行當(dāng)前數(shù)據(jù)庫(kù)查詢請(qǐng)求。舉例而言,若當(dāng)前數(shù)據(jù)庫(kù)查詢請(qǐng)求有5 個(gè),數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)正在執(zhí)行操作的連接數(shù)目為4個(gè),數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)已經(jīng)打開的連接數(shù)目為10個(gè),則調(diào)用數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)5個(gè)已經(jīng)打開的連接執(zhí)行當(dāng)前5個(gè)數(shù)據(jù)庫(kù)查詢請(qǐng)求。于當(dāng)前數(shù)據(jù)庫(kù)查詢請(qǐng)求的數(shù)目大于數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目且小于或等于數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目與處于關(guān)閉狀態(tài)的連接的數(shù)目之和時(shí),調(diào)用數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接,且打開并調(diào)用數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)相應(yīng)數(shù)目的處于關(guān)閉狀態(tài)的連接。舉例而言,若當(dāng)前數(shù)據(jù)庫(kù)查詢請(qǐng)求有10個(gè),數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)設(shè)置的連接總數(shù)為20個(gè),已經(jīng)打開的連接數(shù)目為10個(gè),正在執(zhí)行操作的連接數(shù)目為4個(gè),則調(diào)用數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)6個(gè)處于打開狀態(tài)但未執(zhí)行操作的連接,且打開并調(diào)用4個(gè)處于關(guān)閉狀態(tài)的連接。于當(dāng)前數(shù)據(jù)庫(kù)查詢請(qǐng)求的數(shù)目大于數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目與處于關(guān)閉狀態(tài)連接的數(shù)目之和時(shí),調(diào)用數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接,打開并調(diào)用數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)全部處于關(guān)閉狀態(tài)的連接,并調(diào)用其他數(shù)據(jù)庫(kù)連接堆棧(例如,數(shù)據(jù)庫(kù)刪除連接堆棧、數(shù)據(jù)庫(kù)修改連接堆棧、數(shù)據(jù)庫(kù)增加連接堆棧)內(nèi)的空余可用連接,若所述空余可用連接處于關(guān)閉狀態(tài),則打開并調(diào)用所述空余可用連接。舉例而言,若當(dāng)前數(shù)據(jù)庫(kù)查詢請(qǐng)求有10個(gè),數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)設(shè)置的連接總數(shù)為20個(gè),已經(jīng)打開的連接數(shù)目為18個(gè),正在執(zhí)行操作的連接數(shù)目為15個(gè),則調(diào)用數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)3個(gè)處于打開狀態(tài)但未執(zhí)行操作的連接,打開并調(diào)用2個(gè)處于關(guān)閉狀態(tài)的連接,并調(diào)用數(shù)據(jù)庫(kù)修改連接堆棧內(nèi)5個(gè)空余可用連接。關(guān)于控制進(jìn)程調(diào)用其他數(shù)據(jù)庫(kù)連接堆棧內(nèi)的空余可用連接的過程以數(shù)據(jù)庫(kù)修改連接堆棧為例說(shuō)明如下??刂七M(jìn)程鎖定數(shù)據(jù)庫(kù)修改連接堆棧,并調(diào)用數(shù)據(jù)庫(kù)修改連接堆棧內(nèi)相應(yīng)數(shù)目的空余可用連接。于控制進(jìn)程解除數(shù)據(jù)庫(kù)修改連接堆棧的鎖定后,上述空余可用連接執(zhí)行相應(yīng)數(shù)目的數(shù)據(jù)庫(kù)查詢請(qǐng)求。其中,若上述空余可用連接處于打開狀態(tài),則直接調(diào)用上述空余可用連接執(zhí)行數(shù)據(jù)庫(kù)查詢請(qǐng)求;若上述空余可用連接處于關(guān)閉狀態(tài),則需先打開上述連接再執(zhí)行數(shù)據(jù)庫(kù)查詢請(qǐng)求。另外,以下具體說(shuō)明步驟204中連接根據(jù)數(shù)據(jù)庫(kù)查詢請(qǐng)求的業(yè)務(wù)類型訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)查詢請(qǐng)求的過程。舉例而言,數(shù)據(jù)庫(kù)查詢請(qǐng)求的業(yè)務(wù)類型包括用戶信息查詢、離線信息查詢以及聊天信息查詢。相應(yīng)地,數(shù)據(jù)庫(kù)包括用戶信息數(shù)據(jù)庫(kù)、離線信息數(shù)據(jù)庫(kù)以及聊天信息數(shù)據(jù)庫(kù)。當(dāng)數(shù)據(jù)庫(kù)查詢請(qǐng)求的業(yè)務(wù)類型為用戶信息查詢時(shí),控制進(jìn)程調(diào)用的連接訪問對(duì)應(yīng)的用戶信息數(shù)據(jù)庫(kù),以查詢用戶信息;當(dāng)數(shù)據(jù)庫(kù)查詢請(qǐng)求的業(yè)務(wù)類型為離線信息查詢時(shí),控制進(jìn)程調(diào)用的連接訪問對(duì)應(yīng)的離線信息數(shù)據(jù)庫(kù);當(dāng)數(shù)據(jù)庫(kù)查詢請(qǐng)求的業(yè)務(wù)類型為聊天信息查詢時(shí),控制進(jìn)程調(diào)用的連接訪問對(duì)應(yīng)的聊天信息數(shù)據(jù)庫(kù)。于此,控制進(jìn)程調(diào)用的連接可訪問不同的數(shù)據(jù)庫(kù)。然而,本發(fā)明并不限定于此。于其他實(shí)施例中,控制進(jìn)程調(diào)用的連接可根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型設(shè)置為訪問對(duì)應(yīng)類型的數(shù)據(jù)庫(kù)。于步驟205中,于連接執(zhí)行數(shù)據(jù)庫(kù)查詢請(qǐng)求后,數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程將處于打開狀態(tài)的連接放回至數(shù)據(jù)庫(kù)連接堆棧,供下一次調(diào)用。于此,當(dāng)數(shù)據(jù)庫(kù)查詢請(qǐng)求均由數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)的連接執(zhí)行時(shí),數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程將執(zhí)行完畢處于打開狀態(tài)的連接均放回至數(shù)據(jù)庫(kù)查詢連接堆棧。當(dāng)數(shù)據(jù)庫(kù)查詢請(qǐng)求由數(shù)據(jù)庫(kù)查詢連接堆棧及數(shù)據(jù)庫(kù)修改連接堆棧內(nèi)的連接共同執(zhí)行時(shí),數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程可將執(zhí)行完畢處于打開狀態(tài)的連接放回至數(shù)據(jù)庫(kù)查詢連接堆?;蛘邤?shù)據(jù)庫(kù)查詢連接堆棧與數(shù)據(jù)庫(kù)修改連接堆棧內(nèi)。然而,本發(fā)明對(duì)此并不限定。其中需要注意的是,當(dāng)數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程將執(zhí)行完畢處于打開狀態(tài)的連接放回至數(shù)據(jù)庫(kù)修改連接堆棧時(shí),需先鎖定數(shù)據(jù)庫(kù)修改連接堆棧,并于放回連接后,解除對(duì)數(shù)據(jù)庫(kù)修改連接堆棧的鎖定。如此,數(shù)據(jù)庫(kù)連接堆棧內(nèi)的連接可循環(huán)使用,從而提高利用率。而且,連接一旦被打開后一直處于打開狀態(tài),從而極大程度地節(jié)省了連接打開所耗費(fèi)的時(shí)間,提高了數(shù)據(jù)庫(kù)的執(zhí)行效率。于步驟206中,控制進(jìn)程根據(jù)關(guān)閉策略關(guān)閉數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)相應(yīng)數(shù)目的處于打開狀態(tài)的連接。其中,關(guān)閉策略具體描述如下。于數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)正在執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求的連接數(shù)目與處于打開狀態(tài)的連接數(shù)目的比值小于或等于預(yù)設(shè)值(例如, 70%)時(shí),按照預(yù)設(shè)的百分比(例如,80%)關(guān)閉數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)多余的處于打開狀態(tài)的連接。其中,需要關(guān)閉的處于打開狀態(tài)的連接的數(shù)目等于處于打開狀態(tài)的連接的數(shù)目與正在執(zhí)行操作的連接的數(shù)目的差值與預(yù)設(shè)的百分比的乘積。舉例而言,若數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)正在執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求的連接數(shù)目為60個(gè),數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)處于打開狀態(tài)的連接數(shù)目為100個(gè),兩者的比值小于預(yù)設(shè)值(70%),則按照預(yù)設(shè)的百分比(80%)關(guān)閉數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)32個(gè)處于打開狀態(tài)的連接。于實(shí)際應(yīng)用中,若經(jīng)過計(jì)算得到的需要關(guān)閉的處于打開狀態(tài)的連接的數(shù)目并非為整數(shù),則將計(jì)算得到的上述數(shù)目以四舍五入的方式取整,以確定需要關(guān)閉的處于打開狀態(tài)的連接的數(shù)目。舉例而言,若數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)正在執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求的連接數(shù)目為65個(gè),數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)處于打開狀態(tài)的連接數(shù)目為100個(gè),兩者的比值小于預(yù)設(shè)值(70%),則按照預(yù)設(shè)的百分比(75%)關(guān)閉數(shù)據(jù)庫(kù)查詢連接堆棧內(nèi)沈個(gè)(實(shí)際計(jì)算數(shù)值為26. 25,四舍五入取整為26)處于打開狀態(tài)的連接。此外,于本實(shí)施例中,控制進(jìn)程對(duì)連接的打開調(diào)用可為實(shí)時(shí)控制,對(duì)連接的關(guān)閉控制可為實(shí)時(shí)控制亦可為定時(shí)控制。例如,控制進(jìn)程每隔30分鐘根據(jù)關(guān)閉策略關(guān)閉數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于打開狀態(tài)的連接。然而,本發(fā)明對(duì)此不作任何限定。圖3所示為根據(jù)本發(fā)明較佳實(shí)施例提供的數(shù)據(jù)庫(kù)的連接控制裝置的示意圖。如圖 3所示,本實(shí)施例提供的數(shù)據(jù)庫(kù)連接控制管理裝置包括調(diào)度模塊300、接收模塊301、判斷模塊302、連接管理模塊303以及控制模塊304。其中,調(diào)度模塊300與接收模塊301相連,判斷模塊302與接收模塊301相連,連接管理模塊303與判斷模塊302相連,控制模塊304與連接管理模塊303相連。然而,本發(fā)明并不限定于此。于本實(shí)施例中,調(diào)度模塊300用于從業(yè)務(wù)邏輯進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求,并根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型的優(yōu)先級(jí)及業(yè)務(wù)類型與數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程的映射關(guān)系將數(shù)據(jù)庫(kù)操作請(qǐng)求發(fā)送至對(duì)應(yīng)的接收模塊301。接收模塊301用于從調(diào)度模塊300接收數(shù)據(jù)庫(kù)操作請(qǐng)求。判斷模塊302用于判斷接收到的數(shù)據(jù)庫(kù)操作請(qǐng)求的類型??刂颇K304用于根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的類型及調(diào)用策略調(diào)用相應(yīng)數(shù)目的連接,以根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求。于連接執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求后,連接管理模塊303 將處于打開狀態(tài)的連接放回至數(shù)據(jù)庫(kù)連接堆棧,供下一次調(diào)用。控制模塊304根據(jù)關(guān)閉策略關(guān)閉數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于打開狀態(tài)的連接。具體過程同前所述,故于此不再贅述。綜上所述,根據(jù)本發(fā)明較佳實(shí)施例提供的數(shù)據(jù)庫(kù)的連接控制方法及裝置,連接根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求,從而提高數(shù)據(jù)庫(kù)執(zhí)行效率。另外,通過控制進(jìn)程根據(jù)調(diào)用策略及關(guān)閉策略控制數(shù)據(jù)庫(kù)連接堆棧內(nèi)連接的打開調(diào)用與關(guān)閉,從而提高連接的利用率。此外,通過數(shù)據(jù)庫(kù)連接堆棧實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接的循環(huán)使用,同時(shí)防止建立過多數(shù)據(jù)庫(kù)連接占用系統(tǒng)內(nèi)存。而且,于連接執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求后,處于打開狀態(tài)的連接被放回至數(shù)據(jù)庫(kù)連接堆棧。如此,可循環(huán)使用已經(jīng)打開的連接,從而提高連接的使用效率。另外,根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的類型調(diào)用與其相對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接堆棧內(nèi)的連接,如此,對(duì)數(shù)據(jù)庫(kù)操作進(jìn)行分離,提高數(shù)據(jù)庫(kù)執(zhí)行效率。 以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)庫(kù)的連接控制方法,其特征在于,包括以下步驟數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程從數(shù)據(jù)庫(kù)調(diào)度進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求;所述數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程判斷所述數(shù)據(jù)庫(kù)操作請(qǐng)求的類型;控制進(jìn)程根據(jù)所述數(shù)據(jù)庫(kù)操作請(qǐng)求的類型及調(diào)用策略調(diào)用相應(yīng)數(shù)目的連接,以根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行所述數(shù)據(jù)庫(kù)操作請(qǐng)求;于所述連接執(zhí)行所述數(shù)據(jù)庫(kù)操作請(qǐng)求后,所述數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程將所述處于打開狀態(tài)的連接放回至數(shù)據(jù)庫(kù)連接堆棧,供下一次調(diào)用;所述控制進(jìn)程根據(jù)關(guān)閉策略關(guān)閉所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于打開狀態(tài)的連接。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫(kù)的連接控制方法,其特征在于,所述關(guān)閉策略為于數(shù)據(jù)庫(kù)連接堆棧內(nèi)正在執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求的連接數(shù)目與處于打開狀態(tài)的連接數(shù)目的比值小于或等于預(yù)設(shè)值時(shí),按照預(yù)設(shè)的百分比關(guān)閉數(shù)據(jù)庫(kù)連接堆棧內(nèi)多余的處于打開狀態(tài)的連接。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫(kù)的連接控制方法,其特征在于,所述調(diào)用策略包括 于當(dāng)前數(shù)據(jù)庫(kù)操作請(qǐng)求的數(shù)目小于或等于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目時(shí),調(diào)用數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的所述處于打開狀態(tài)但未執(zhí)行操作的連接;于當(dāng)前數(shù)據(jù)庫(kù)操作請(qǐng)求的數(shù)目大于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目且小于或等于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目與處于關(guān)閉狀態(tài)的連接的數(shù)目之和時(shí),調(diào)用所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接,且打開并調(diào)用所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于關(guān)閉狀態(tài)的連接;于當(dāng)前數(shù)據(jù)庫(kù)操作請(qǐng)求的數(shù)目大于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目與處于關(guān)閉狀態(tài)的連接的數(shù)目之和時(shí),調(diào)用所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接,打開并調(diào)用所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)全部處于關(guān)閉狀態(tài)的連接,并調(diào)用其他數(shù)據(jù)庫(kù)連接堆棧內(nèi)的空余可用連接,若所述空余可用連接處于關(guān)閉狀態(tài),則打開并調(diào)用所述空余可用連接。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫(kù)的連接控制方法,其特征在于,所述業(yè)務(wù)類型包括用戶信息管理、離線信息管理以及聊天信息管理。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫(kù)的連接控制方法,其特征在于,所述數(shù)據(jù)庫(kù)操作請(qǐng)求的類型包括查詢、增加、刪除、修改,所述數(shù)據(jù)庫(kù)連接堆棧包括數(shù)據(jù)庫(kù)查詢連接堆棧、數(shù)據(jù)庫(kù)增加連接堆棧、數(shù)據(jù)庫(kù)刪除連接堆棧及數(shù)據(jù)庫(kù)修改連接堆棧。
6.一種數(shù)據(jù)庫(kù)的連接控制裝置,其特征在于,包括接收模塊,用于從數(shù)據(jù)庫(kù)調(diào)度進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求;判斷模塊,與所述接收模塊相連,用于判斷所述數(shù)據(jù)庫(kù)操作請(qǐng)求的類型;連接管理模塊,與所述判斷模塊相連;控制模塊,與所述連接管理模塊相連,用于根據(jù)所述數(shù)據(jù)庫(kù)操作請(qǐng)求的類型及調(diào)用策略調(diào)用相應(yīng)數(shù)目的連接,以根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行所述數(shù)據(jù)庫(kù)操作請(qǐng)求,于所述連接執(zhí)行所述數(shù)據(jù)庫(kù)操作請(qǐng)求后,所述連接管理模塊將所述處于打開狀態(tài)的連接放回至數(shù)據(jù)庫(kù)連接堆棧,供下一次調(diào)用,所述控制模塊根據(jù)關(guān)閉策略關(guān)閉所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于打開狀態(tài)的連接。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)庫(kù)的連接控制裝置,其特征在于,所述關(guān)閉策略為于數(shù)據(jù)庫(kù)連接堆棧內(nèi)正在執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求的連接數(shù)目與處于打開狀態(tài)的連接數(shù)目的比值小于或等于預(yù)設(shè)值時(shí),按照預(yù)設(shè)的百分比關(guān)閉數(shù)據(jù)庫(kù)連接堆棧內(nèi)多余的處于打開狀態(tài)的連接。
8.根據(jù)權(quán)利要求6所述的數(shù)據(jù)庫(kù)的連接控制裝置,其特征在于,所述調(diào)用策略包括 于當(dāng)前數(shù)據(jù)庫(kù)操作請(qǐng)求的數(shù)目小于或等于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目時(shí),調(diào)用數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的所述處于打開狀態(tài)但未執(zhí)行操作的連接;于當(dāng)前數(shù)據(jù)庫(kù)操作請(qǐng)求的數(shù)目大于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目且小于或等于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目與處于關(guān)閉狀態(tài)的連接的數(shù)目之和時(shí),調(diào)用所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接,且打開并調(diào)用所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于關(guān)閉狀態(tài)的連接;于當(dāng)前數(shù)據(jù)庫(kù)操作請(qǐng)求的數(shù)目大于數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接的數(shù)目與處于關(guān)閉狀態(tài)的連接的數(shù)目之和時(shí),調(diào)用所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)處于打開狀態(tài)但未執(zhí)行操作的連接,打開并調(diào)用所述數(shù)據(jù)庫(kù)連接堆棧內(nèi)全部處于關(guān)閉狀態(tài)的連接,并調(diào)用其他數(shù)據(jù)庫(kù)連接堆棧內(nèi)的空余可用連接,若所述空余可用連接處于關(guān)閉狀態(tài),則打開并調(diào)用所述空余可用連接。
9.根據(jù)權(quán)利要求6所述的數(shù)據(jù)庫(kù)的連接控制裝置,其特征在于,所述業(yè)務(wù)類型包括用戶信息管理、離線信息管理以及聊天信息管理。
10.根據(jù)權(quán)利要求6所述的數(shù)據(jù)庫(kù)的連接控制裝置,其特征在于,所述數(shù)據(jù)庫(kù)操作請(qǐng)求的類型包括查詢、增加、刪除及修改,所述數(shù)據(jù)庫(kù)連接堆棧包括數(shù)據(jù)庫(kù)查詢連接堆棧、數(shù)據(jù)庫(kù)增加連接堆棧、數(shù)據(jù)庫(kù)刪除連接堆棧及數(shù)據(jù)庫(kù)修改連接堆棧。
全文摘要
本發(fā)明提供一種數(shù)據(jù)庫(kù)的連接控制方法及裝置。上述方法包括以下步驟。數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程從數(shù)據(jù)庫(kù)調(diào)度進(jìn)程接收數(shù)據(jù)庫(kù)操作請(qǐng)求。數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程判斷數(shù)據(jù)庫(kù)操作請(qǐng)求的類型??刂七M(jìn)程根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的類型及調(diào)用策略調(diào)用相應(yīng)數(shù)目的連接,以根據(jù)數(shù)據(jù)庫(kù)操作請(qǐng)求的業(yè)務(wù)類型訪問對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求。于連接執(zhí)行數(shù)據(jù)庫(kù)操作請(qǐng)求后,數(shù)據(jù)庫(kù)執(zhí)行進(jìn)程將處于打開狀態(tài)的連接放回至數(shù)據(jù)庫(kù)連接堆棧,供下一次調(diào)用??刂七M(jìn)程根據(jù)關(guān)閉策略關(guān)閉數(shù)據(jù)庫(kù)連接堆棧內(nèi)相應(yīng)數(shù)目的處于打開狀態(tài)的連接。
文檔編號(hào)G06F17/30GK102262655SQ201110161300
公開日2011年11月30日 申請(qǐng)日期2011年6月16日 優(yōu)先權(quán)日2011年6月16日
發(fā)明者胡加明 申請(qǐng)人:蘇州闊地網(wǎng)絡(luò)科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
海伦市| 沂水县| 尚志市| 马公市| 沐川县| 当涂县| 页游| 青州市| 方城县| 库车县| 贵南县| 沅陵县| 威宁| 镇巴县| 通河县| 三都| 台江县| 唐山市| 郴州市| 淄博市| 盐城市| 涟源市| 天津市| 安阳市| 乐都县| 个旧市| 安岳县| 巴林右旗| 册亨县| 南郑县| 旅游| 延寿县| 宜城市| 宜州市| 十堰市| 南溪县| 平顺县| 白沙| 苏州市| 冷水江市| 永寿县|