一種資料庫連接管理方法及裝置的製作方法
2023-05-09 07:04:21
專利名稱:一種資料庫連接管理方法及裝置的製作方法
技術領域:
本發明屬於資料庫訪問技術,尤其涉及一種資料庫連接管理方法及裝置。
背景技術:
如今,大量應用需要訪問資料庫以獲得所需要的數據。一般在資料庫的應用中使用連接來進行與資料庫之間的交互。在實際情況中,每一次應用請求都要建立一次資料庫連接。具體做法如下首先,建立資料庫連接;其次,打開資料庫連接;再次,運用該連接執行SQL語句;最後,關閉資料庫連接,釋放資料庫連接資源。然而,上述做法存在如下缺陷(1)當有大量資料庫操作時,建立的大量資料庫連接得不到及時釋放,導致內存上升,嚴重時會使程序崩潰;(2)建立資料庫連接後,需要打開連接,打開連接耗時較長,當有大量資料庫並發操作時,會導致資料庫執行效率大幅下降;C3)打開資料庫連接後,執行完SQL語句僅將連接釋放,資料庫連接資源沒有得到循環利用,導致效率降低。
發明內容
本發明提供一種資料庫連接管理方法及裝置以解決上述問題。本發明提供一種資料庫連接管理方法,包括以下步驟。資料庫執行進程從資料庫調度進程接收資料庫操作請求。資料庫執行進程判斷資料庫操作請求的類型,並調用與資料庫操作請求的類型相對應的資料庫連接堆棧內的連接,以執行資料庫操作請求。於連接執行資料庫操作請求後,資料庫執行進程將處於打開狀態的連接放回至資料庫連接堆棧, 供下一次調用。本發明還提供一種資料庫連接管理裝置,包括接收模塊、判斷模塊以及連接管理模塊。接收模塊用於從資料庫調用進程接收資料庫操作請求。判斷模塊與接收模塊相連, 並用於判斷資料庫操作請求的類型。連接管理模塊與判斷模塊相連,並用於調用與資料庫操作請求的類型相對應的資料庫連接堆棧內的連接,以執行資料庫操作請求。於連接執行資料庫操作請求後,連接管理模塊用於將處於打開狀態的連接放回至資料庫連接堆棧,供下一次調用。相較於先前技術,根據本發明提供的資料庫連接管理方法及裝置,通過資料庫連接堆棧實現資料庫連接的循環使用,同時防止建立過多資料庫連接佔用系統內存。而且,於連接執行資料庫操作請求後,處於打開狀態的連接將被放回至資料庫連接堆棧。如此,可循環使用已經打開的連接,從而提高連接的使用效率。另外,根據資料庫操作請求的類型調用與其相對應的資料庫連接堆棧內的連接,如此,對資料庫操作進行分離,提高資料庫執行效率。
此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在附圖中圖1所示為根據本發明的較佳實施例提供的資料庫連接管理方法的流程圖;圖2所示為根據本發明的較佳實施例提供的資料庫連接管理方法的流程圖;圖3所示為根據本發明的較佳實施例提供的資料庫連接管理裝置的示意圖;圖4所示為根據本發明的較佳實施例提供的控制模塊的示意圖。
具體實施例方式下文中將參考附圖並結合實施例來詳細說明本發明。需要說明的是,在不衝突的情況下,本申請中的實施例及實施例中的特徵可以相互組合。圖1所示為根據本發明的較佳實施例提供的資料庫連接管理方法的流程圖。如圖ι所示,本發明較佳實施例提供的資料庫連接管理方法包括步驟101 103。於步驟101 中,資料庫執行進程從資料庫調度進程接收資料庫數據請求。於步驟102,資料庫執行進程判斷資料庫操作請求的類型,並調用與資料庫操作請求的類型相對應的資料庫連接堆棧內的連接,以執行資料庫操作請求。於步驟103,於連接執行資料庫操作請求後,資料庫執行進程將處於打開狀態的連接放回至資料庫連接堆棧,供下一次調用。如下對上述過程進行詳細說明。請參考圖2。圖2所示為根據本發明的較佳實施例提供的資料庫連接管理方法的流程圖。如圖2所示,本實施例提供的資料庫連接管理方法包括步驟201 207。於步驟201中,資料庫調度進程從業務邏輯進程接收資料庫操作請求。於步驟202中,資料庫調度進程根據資料庫操作請求的業務類型的優先級以及業務類型與資料庫執行進程的映射關係將資料庫操作請求發送至對應的資料庫執行進程。於此,資料庫操作請求的業務類型包括用戶信息管理、離線信息管理以及聊天信息管理。然而,本發明對此不作限定。於實際應用中,可根據需要設置其他的業務類型。具體而言,當資料庫調度進程接收資料庫操作請求後,根據資料庫操作請求的業務類型的優先級,採用任務隊列管理資料庫操作請求的執行順序。於此,優先執行業務類型優先級較高的資料庫操作請求。舉例而言,用戶信息管理的優先級高於離線信息管理及聊天信息管理,離線信息管理的優先級高於聊天信息管理,此時,對用戶信息管理的操作(例如,查詢或修改)優先處理,接著,對離線信息管理及聊天信息管理的操作依次執行。此外,資料庫調度進程根據業務類型與資料庫執行進程的映射關係將資料庫操作請求發送至對應的資料庫執行進程。舉例而言,若關於用戶信息管理的業務類型對應於資料庫執行進程1,關於離線信息管理的業務類型對應於資料庫執行進程2,關於聊天信息管理的業務類型對應於資料庫執行進程3,結合上述業務類型的優先級,則資料庫調度進程優先將有關用戶信息管理的資料庫操作請求發送至資料庫執行進程1,然後依次將有關離線信息管理的資料庫操作請求發送至資料庫執行進程2,將有關聊天信息管理的資料庫操作請求發送至資料庫執行進程3。於步驟203中,資料庫執行進程接收資料庫操作請求後判斷資料庫操作請求的類型。於此,資料庫操作請求的類型包括查詢、增加、刪除以及修改。然而,本發明並不限定於此。具體而言,當資料庫執行進程接收資料庫操作請求後,首先將接收到的資料庫操作請求放入任務隊列中。然後,資料庫執行進程按照任務隊列調度的資料庫操作請求,判斷資料庫操作請求的類型。然而,本發明並不限定於此。於其他實施例中,資料庫執行進程接收資料庫操作請求後可先判斷資料庫操作請求的類型,然後,按照資料庫操作請求的類型將資料庫操作請求放入不同的任務隊列中,供後續執行。接下來,以查詢操作為例進行詳細說明,其他操作的執行與查詢操作的執行相同, 故於此不再贅述。於本實施例中,根據資料庫操作請求的類型,對不同的資料庫操作請求調用其對應的資料庫連接堆棧內的連接,以執行所述資料庫操作請求,從而提高資料庫執行效率。於步驟204中,資料庫執行進程判斷與查詢操作對應的資料庫查詢連接堆棧是否存在信號量。於此,信號量的值即為資料庫查詢連接堆棧內的連接的剩餘數量。若資料庫查詢連接堆棧的信號量等於0,即資料庫查詢連接堆棧內無可用連接時,資料庫操作請求(即查詢任務)需等待直至有可用連接再進行執行。若資料庫查詢連接堆棧具有信號量,即資料庫查詢連接堆棧具有可用連接時,資料庫執行進程調用資料庫查詢連接堆棧內的一條連接,同時信號量減一(如步驟205)。接著,於步驟206中,判斷上述連接是否處於打開狀態。 若連接處於打開狀態,則連接執行資料庫操作請求,並於執行完成後將處於打開狀態的此條連接放回至資料庫查詢連接堆棧內,同時信號量加一(如步驟207)。若連接處於關閉狀態,則先打開連接後再執行步驟207。然而,本發明並不限定於此。於實際應用中,資料庫執行進程可同時調用資料庫查詢連接堆棧內的多條連接,以同時執行多個資料庫操作請求。如此,資料庫連接堆棧內的連接可循環使用,從而提高利用率。而且,連接一旦被打開後一直處於打開狀態,從而極大程度地節省了連接打開所耗費的時間,提高了資料庫的執行效率。於此,使用信號量對可用連接的數量實時監控,從而避免多個資料庫操作請求同時調用一個連接時造成連接失敗的問題。圖3所示為根據本發明較佳實施例提供的資料庫連接管理裝置的示意圖。如圖 3所示,本實施例提供的資料庫連接管理裝置包括調度模塊300、接收模塊301、判斷模塊 302、連接管理模塊303以及控制模塊304。其中,調度模塊300與接收模塊301相連,判斷模塊302與接收模塊301相連,連接管理模塊303與判斷模塊302相連。控制模塊304與連接管理模塊303相連。於本實施例中,調度模塊300用於從業務邏輯進程接收資料庫操作請求,並根據資料庫操作請求的業務類型的優先級及業務類型與資料庫執行進程的映射關係將資料庫操作請求發送至對應的接收模塊301。接收模塊301用於從調度模塊300接收資料庫操作請求。判斷模塊302用於判斷接收到的資料庫操作請求的類型。連接管理模塊303用於調用與資料庫操作請求的類型相對應的資料庫連接堆棧內的連接。此外,於連接執行資料庫操作請求後,連接管理模塊303將處於打開狀態的連接放回至資料庫連接堆棧,供下一次調用。具體過程同前所述,故於此不再贅述。關於控制模塊304如下詳述。圖4所示為根據本發明較佳實施例提供的控制模塊304的示意圖。如圖4所示, 以資料庫查詢連接堆棧及資料庫修改連接堆棧為例進行說明。當資料庫查詢操作請求的數目大於資料庫查詢連接堆棧內可用連接的最大值,且資料庫修改操作請求的數目小於資料庫修改連接堆棧內可用連接的最大值時,控制模塊304鎖定資料庫修改連接堆棧,並調用資料庫修改連接堆棧內的剩餘連接,且於控制模塊304解除資料庫修改連接的鎖定後,上
6述剩餘連接執行相應數目的資料庫查詢操作請求。當資料庫修改操作請求的數目大於資料庫修改連接堆棧內可用連接的最大值,且資料庫查詢操作請求的數目小於資料庫查詢連接堆棧內可用連接的最大值時,控制模塊304鎖定資料庫查詢連接堆棧,並調用資料庫查詢連接堆棧內的剩餘連接,且於控制模塊304解除資料庫查詢連接的鎖定後,上述剩餘連接執行相應數目的資料庫修改操作請求。同理,控制模塊對資料庫增加連接堆棧及資料庫刪除連接堆棧亦有相同處理。舉例而言,當資料庫修改操作請求有5個,資料庫修改連接堆棧內可用連接的最大值為10個,而資料庫查詢操作請求有22個,資料庫查詢連接堆棧內可用連接最大值為20 個。此時,控制模塊304先鎖定資料庫修改連接堆棧,並調用資料庫修改連接堆棧內的2個剩餘連接。之後,控制模塊304解除對資料庫修改連接堆棧的鎖定。控制模塊304調用的資料庫修改連接堆棧內的2個剩餘連接執行超過資料庫查詢連接堆棧的可用連接最大值的2 個資料庫查詢操作請求。於上述資料庫查詢操作請求執行完成後,控制模塊304鎖定資料庫修改連接堆棧,並將調用的資料庫修改連接堆棧內的2個剩餘連接放回至資料庫修改連接堆棧。之後,控制模塊304解除對資料庫修改連接堆棧的鎖定。然而,本發明並不限定於此。於其他實施例中,於上述資料庫查詢操作請求執行完成後,控制模塊304調用的資料庫修改連接堆棧內的2個剩餘連接可直接存放在資料庫查詢連接堆棧內。當資料庫修改操作請求有5個,資料庫修改連接堆棧內可用連接的最大值為10 個,而資料庫查詢操作請求有27個,資料庫查詢連接堆棧內可用連接最大值為20個。此時, 控制模塊304先鎖定資料庫修改連接堆棧,並調用資料庫修改連接堆棧內的5個剩餘連接。 之後,控制模塊304解除對資料庫修改連接堆棧的鎖定。控制模塊304調用的資料庫修改連接堆棧內的5個剩餘連接執行超過資料庫查詢連接堆棧的可用連接最大值的5個資料庫查詢操作請求。另外,剩下2個資料庫查詢操作請求放入任務隊列中,等待後續的執行。於上述資料庫查詢操作請求執行完成後,控制模塊304鎖定資料庫修改連接堆棧,並將調用的資料庫修改連接堆棧內的5個剩餘連接放回至資料庫修改連接堆棧。之後,控制模塊304 解除對資料庫修改連接堆棧的鎖定。然而,本發明並不限定於此。於其他實施例中,於上述資料庫查詢操作請求執行完成後,控制模塊304調用的資料庫修改連接堆棧內的2個剩餘連接可直接存放在資料庫查詢連接堆棧內。如此,充分利用了資料庫修改連接堆棧內的空閒連接,提高了連接的利用率,同時亦提高了資料庫的整體執行效率。然而,本發明並不限定於此。於其他實施例中,當資料庫查詢連接堆棧內的連接不夠用時,亦可創建新的連接執行相應的查詢操作。綜上所述,根據本發明較佳實施例提供的資料庫連接管理方法及裝置,通過資料庫連接堆棧實現資料庫連接的循環使用,同時防止建立過多資料庫連接佔用系統內存。而且,於連接執行資料庫操作請求後,處於打開狀態的連接被放回至資料庫連接堆棧。如此, 可循環使用已經打開的連接,從而提高連接的使用效率。另外,根據資料庫操作請求的類型調用與其相對應的資料庫連接堆棧內的連接,如此,對資料庫操作進行分離,提高資料庫執行效率。以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種資料庫連接管理方法,其特徵在於,包括以下步驟資料庫執行進程從資料庫調度進程接收資料庫操作請求;所述資料庫執行進程判斷所述資料庫操作請求的類型,並調用與所述資料庫操作請求的類型相對應的資料庫連接堆棧內的連接,以執行所述資料庫操作請求;於所述連接執行所述資料庫操作請求後,所述資料庫執行進程將所述處於打開狀態的連接放回至所述資料庫連接堆棧,供下一次調用。
2.根據權利要求1所述的資料庫連接管理方法,其特徵在於,所述資料庫連接堆棧包括資料庫查詢連接堆棧、資料庫增加連接堆棧、資料庫刪除連接堆棧及資料庫修改連接堆棧。
3.根據權利要求2所述的資料庫連接管理方法,其特徵在於,所述資料庫操作請求的類型包括查詢、增加、刪除、修改。
4.根據權利要求3所述的資料庫連接管理方法,其特徵在於,當資料庫查詢操作請求的數目大於資料庫查詢連接堆棧內可用連接的最大值,且資料庫修改操作請求的數目小於資料庫修改連接堆棧內可用連接的最大值時,控制模塊鎖定上述資料庫修改連接堆棧,並調用上述資料庫修改連接堆棧內的剩餘連接,且於上述控制模塊解除上述資料庫修改連接堆棧的鎖定後,上述剩餘連接執行相應數目的資料庫查詢操作請求。
5.根據權利要求3所述的資料庫連接管理方法,其特徵在於,當上述資料庫修改操作請求的數目大於上述資料庫修改連接堆棧內可用連接的最大值,且上述資料庫查詢操作請求的數目小於上述資料庫查詢連接堆棧內可用連接的最大值時,上述控制模塊鎖定上述資料庫查詢連接堆棧,並調用上述資料庫查詢連接堆棧內的剩餘連接,且於上述控制模塊解除上述資料庫查詢連接堆棧的鎖定後,上述剩餘連接執行相應數目的資料庫修改操作請求。
6.一種資料庫連接管理裝置,其特徵在於,包括接收模塊,用於從資料庫調度進程接收資料庫操作請求;判斷模塊,與所述接收模塊相連,用於判斷所述資料庫操作請求的類型;連接管理模塊,與所述判斷模塊相連,用於調用與所述資料庫操作請求的類型相對應的資料庫連接堆棧內的連接,以執行所述資料庫操作請求,並於所述連接執行所述資料庫操作請求後,所述連接管理模塊將所述處於打開狀態的連接放回至所述資料庫連接堆棧, 供下一次調用。
7.根據權利要求6所述的資料庫連接管理裝置,其特徵在於,所述資料庫連接堆棧包括資料庫查詢連接堆棧、資料庫增加連接堆棧、資料庫刪除連接堆棧及資料庫修改連接堆棧。
8.根據權利要求7所述的資料庫連接管理裝置,其特徵在於,所述資料庫操作請求的類型包括查詢、增加、刪除及修改。
9.根據權利要求8所述的資料庫連接管理裝置,其特徵在於,還包括控制模塊,當資料庫查詢操作請求的數目大於資料庫查詢連接堆棧內可用連接的最大值,且資料庫修改操作請求的數目小於資料庫修改連接堆棧內可用連接的最大值時,所述控制模塊鎖定資料庫修改連接堆棧,並調用上述資料庫修改連接堆棧內的剩餘連接,且於上述控制模塊解除上述資料庫修改連接堆棧的鎖定後,上述剩餘連接執行相應數目的資料庫查詢操作請求。
10.根據權利要求8所述的資料庫連接管理裝置,其特徵在於,還包括控制模塊,當上述資料庫修改操作請求的數目大於上述資料庫修改連接堆棧內可用連接的最大值,且上述資料庫查詢操作請求的數目小於上述資料庫查詢連接堆棧內可用連接的最大值時,所述控制模塊鎖定上述資料庫查詢連接堆棧,並調用上述資料庫查詢連接堆棧內的剩餘連接,且於上述控制模塊解除上述資料庫查詢連接堆棧的鎖定後,上述剩餘連接執行相應數目的資料庫修改操作請求。
全文摘要
本發明提供一種資料庫連接管理方法及裝置。上述方法包括以下步驟。資料庫執行進程從資料庫調度進程接收資料庫操作請求。資料庫執行進程判斷資料庫操作請求的類型,並調用與資料庫操作請求的類型相對應的資料庫連接堆棧內的連接,以執行資料庫操作請求。於連接執行資料庫操作請求後,資料庫執行進程將處於打開狀態的連接放回至資料庫連接堆棧,供下一次調用。
文檔編號G06F17/30GK102243652SQ201110161288
公開日2011年11月16日 申請日期2011年6月16日 優先權日2011年6月16日
發明者胡加明 申請人:蘇州闊地網絡科技有限公司