專利名稱:確定sql語句對關(guān)鍵業(yè)務(wù)的性能的影響的方法、系統(tǒng)和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫處理技術(shù)領(lǐng)域,尤其涉及一種確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的方法、系統(tǒng)和設(shè)備。
背景技術(shù):
在現(xiàn)有的數(shù)據(jù)庫系統(tǒng)中,一般都是使用結(jié)構(gòu)化查詢語言(SQL)語句進(jìn)行相應(yīng)的數(shù)據(jù)查詢,從而完成相應(yīng)的業(yè)務(wù)。對于一些比較敏感的業(yè)務(wù)而言,如果所執(zhí)行的SQL語句的執(zhí)行效率低下、響應(yīng)時間過長,則可能導(dǎo)致數(shù)據(jù)庫的性能下降,從而無法滿足業(yè)務(wù)處理能力要求,造成業(yè)務(wù)服務(wù)阻塞,使得終端用戶具有明顯的感知或業(yè)務(wù)感知。因此,可將這類敏感的業(yè)務(wù)稱之為關(guān)鍵業(yè)務(wù)。為了提高關(guān)鍵業(yè)務(wù)的性能,在關(guān)鍵業(yè)務(wù)的SQL語句實際執(zhí)行之前,可以對該SQL語句進(jìn)行檢測,分析該SQL語句的執(zhí)行計劃,以判斷該SQL語句是否會對關(guān)鍵業(yè)務(wù)的性能造成不利的影響。但是,由于對關(guān)鍵業(yè)務(wù)的性能造成不利影響的因素比較多,所以一般比較難以判斷某個SQL語句是否對關(guān)鍵業(yè)務(wù)的性能造成了不利影響。例如:I)關(guān)鍵業(yè)務(wù)的SQL語句的響應(yīng)時間即使發(fā)生微秒級的變化,也有可能對關(guān)鍵業(yè)務(wù)產(chǎn)生不利影響或阻塞業(yè)務(wù),但此時從數(shù)據(jù)庫層面上卻很可能難以發(fā)現(xiàn)性能異常。譬如:當(dāng)關(guān)鍵業(yè)務(wù)的SQL語句的響應(yīng)時間由I秒變成2秒時,從數(shù)據(jù)庫層面一般并不能發(fā)現(xiàn)性能異常;然而,由于該SQL語句的響應(yīng)時間增加了 I秒,因此很可能對關(guān)鍵業(yè)務(wù)的性能造成了不利影響。2) SQL語句執(zhí)行計劃的錯誤也將會使得該進(jìn)程消耗大量CPU的計算資源、內(nèi)存的存儲空間或10,導(dǎo)致數(shù)據(jù)庫的響應(yīng)時間較長,前臺查詢速度比較緩慢,從而對關(guān)鍵業(yè)務(wù)的性能造成了不利影響。3)數(shù)據(jù)庫中存在的大量行鎖也可能影響關(guān)鍵業(yè)務(wù)SQL語句所操作的對象,從而可能使得數(shù)據(jù)庫的整體響應(yīng)時間過長,從而對關(guān)鍵業(yè)務(wù)的性能造成了不利影響。為了解決關(guān)鍵業(yè)務(wù)性能影響的判斷問題,目前主要是采用如下方式:1、由于目前沒有比較直觀的方法去分析和判斷影響關(guān)鍵業(yè)務(wù)性能的各種因素,因此只能通過業(yè)務(wù)感知或業(yè)務(wù)影響來反映關(guān)鍵業(yè)務(wù)的性能。2、數(shù)據(jù)庫管理員(DBA)可使用數(shù)據(jù)庫性能監(jiān)控工具,確定占用大量資源或持有鎖的會話(SESSION),抓取所確定的SESSION執(zhí)行的SQL語句,并確認(rèn)該SQL語句是否對關(guān)鍵業(yè)務(wù)的性能造成了不利影響。但是,上述兩種方式中還存在如下所述的問題:I)當(dāng)關(guān)鍵業(yè)務(wù)的性能受到影響時,往往都是在應(yīng)用層出現(xiàn)業(yè)務(wù)受理緩慢等現(xiàn)象時,DBA才通過監(jiān)控工具檢查該數(shù)據(jù)庫的性能,從數(shù)據(jù)庫中抓取消耗資源的SQL語句,并與應(yīng)用層確認(rèn)該SQL語句是否屬于該關(guān)鍵業(yè)務(wù)。整個處理過程時間過長,因此不能快速確定某個SQL語句是否屬于關(guān)鍵業(yè)務(wù),從而嚴(yán)重影響前臺業(yè)務(wù),造成故障時間過長。
2)當(dāng)關(guān)鍵業(yè)務(wù)的性能受到影響時,DBA通常不能第一時間獲知,往往都是由應(yīng)用維護(hù)人員或開發(fā)人員發(fā)現(xiàn)業(yè)務(wù)感知或是業(yè)務(wù)處理受到影響,然后再報告給DBA。此時,數(shù)據(jù)庫中已經(jīng)有部分SQL語句大量消耗了系統(tǒng)資源或在等待鎖,從而使得大面積的業(yè)務(wù)受到影響,因而不能有效、快速地發(fā)現(xiàn)關(guān)鍵業(yè)務(wù)的性能問題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的方法、系統(tǒng)和設(shè)備,從而可確定關(guān)鍵業(yè)務(wù)所對應(yīng)的SQL語句的執(zhí)行是否影響關(guān)鍵業(yè)務(wù)的性能。本發(fā)明采用的技術(shù)方案具體是這樣實現(xiàn)的:一種確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的方法,該方法包括:A、對關(guān)鍵業(yè)務(wù)進(jìn)行分析,確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;B、從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應(yīng)的SQL語句執(zhí)行信息;C、將所采集的SQL語句執(zhí)行信息與所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響。一種確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的系統(tǒng),其特征在于,該系統(tǒng)包括 關(guān)鍵業(yè)務(wù)定義裝置和SQL執(zhí)行計劃裝置;所述關(guān)鍵業(yè)務(wù)定義裝 置,用于對關(guān)鍵業(yè)務(wù)進(jìn)行分析,確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;將所確定的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給所述SQL執(zhí)行計劃裝置;所述SQL執(zhí)行計劃裝置,用于從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應(yīng)的SQL語句執(zhí)行信息;將所采集的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響?!N關(guān)鍵業(yè)務(wù)定義裝置,所述關(guān)鍵業(yè)務(wù)定義裝置包括:關(guān)鍵業(yè)務(wù)定義|吳塊、關(guān)鍵業(yè)務(wù)性能采集模塊、關(guān)鍵業(yè)務(wù)分析模塊和本地數(shù)據(jù)庫;所述關(guān)鍵業(yè)務(wù)定義|吳塊,對關(guān)鍵業(yè)務(wù)進(jìn)行分析,確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)|吳塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,將所確定的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息發(fā)送給所述關(guān)鍵業(yè)務(wù)性能采集模塊和SQL執(zhí)行計劃裝置;還用于預(yù)先設(shè)置所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值,將所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值作為當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;將當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給本地數(shù)據(jù)庫;所述關(guān)鍵業(yè)務(wù)性能采集模塊,用于在預(yù)定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應(yīng)的SQL語句執(zhí)行信息快照;將采集到的SQL語句執(zhí)行信息快照發(fā)送給所述關(guān)鍵業(yè)務(wù)分析模塊;所述關(guān)鍵業(yè)務(wù)分析模塊,用于在采集周期結(jié)束時,根據(jù)從本地數(shù)據(jù)庫中獲取的當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值,并將更新后的當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給所述本地數(shù)據(jù)庫和所述SQL執(zhí)行計劃裝置;
所述本地數(shù)據(jù)庫,用于存儲SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值,并存儲所接收到的更新后的當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。一種SQL執(zhí)行計劃裝置,所述SQL執(zhí)行計劃裝置包括:SQL語句采集模塊、SQL語句分析模塊和存儲模塊;所述SQL語句采集模塊,用于接收SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,并從生產(chǎn)數(shù)據(jù)庫中實時采集與所接收的SQL語句相應(yīng)的SQL語句執(zhí)行信息,將所采集的SQL語句執(zhí)行信息發(fā)送給所述存儲模塊;所述存儲模塊,用于存儲所采集的SQL語句執(zhí)行信息和SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值,將所采集的SQL語句執(zhí)行信息和SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給所述SQL語句分析模塊;所述SQL語句分析模塊,用于將所接收到的SQL語句執(zhí)行信息與所接收到的SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響。由上述技術(shù)方案可見,本發(fā)明中由于可先確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,然后將從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應(yīng)的SQL語句執(zhí)行信息與預(yù)先確定的SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響,從而可以有效地確定關(guān)鍵業(yè)務(wù)所對應(yīng)的SQL語句的執(zhí)行是否影響關(guān)鍵業(yè)務(wù)的性能。
圖1是本發(fā)明中確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的方法流程圖。圖2為本發(fā)明中確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的方法流程圖。圖3為本發(fā)明中更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的方法流程圖。圖4為本發(fā)明中確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的系統(tǒng)的結(jié)構(gòu)示意圖。圖5為本發(fā)明中關(guān)鍵業(yè)務(wù)定義裝置的結(jié)構(gòu)示意圖。圖6為本發(fā)明中SQL執(zhí)行計劃裝置的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點表達(dá)得更加清楚明白,下面結(jié)合附圖及具體實施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。圖1是本發(fā)明中確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的方法流程圖。如圖1所示,該方法包括:步驟101,對關(guān)鍵業(yè)務(wù)進(jìn)行分析,確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。由于關(guān)鍵業(yè)務(wù)一般都多個業(yè)務(wù)模塊組成,每個業(yè)務(wù)模塊所對應(yīng)的SQL語句也不盡相同。因此,在本發(fā)明的具體實施例中,可首先對關(guān)鍵業(yè)務(wù)進(jìn)行分析,預(yù)先確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句,然后再確定與所述SQL語句相對應(yīng)的SQL語句執(zhí)行信息。在本發(fā)明的具體實施例中,所述SQL語句執(zhí)行信息可以包括:SQL執(zhí)行成本(COST)、SQL執(zhí)行頻率和SQL響應(yīng)時間。其中,所述SQL執(zhí)行成本是對SQL語句在執(zhí)行時所占用的資源的一種預(yù)計,例如,對執(zhí)行SQL語句所需占用的CPU與IO等相關(guān)資源的估計;所述SQL執(zhí)行頻率是SQL語句的執(zhí)行次數(shù);所述SQL響應(yīng)時間是指完成SQL語句的執(zhí)行所需的時間。在本步驟中,在確定了相應(yīng)的SQL語句執(zhí)行信息后,還將確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值(即SQL語句執(zhí)行信息在正常情況下的范圍值)。其中,所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值可包括=SQL執(zhí)行成本標(biāo)準(zhǔn)范圍值、SQL執(zhí)行頻率標(biāo)準(zhǔn)范圍值和SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值。在本發(fā)明的具體實施例中,所述確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值包括:確定所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;并根據(jù)實時采集的與所述SQL語句執(zhí)行信息相對應(yīng)的SQL語句執(zhí)行信息快照,更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。在本發(fā)明的具體實施例中,也可以通過多種方式來確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。以下將以其中的一種實現(xiàn)方式為例進(jìn)行比較詳細(xì)地介紹。圖2為本發(fā)明中確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的方法流程圖。如圖2所示,所述方法包括:步驟201,預(yù)先設(shè)置并存儲所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值;將所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值作為當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。具體來說,在本步驟中,首先可預(yù)先設(shè)置所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值,并將所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值存儲在本地數(shù)據(jù)庫中。此時,可將所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值作為當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。步驟202,在預(yù)定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應(yīng)的SQL語句執(zhí)行信息快照。在本發(fā)明的具體實施例中,所述采集周期的長度可以預(yù)先設(shè)置。例如,可將采集周期的長度設(shè)置為η天;其中,η為自然數(shù),例如,η = 7。在預(yù)定的采集周期中,還可設(shè)置m個采集時間點,分別對應(yīng)于采集周期中的每一天中的m個確定的時間點。例如,采集周期中的第I個采集時間點,為采集周期中的每一天中的O點O分;第2個采集時間點,為采集周期中的每一天中的O點10分;第3個采集時間點,為采集周期中的每一天中的O點20
分;......,依次類推。上述m的數(shù)值可以預(yù)先設(shè)置。此外,相鄰采集時間點之間的時間間
隔可以相同,也可以不相同。在本步驟中,可在預(yù)定的采集周期內(nèi)從生成數(shù)據(jù)庫中實時采集并存儲每個采集時間點上的與所述SQL語句執(zhí)行信息相對應(yīng)的SQL語句執(zhí)行信息快照。其中,所述SQL語句執(zhí)行信息快照為:一個確定時間點上的SQL語句執(zhí)行信息。在本發(fā)明的具體實施例中,所述SQL語句執(zhí)行信息快照可以包括:一個確定時間點上的SQL執(zhí)行成本、SQL執(zhí)行頻率和SQL響應(yīng)時間。步驟203,在采集周期結(jié)束時,根據(jù)當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。在本發(fā)明的具體實施例中,可以通過多種實現(xiàn)方式來實現(xiàn)上述的步驟203。以下將以其中的一種實現(xiàn)方式為例進(jìn)行比較詳細(xì)地介紹。
圖3為本發(fā)明中更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的方法流程圖。如圖3所示,所述方法包括:步驟301,在采集周期結(jié)束時,計算各個采集時間點的SQL平均響應(yīng)時間。由于一個采集周期為η天,且一個采集周期內(nèi)有m個采集時間點,因此,一共將采集到(mXn)個SQL語句執(zhí)行信息快照;其中,對于每一個采集時間點,都有η個采集到的SQL語句執(zhí)行信息快照,每個SQL語句執(zhí)行信息快照中都有一個SQL響應(yīng)時間,因此,可以根據(jù)上述采集到的SQL語句執(zhí)行信息快照,確定各個采集時間點的SQL平均響應(yīng)時間。舉例來說,所述計算各個采集時間點的SQL平均響應(yīng)時間包括:對在同一個采集時間點上采集到的各個SQL語句執(zhí)行信息快照中的SQL響應(yīng)時間計算算術(shù)平均值,將所述算術(shù)平均值作為該采集時間點的SQL平均響應(yīng)時間。例如,對于每一個采集時間點,都有η個采集到的SQL語句執(zhí)行信息快照,因此,可以先計算所述η個采集到的SQL語句執(zhí)行信息快照中的SQL響應(yīng)時間的總和,再將該總和除以η,即可得到該采集時間點的SQL平均響應(yīng)時間。此外,在本發(fā)明的具體實施例中,在計算算術(shù)平均值之前,還可先去除在同一個采集時間點上所采集到的各個SQL語句執(zhí)行信息快照中的SQL響應(yīng)時間中數(shù)值最大的SQL響應(yīng)時間和數(shù)值最小的SQL響應(yīng)時間,從而排除特殊情況下的SQL響應(yīng)時間,使所得到的SQL平均響應(yīng)時間更接近于實際情況中的SQL響應(yīng)時間。步驟302,根據(jù)當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值以及各個采集時間點的SQL平均響應(yīng)時間,將各個采集時間點分為閑時響應(yīng)時間點和忙時響應(yīng)時間點。舉例來說,當(dāng)采集時間點的SQL平均響應(yīng)時間位于當(dāng)前的SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之內(nèi)時,則將該采集時間點定義為閑時響應(yīng)時間
占.
當(dāng)采集時間點的SQL平均響應(yīng)時間位于當(dāng)前的SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之外時,則將該采集時間點定義為忙時響應(yīng)時間點。其中,在本發(fā)明的具體實施例中,當(dāng)完成第一次更新SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之前,所述當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值為SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值;當(dāng)SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值更新之后,所述當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值為更新后的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值。步驟303,根據(jù)所有閑時響應(yīng)時間點的SQL平均響應(yīng)時間,確定閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值;根據(jù)所有忙時響應(yīng)時間點的SQL平均響應(yīng)時間,確定忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值。舉例來說,所述根據(jù)所有閑時響應(yīng)時間點的SQL平均響應(yīng)時間,確定閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值包括:將所有閑時響應(yīng)時間點的最小SQL平均響應(yīng)時間作為閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最小值;將所有閑時響應(yīng)時間點的最大SQL平均響應(yīng)時間作為閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最大值。所述根據(jù)所有忙時響應(yīng)時間點的SQL平均響應(yīng)時間,確定忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值包括:
將所有忙時響應(yīng)時間點的最小SQL平均響應(yīng)時間作為忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最小值;將所有忙時響應(yīng)時間點的最大SQL平均響應(yīng)時間作為忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最大值。步驟304,根據(jù)閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值和忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值,更新當(dāng)前SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值。上述更新當(dāng)前SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值的方式可以有多種。舉例來說,所述根據(jù)閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值和忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值,更新當(dāng)前SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值包括:計算閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最小值與忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最小值的平均值,將該平均值作為更新后的當(dāng)前SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值的最小值;計算閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最大值與忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最大值的平均值,將該平均值作為更新后的當(dāng)前SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值的最大值。通過上述的步驟301 304,即可實現(xiàn)所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的更新。步驟102,從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應(yīng)的SQL語句執(zhí)行信息?!?br>
在本步驟中,可根據(jù)步驟101中所確定的關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句,從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應(yīng)的SQL語句執(zhí)行信息。進(jìn)一步地,在采集所述SQL語句執(zhí)行信息中的SQL執(zhí)行成本時,可以不直接采集SQL執(zhí)行成本,而是先采集SQL執(zhí)行成本相關(guān)信息,再根據(jù)所采集的SQL執(zhí)行成本相關(guān)信息計算SQL執(zhí)行成本。例如,所述SQL執(zhí)行成本相關(guān)信息可以包括:單塊讀的次數(shù)(記為SRds);多塊讀的次數(shù)(記作MRds);需要調(diào)用CPU的周期數(shù)(記作CPUCycles);單塊讀的時間(記作sreadtim);多塊讀的時間(記作mreadtim) ;CPU每秒的周期數(shù)(記作cpuspeed)。此時,所述根據(jù)所采集的SQL執(zhí)行成本相關(guān)信息計算SQL執(zhí)行成本包括:通過如下所述公式計算SQL執(zhí)行成本(記為SqlCost)。SqlCost =(SRds*sreadtim+MRds*mreadtim+CPUcycles/cpuspeed)/sreadtime.
此外,在本發(fā)明的具體實施例中,還可在開始從生產(chǎn)數(shù)據(jù)庫中采集所述SQL語句執(zhí)行信息時,啟動一個預(yù)設(shè)時長(例如,30秒)的定時器。由于在正常情況下,采集操作將在預(yù)設(shè)時長內(nèi)完成。因此,當(dāng)定時器超時時,如果仍未采集到所需的SQL語句執(zhí)行信息,將可認(rèn)為所述生產(chǎn)數(shù)據(jù)庫發(fā)生了異常或該生產(chǎn)數(shù)據(jù)庫的性能很差,從而可發(fā)出相應(yīng)的報警信肩、O步驟103,將所采集的SQL語句執(zhí)行信息與所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響。舉例來說,在本發(fā)明的具體實施例中,可將所采集的SQL語句執(zhí)行信息與所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,并根據(jù)比對結(jié)果確定所述SQL語句是否對關(guān)鍵業(yè)務(wù)的性能造成不利影響。
例如,所述確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響包括:當(dāng)SQL語句執(zhí)行信息中的SQL響應(yīng)時間位于所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之外時,則判斷所述SQL語句對關(guān)鍵業(yè)務(wù)的性能造成不利影響。 進(jìn)一步地,當(dāng)SQL語句執(zhí)行信息中的SQL響應(yīng)時間位于所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之內(nèi)時,還可進(jìn)一步判斷SQL語句執(zhí)行信息中的SQL執(zhí)行成本是否位于所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL執(zhí)行成本標(biāo)準(zhǔn)范圍值之內(nèi);如果是,則判斷所述SQL語句未對關(guān)鍵業(yè)務(wù)的性能造成不利影響;否則,發(fā)出告警信息,表示關(guān)鍵業(yè)務(wù)SQL語句執(zhí)行異常。也就是說,當(dāng)SQL響應(yīng)時間位于SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之內(nèi)時,如果SQL執(zhí)行成本位于SQL執(zhí)行成本標(biāo)準(zhǔn)范圍值之外,則說明當(dāng)前SQL語句雖然不對該關(guān)鍵業(yè)務(wù)的性能造成不利影響,但可能有其它的原因?qū)е铝岁P(guān)鍵業(yè)務(wù)的SQL語句執(zhí)行異常(例如,其它的SQL語句對該關(guān)鍵業(yè)務(wù)的性能造成了不利影響),此時將發(fā)出告警信息,以提醒數(shù)據(jù)庫管理員進(jìn)行處理。在本發(fā)明的具體實施例中,還可以進(jìn)一步對SQL語句執(zhí)行信息中的SQL執(zhí)行頻率是否位于所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL執(zhí)行頻率標(biāo)準(zhǔn)范圍值之內(nèi)進(jìn)行判斷,從而進(jìn)一步查明影響關(guān)鍵業(yè)務(wù)的性能的具體原因。例如,當(dāng)SQL響應(yīng)時間位于SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之內(nèi),且SQL執(zhí)行成本位于SQL執(zhí)行成本標(biāo)準(zhǔn)范圍值之外時,還可以進(jìn)一步判斷SQL語句執(zhí)行信息中的SQL執(zhí)行頻率是否位于所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL執(zhí)行頻率標(biāo)準(zhǔn)范圍值之外;如果是,則可知SQL語句的執(zhí)行頻率過高可能是導(dǎo)致關(guān)鍵業(yè)務(wù)SQL語句執(zhí)行異常的原因之一。在本發(fā)明的技術(shù)方案中,還提出了一種判斷SQL語句是否影響關(guān)鍵業(yè)務(wù)的性能的系統(tǒng),從而可以將上述判斷SQL語句是否影響關(guān)鍵業(yè)務(wù)的性能的的方法應(yīng)用于所述判斷SQL語句是否影響關(guān)鍵業(yè)務(wù)的性能的系統(tǒng)之上。圖4為本發(fā)明中確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的系統(tǒng)的結(jié)構(gòu)示意圖。如圖4所示,所述確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的系統(tǒng)400包括:關(guān)鍵業(yè)務(wù)定義裝置401和SQL執(zhí)行計劃裝置402。其中,所述關(guān)鍵業(yè)務(wù)定義裝置401,用于對關(guān)鍵業(yè)務(wù)進(jìn)行分析,確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;將所確定的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給所述SQL執(zhí)行計劃裝置402 ;所述SQL執(zhí)行計劃裝置402,用于從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應(yīng)的SQL語句執(zhí)行信息;將所采集的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響。此外,在本發(fā)明的具體實施中,所述關(guān)鍵業(yè)務(wù)定義裝置確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值為:所述關(guān)鍵業(yè)務(wù)定義裝置,還可用于預(yù)先設(shè)置并存儲所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值,將所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值作為當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;在預(yù)定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應(yīng)的SQL語句執(zhí)行信息快照;在采集周期結(jié)束時,根據(jù)當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。在本發(fā)明的具體實施例中,所述關(guān)鍵業(yè)務(wù)定義裝置的結(jié)構(gòu)組成可以是多種多樣的,以下將以其中的一種結(jié)構(gòu)組成為例進(jìn)行說明。圖5為本發(fā)明中關(guān)鍵業(yè)務(wù)定義裝置的結(jié)構(gòu)示意圖。如圖5所示,所述關(guān)鍵業(yè)務(wù)定義裝置500包括:關(guān)鍵業(yè)務(wù)定義模塊501、關(guān)鍵業(yè)務(wù)性能采集模塊502、關(guān)鍵業(yè)務(wù)分析模塊503和本地數(shù)據(jù)庫504。其中:所述關(guān)鍵業(yè)務(wù)定義模塊501,用于對關(guān)鍵業(yè)務(wù)進(jìn)行分析,確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,將所確定的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息發(fā)送給所述關(guān)鍵業(yè)務(wù)性能采集模塊502和SQL執(zhí)行計劃裝置;還用于預(yù)先設(shè)置所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值,將所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值作為當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;將當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給本地數(shù)據(jù)庫504 ;所述關(guān)鍵業(yè)務(wù)性能采集模塊502,用于在預(yù)定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應(yīng)的SQL語句執(zhí)行信息快照;將采集到的SQL語句執(zhí)行信息快照發(fā)送給所述關(guān)鍵業(yè)務(wù)分析模塊503 ;所述關(guān)鍵業(yè)務(wù)分析模塊503,用于在采集周期結(jié)束時,根據(jù)從本地數(shù)據(jù)庫中獲取的當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值,并將更新后的當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給所述本地數(shù)據(jù)庫和所述SQL執(zhí)行計劃裝置;所述本地數(shù)據(jù)庫504,用于存儲SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值,并存儲所接收到的更新后的當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。在本發(fā)明的具體實施例中,所述SQL執(zhí)行計劃裝置的結(jié)構(gòu)組成也可以是多種多樣的,以下將以其中的一種結(jié)構(gòu)組成為例進(jìn)行說明。圖6為本發(fā)明中SQL執(zhí)行計劃裝置的結(jié)構(gòu)示意圖。如圖6所示,所述SQL執(zhí)行計劃裝置600包括:SQL語句采集模塊601、SQL語句分析模塊602和存儲模塊603。其中:所述SQL語句采集模塊601,用于接收SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,并從生產(chǎn)數(shù)據(jù)庫中實時采集與所接收的SQL語句相應(yīng)的SQL語句執(zhí)行信息,將所采集的SQL語句執(zhí)行信息發(fā)送給所述存儲模塊603 ;所述存儲模塊603,用于存儲所采集的SQL語句執(zhí)行信息,接收并存儲SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值,將所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值和所采集的SQL語句執(zhí)行信息發(fā)送給所述SQL語句分析模塊602 ;所述SQL語句分析模塊602,用于將所接收到的SQL語句執(zhí)行信息與所接收到的SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響。綜上所述,在本發(fā)明的技術(shù)方案中,由于可先確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,然后將從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應(yīng)的SQL語句執(zhí)行信息與預(yù)先確定的SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響,從而可以有效地確定關(guān)鍵業(yè)務(wù)所對應(yīng)的SQL語句的執(zhí)行是否影響關(guān)鍵業(yè)務(wù)的性能。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的方法,其特征在于,該方法包括: A、對關(guān)鍵業(yè)務(wù)進(jìn)行分析,確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值; B、從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應(yīng)的SQL語句執(zhí)行信息; C、將所采集的SQL語句執(zhí)行信息與所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述SQL語句執(zhí)行信息包括:SQL執(zhí)行成本、SQL執(zhí)行頻率和SQL響應(yīng)時間; 所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值包括:SQL執(zhí)行成本標(biāo)準(zhǔn)范圍值、SQL執(zhí)行頻率標(biāo)準(zhǔn)范圍值和SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A中確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值包括: Al、預(yù)先設(shè)置并存儲所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值;將所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值作為當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值; A2、在預(yù)定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應(yīng)的SQL語句執(zhí)行信息快照; A3、在采集周期結(jié)束時,根據(jù)當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于: 所述預(yù)定的采集周期的長度為η天;其中,η為自然數(shù); 在預(yù)定的采集周期中,還設(shè)置有m個采集時間點,分別對應(yīng)于采集周期中的每一天中的m個確定的時間點。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于: 所述SQL語句執(zhí)行信息快照為:各個采集時間點上的SQL語句執(zhí)行信息。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟A3包括: A31、在采集周期結(jié)束時,計算各個采集時間點的SQL平均響應(yīng)時間; A32、根據(jù)當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值以及各個采集時間點的SQL平均響應(yīng)時間,將各個采集時間點分為閑時響應(yīng)時間點和忙時響應(yīng)時間點; A33、根據(jù)所有閑時響應(yīng)時間點的SQL平均響應(yīng)時間,確定閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值;根據(jù)所有忙時響應(yīng)時間點的SQL平均響應(yīng)時間,確定忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值; A34、根據(jù)閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值和忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值,更新當(dāng)前SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟A31包括: 對在同一個采集時間點上采集到的各個SQL語句執(zhí)行信息快照中的SQL響應(yīng)時間計算算術(shù)平均值,將所述算術(shù)平均值作為該采集時間點的SQL平均響應(yīng)時間。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于: 在計算所述算術(shù)平均值之前,去除在同一個采集時間點上所采集到的各個SQL語句執(zhí)行信息快照中的SQL響應(yīng)時間中數(shù)值最大的SQL響應(yīng)時間和數(shù)值最小的SQL響應(yīng)時間。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟A32包括:當(dāng)采集時間點的SQL平均響應(yīng)時間位于當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之內(nèi)時,則將該采集時間點定義為閑時響應(yīng)時間點; 當(dāng)采集時間點的SQL平均響應(yīng)時間位于當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之外時,則將該采集時間點定義為忙時響應(yīng)時間點。
10.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟A33中的所述確定閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值包括: 將所有閑時響應(yīng)時間點的最小SQL平均響應(yīng)時間作為閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最小值;將所有閑時響應(yīng)時間點的最大SQL平均響應(yīng)時間作為閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最大值。
11.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟A33中的所述根據(jù)所有忙時響應(yīng)時間點的SQL平均響應(yīng)時間,確定忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值包括: 將所有忙時響應(yīng)時間點的最小SQL平均響應(yīng)時間作為忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最小值;將所有忙時響應(yīng)時間點的最大SQL平均響應(yīng)時間作為忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最大值。
12.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟A34包括: 計算閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最小值與忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最小值的平均值,將該平均值作為更新后的當(dāng)前SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值的最小值; 計算閑時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最大值與忙時SQL標(biāo)準(zhǔn)響應(yīng)時間范圍值的最大值的平均值,將該平均值作為更新后的當(dāng)前SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值的最大值。
13.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟B中采集所述SQL語句執(zhí)行信息中的SQL執(zhí)行成本包括: 從生產(chǎn)數(shù)據(jù)庫中實時采集SQL執(zhí)行成本相關(guān)信息,根據(jù)所采集的SQL執(zhí)行成本相關(guān)信息計算SQL執(zhí)行成本; 所述SQL執(zhí)行成本相關(guān)信息包括: 單塊讀的次數(shù)SRds ;多塊讀的次數(shù)MRds ;需要調(diào)用CPU的周期數(shù)CPUCycles ;單塊讀的時間sreadtim ;多塊讀的時間mreadtim ;CPU每秒的周期數(shù)cpuspeed。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,計算所述SQL執(zhí)行成本的公式為:SqlCost =(SRds*sreadtim+MRds*mreadtim+CPUcycles/cpuspeed)/sreadtime, 其中,所述SqlCost為SQL執(zhí)行成本。
15.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B中還進(jìn)一步包括: 在開始從生產(chǎn)數(shù)據(jù)庫中采集所述SQL語句執(zhí)行信息時,啟動一個預(yù)設(shè)時長的定時器; 當(dāng)定時器超時時,如果仍未采集到所需的SQL語句執(zhí)行信息,則發(fā)出報警信息。
16.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟C中的確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響包括: 當(dāng)SQL語句執(zhí)行信息中的SQL響應(yīng)時間位于所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之外時,則判斷所述SQL語句對關(guān)鍵業(yè)務(wù)的性能造成不利影響。
17.根據(jù)權(quán)利要求1所述的方法, 其特征在于,所述步驟C中的確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響包括:當(dāng)SQL語句執(zhí)行信息中的SQL響應(yīng)時間位于所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL響應(yīng)時間標(biāo)準(zhǔn)范圍值之內(nèi)時,判斷SQL語句執(zhí)行信息中的SQL執(zhí)行成本是否位于所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值中的SQL執(zhí)行成本標(biāo)準(zhǔn)范圍值之內(nèi);如果是,則判斷所述SQL語句未對關(guān)鍵業(yè)務(wù)的性能造成不利影響;否則,發(fā)出告警信息。
18.一種確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的系統(tǒng),其特征在于,該系統(tǒng)包括:關(guān)鍵業(yè)務(wù)定義裝置和SQL執(zhí)行計劃裝置; 所述關(guān)鍵業(yè)務(wù)定義裝置,用于對關(guān)鍵業(yè)務(wù)進(jìn)行分析,確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;將所確定的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給所述SQL執(zhí)行計劃裝置; 所述SQL執(zhí)行計劃裝置,用于從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應(yīng)的SQL語句執(zhí)行信息;將所采集的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于,所述關(guān)鍵業(yè)務(wù)定義裝置確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值為: 所述關(guān)鍵業(yè)務(wù)定義裝置,用于預(yù)先設(shè)置并存儲所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值,將所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值作為當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;在預(yù)定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應(yīng)的SQL語句執(zhí)行信息快照;在采集周期結(jié)束時,根據(jù)當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。
20.一種關(guān)鍵業(yè)務(wù)定義裝置,其特征在于,所述關(guān)鍵業(yè)務(wù)定義裝置包括:關(guān)鍵業(yè)務(wù)定義模塊、關(guān)鍵業(yè)務(wù)性能采集模塊、關(guān)鍵業(yè)務(wù)分析模塊和本地數(shù)據(jù)庫; 所述關(guān)鍵業(yè)務(wù)定義1吳塊,對關(guān)鍵業(yè)務(wù)進(jìn)行分析,確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)1吳塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,將所確定的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息發(fā)送給所述關(guān)鍵業(yè)務(wù)性能采集模塊和SQL執(zhí)行計劃裝置;還用于預(yù)先設(shè)置所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值,將所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值作為當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;將當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給本地數(shù)據(jù)庫; 所述關(guān)鍵業(yè)務(wù)性能采集模塊,用于在預(yù)定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應(yīng)的SQL語句執(zhí)行信息快照;將采集到的SQL語句執(zhí)行信息快照發(fā)送給所述關(guān)鍵業(yè)務(wù)分析模塊; 所述關(guān)鍵業(yè)務(wù)分析模塊,用于在采集周期結(jié)束時,根據(jù)從本地數(shù)據(jù)庫中獲取的當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值,并將更新后的當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給所述本地數(shù)據(jù)庫和所述SQL執(zhí)行計劃裝置; 所述本地數(shù)據(jù)庫,用于存儲SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值的初始值,并存儲所接收到的更新后的當(dāng)前SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值。
21.—種SQL執(zhí)行計劃裝置,其特征在于,所述SQL執(zhí)行計劃裝置包括:SQL語句采集模塊、SQL語句分析模塊和存儲模塊; 所述SQL語句采集模塊,用于接收SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,并從生產(chǎn)數(shù)據(jù)庫中實時采集與所接收的SQL語句相應(yīng)的SQL語句執(zhí)行信息,將所采集的SQL語句執(zhí)行信息發(fā)送給所述存儲模塊; 所述存儲模塊,用于存儲所采集的SQL語句執(zhí)行信息和SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值,將所采集的SQL語句執(zhí)行信息和SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值發(fā)送給所述SQL語句分析模塊; 所述SQL語句分析模塊,用于將所接收到的SQL語句執(zhí)行信息與所接收到的SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對 ,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響。
全文摘要
本發(fā)明提供了一種確定SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響的方法、系統(tǒng)和設(shè)備。其中的方法包括對關(guān)鍵業(yè)務(wù)進(jìn)行分析,確定關(guān)鍵業(yè)務(wù)的各個業(yè)務(wù)模塊所對應(yīng)的SQL語句以及相應(yīng)的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值;從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應(yīng)的SQL語句執(zhí)行信息;將所采集的SQL語句執(zhí)行信息與所述SQL語句執(zhí)行信息的標(biāo)準(zhǔn)范圍值進(jìn)行比對,確定所述SQL語句對關(guān)鍵業(yè)務(wù)的性能的影響。應(yīng)用本發(fā)明可以確定關(guān)鍵業(yè)務(wù)所對應(yīng)的SQL語句的執(zhí)行是否影響關(guān)鍵業(yè)務(wù)的性能。
文檔編號G06F17/30GK103186603SQ20111045549
公開日2013年7月3日 申請日期2011年12月29日 優(yōu)先權(quán)日2011年12月29日
發(fā)明者王曉征, 肖愛元 申請人:中國移動通信集團(tuán)浙江有限公司