1.一種數(shù)據(jù)庫訪問控制方法,其特征在于,所述方法包括:
獲取應(yīng)用系統(tǒng)的數(shù)據(jù)庫操作請(qǐng)求;
根據(jù)預(yù)設(shè)的判斷規(guī)則和數(shù)據(jù)庫當(dāng)前的資源狀態(tài)判斷所述數(shù)據(jù)庫操作請(qǐng)求是否允許執(zhí)行;
如果判定所述數(shù)據(jù)庫操作請(qǐng)求允許執(zhí)行,通知所述應(yīng)用系統(tǒng)發(fā)送所述數(shù)據(jù)庫操作請(qǐng)求至所述數(shù)據(jù)庫進(jìn)行執(zhí)行;否則,通知所述應(yīng)用系統(tǒng)不能執(zhí)行所述數(shù)據(jù)庫操作請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通知所述應(yīng)用系統(tǒng)發(fā)送所述數(shù)據(jù)庫操作請(qǐng)求至所述數(shù)據(jù)庫進(jìn)行執(zhí)行的步驟之后,所述方法還包括:
獲取所述應(yīng)用系統(tǒng)返回的所述數(shù)據(jù)庫操作請(qǐng)求及執(zhí)行完成的指示信息,其中,所述執(zhí)行完成的指示信息包括所述數(shù)據(jù)庫操作請(qǐng)求的條目信息;
根據(jù)所述數(shù)據(jù)庫操作請(qǐng)求執(zhí)行前的資源狀態(tài)和所述數(shù)據(jù)庫操作請(qǐng)求執(zhí)行后的資源狀態(tài)獲取所述數(shù)據(jù)庫操作請(qǐng)求對(duì)應(yīng)的資源消耗總量;
根據(jù)所述資源消耗總量和所述數(shù)據(jù)庫操作請(qǐng)求的條目信息,計(jì)算所述數(shù)據(jù)庫操作請(qǐng)求中的請(qǐng)求語句執(zhí)行每個(gè)條目的平均資源消耗量,用于計(jì)算包括所述請(qǐng)求語句的下一次數(shù)據(jù)庫操作請(qǐng)求的預(yù)測資源消耗。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)預(yù)設(shè)的判斷規(guī)則和數(shù)據(jù)庫當(dāng)前的資源狀態(tài)判斷所述數(shù)據(jù)庫操作請(qǐng)求是否允許執(zhí)行的步驟包括:
在所述資源狀態(tài)滿足預(yù)設(shè)條件時(shí),判定所述數(shù)據(jù)庫操作請(qǐng)求不允許執(zhí)行;
在所述資源狀態(tài)不滿足預(yù)設(shè)條件時(shí),判定所述數(shù)據(jù)庫操作請(qǐng)求允許執(zhí)行。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述預(yù)設(shè)條件包括以下條件中的至少一個(gè):
所述資源狀態(tài)包括磁盤IO占時(shí)比,所述磁盤IO占時(shí)比達(dá)到其極限閾值,且所述數(shù)據(jù)庫操作請(qǐng)求的優(yōu)先級(jí)不是預(yù)設(shè)的高優(yōu)先級(jí);
所述資源狀態(tài)包括數(shù)據(jù)庫內(nèi)存,所述數(shù)據(jù)庫內(nèi)存達(dá)到其極限閾值,且所述數(shù)據(jù)庫操作請(qǐng)求為查詢請(qǐng)求;
所述資源狀態(tài)包括數(shù)據(jù)線程數(shù),所述數(shù)據(jù)線程數(shù)達(dá)到其極限閾值;以及所述數(shù)據(jù)庫操作請(qǐng)求為排他寫入,獲取所述排他寫入對(duì)應(yīng)的寫入?yún)^(qū)域,且所述寫入?yún)^(qū)域?yàn)檎趯懭霠顟B(tài)。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述資源狀態(tài)不滿足預(yù)設(shè)條件時(shí),判定所述數(shù)據(jù)庫操作請(qǐng)求允許執(zhí)行的步驟包括:
在所述資源狀態(tài)不滿足預(yù)設(shè)條件時(shí),獲取所述數(shù)據(jù)庫操作請(qǐng)求,其中,所述數(shù)據(jù)庫操作請(qǐng)求包括所述數(shù)據(jù)庫操作請(qǐng)求的請(qǐng)求語句;
根據(jù)所述數(shù)據(jù)庫操作請(qǐng)求的請(qǐng)求語句種類和執(zhí)行所述請(qǐng)求語句的平均資源消耗計(jì)算所述數(shù)據(jù)庫操作請(qǐng)求的預(yù)測資源消耗;
判斷所述數(shù)據(jù)庫當(dāng)前的資源狀態(tài)是否滿足所述數(shù)據(jù)庫操作請(qǐng)求的預(yù)測資源消耗;
如果所述資源狀態(tài)滿足所述數(shù)據(jù)庫操作請(qǐng)求的預(yù)測資源消耗,判定所述數(shù)據(jù)庫操作請(qǐng)求允許執(zhí)行;
如果所述資源狀態(tài)不滿足所述數(shù)據(jù)庫操作請(qǐng)求的預(yù)測資源消耗,判定所述數(shù)據(jù)庫操作請(qǐng)求不允許執(zhí)行。
6.一種數(shù)據(jù)庫訪問控制裝置,其特征在于,所述數(shù)據(jù)庫訪問裝置包括:
請(qǐng)求獲取模塊,用于獲取應(yīng)用系統(tǒng)的數(shù)據(jù)庫操作請(qǐng)求;
判斷模塊,用于根據(jù)預(yù)設(shè)的判斷規(guī)則和數(shù)據(jù)庫當(dāng)前的資源狀態(tài)判斷所述數(shù)據(jù)庫操作請(qǐng)求是否允許執(zhí)行;
通知發(fā)送模塊,用于如果判斷所述數(shù)據(jù)庫操作請(qǐng)求允許執(zhí)行,通知所述應(yīng)用系統(tǒng)發(fā)送所述數(shù)據(jù)庫操作請(qǐng)求至所述數(shù)據(jù)庫進(jìn)行執(zhí)行;否則,通知所述應(yīng)用系統(tǒng)不能執(zhí)行所述數(shù)據(jù)庫操作請(qǐng)求。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括:
指示信息接收模塊,用于獲取所述應(yīng)用系統(tǒng)返回的所述數(shù)據(jù)庫操作請(qǐng)求及執(zhí)行完成的指示信息,其中,所述指示信息包括所述數(shù)據(jù)庫操作請(qǐng)求的條目信息;
資源消耗總量獲取模塊,用于根據(jù)所述數(shù)據(jù)庫操作請(qǐng)求執(zhí)行前的資源狀態(tài)和所述數(shù)據(jù)庫操作請(qǐng)求執(zhí)行后的資源狀態(tài)獲取所述數(shù)據(jù)庫操作請(qǐng)求對(duì)應(yīng)的資源消耗總量;
平均資源消耗量計(jì)算模塊,用于根據(jù)所述資源消耗總量和所述數(shù)據(jù)庫操作請(qǐng)求的條目信息,計(jì)算所述數(shù)據(jù)庫操作請(qǐng)求中的請(qǐng)求語句執(zhí)行每個(gè)條目的平均資源消耗量,用于計(jì)算包括所述請(qǐng)求語句的下一次數(shù)據(jù)庫操作請(qǐng)求的預(yù)測資源消耗。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述判斷模塊用于:
在所述資源狀態(tài)滿足預(yù)設(shè)條件時(shí),判定所述數(shù)據(jù)庫操作請(qǐng)求不允許執(zhí)行;
在所述資源狀態(tài)不滿足預(yù)設(shè)條件時(shí),判定所述數(shù)據(jù)庫操作請(qǐng)求允許執(zhí)行。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述判斷模塊用于:所述預(yù)設(shè)條件包括以下條件中的至少一個(gè):
所述資源狀態(tài)包括磁盤IO占時(shí)比,所述磁盤IO占時(shí)比達(dá)到其極限閾值,且所述數(shù)據(jù)庫操作請(qǐng)求的優(yōu)先級(jí)不是預(yù)設(shè)的高優(yōu)先級(jí);
所述資源狀態(tài)包括數(shù)據(jù)庫內(nèi)存,所述數(shù)據(jù)庫內(nèi)存達(dá)到其極限閾值,且所述數(shù)據(jù)庫操作請(qǐng)求為查詢請(qǐng)求;
所述資源狀態(tài)包括數(shù)據(jù)線程數(shù),所述數(shù)據(jù)線程數(shù)達(dá)到其極限閾值;以及
所述數(shù)據(jù)庫操作請(qǐng)求為排他寫入,獲取所述排他寫入對(duì)應(yīng)的寫入?yún)^(qū)域,且所述寫入?yún)^(qū)域?yàn)檎趯懭霠顟B(tài)。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述判斷模塊用于:
在所述資源狀態(tài)不滿足預(yù)設(shè)條件時(shí),獲取所述數(shù)據(jù)庫操作請(qǐng)求,其中,所述數(shù)據(jù)庫操作請(qǐng)求包括所述數(shù)據(jù)庫操作請(qǐng)求的請(qǐng)求語句;
根據(jù)所述數(shù)據(jù)庫操作請(qǐng)求的請(qǐng)求語句種類和執(zhí)行所述請(qǐng)求語句的平均資源消耗計(jì)算所述數(shù)據(jù)庫操作請(qǐng)求的預(yù)測資源消耗;
判斷所述數(shù)據(jù)庫當(dāng)前的資源狀態(tài)是否滿足所述數(shù)據(jù)庫操作請(qǐng)求的預(yù)測資源消耗;
如果所述資源狀態(tài)滿足所述數(shù)據(jù)庫操作請(qǐng)求的預(yù)測資源消耗,判定所述數(shù)據(jù)庫操作請(qǐng)求允許執(zhí)行;
如果所述資源狀態(tài)不滿足所述數(shù)據(jù)庫操作請(qǐng)求的預(yù)測資源消耗,判定所述數(shù)據(jù)庫操作請(qǐng)求不允許執(zhí)行。