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

確定sql語句對關鍵業(yè)務的性能的影響的方法、系統(tǒng)和設備的制作方法

文檔序號:6444501閱讀:160來源:國知局
專利名稱:確定sql語句對關鍵業(yè)務的性能的影響的方法、系統(tǒng)和設備的制作方法
技術(shù)領域
本發(fā)明涉及數(shù)據(jù)庫處理技術(shù)領域,尤其涉及一種確定SQL語句對關鍵業(yè)務的性能的影響的方法、系統(tǒng)和設備。
背景技術(shù)
在現(xiàn)有的數(shù)據(jù)庫系統(tǒng)中,一般都是使用結(jié)構(gòu)化查詢語言(SQL)語句進行相應的數(shù)據(jù)查詢,從而完成相應的業(yè)務。對于一些比較敏感的業(yè)務而言,如果所執(zhí)行的SQL語句的執(zhí)行效率低下、響應時間過長,則可能導致數(shù)據(jù)庫的性能下降,從而無法滿足業(yè)務處理能力要求,造成業(yè)務服務阻塞,使得終端用戶具有明顯的感知或業(yè)務感知。因此,可將這類敏感的業(yè)務稱之為關鍵業(yè)務。為了提高關鍵業(yè)務的性能,在關鍵業(yè)務的SQL語句實際執(zhí)行之前,可以對該SQL語句進行檢測,分析該SQL語句的執(zhí)行計劃,以判斷該SQL語句是否會對關鍵業(yè)務的性能造成不利的影響。但是,由于對關鍵業(yè)務的性能造成不利影響的因素比較多,所以一般比較難以判斷某個SQL語句是否對關鍵業(yè)務的性能造成了不利影響。例如:I)關鍵業(yè)務的SQL語句的響應時間即使發(fā)生微秒級的變化,也有可能對關鍵業(yè)務產(chǎn)生不利影響或阻塞業(yè)務,但此時從數(shù)據(jù)庫層面上卻很可能難以發(fā)現(xiàn)性能異常。譬如:當關鍵業(yè)務的SQL語句的響應時間由I秒變成2秒時,從數(shù)據(jù)庫層面一般并不能發(fā)現(xiàn)性能異常;然而,由于該SQL語句的響應時間增加了 I秒,因此很可能對關鍵業(yè)務的性能造成了不利影響。2) SQL語句執(zhí)行計劃的錯誤也將會使得該進程消耗大量CPU的計算資源、內(nèi)存的存儲空間或10,導致數(shù)據(jù)庫的響應時間較長,前臺查詢速度比較緩慢,從而對關鍵業(yè)務的性能造成了不利影響。3)數(shù)據(jù)庫中存在的大量行鎖也可能影響關鍵業(yè)務SQL語句所操作的對象,從而可能使得數(shù)據(jù)庫的整體響應時間過長,從而對關鍵業(yè)務的性能造成了不利影響。為了解決關鍵業(yè)務性能影響的判斷問題,目前主要是采用如下方式:1、由于目前沒有比較直觀的方法去分析和判斷影響關鍵業(yè)務性能的各種因素,因此只能通過業(yè)務感知或業(yè)務影響來反映關鍵業(yè)務的性能。2、數(shù)據(jù)庫管理員(DBA)可使用數(shù)據(jù)庫性能監(jiān)控工具,確定占用大量資源或持有鎖的會話(SESSION),抓取所確定的SESSION執(zhí)行的SQL語句,并確認該SQL語句是否對關鍵業(yè)務的性能造成了不利影響。但是,上述兩種方式中還存在如下所述的問題:I)當關鍵業(yè)務的性能受到影響時,往往都是在應用層出現(xiàn)業(yè)務受理緩慢等現(xiàn)象時,DBA才通過監(jiān)控工具檢查該數(shù)據(jù)庫的性能,從數(shù)據(jù)庫中抓取消耗資源的SQL語句,并與應用層確認該SQL語句是否屬于該關鍵業(yè)務。整個處理過程時間過長,因此不能快速確定某個SQL語句是否屬于關鍵業(yè)務,從而嚴重影響前臺業(yè)務,造成故障時間過長。
2)當關鍵業(yè)務的性能受到影響時,DBA通常不能第一時間獲知,往往都是由應用維護人員或開發(fā)人員發(fā)現(xiàn)業(yè)務感知或是業(yè)務處理受到影響,然后再報告給DBA。此時,數(shù)據(jù)庫中已經(jīng)有部分SQL語句大量消耗了系統(tǒng)資源或在等待鎖,從而使得大面積的業(yè)務受到影響,因而不能有效、快速地發(fā)現(xiàn)關鍵業(yè)務的性能問題。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種確定SQL語句對關鍵業(yè)務的性能的影響的方法、系統(tǒng)和設備,從而可確定關鍵業(yè)務所對應的SQL語句的執(zhí)行是否影響關鍵業(yè)務的性能。本發(fā)明采用的技術(shù)方案具體是這樣實現(xiàn)的:一種確定SQL語句對關鍵業(yè)務的性能的影響的方法,該方法包括:A、對關鍵業(yè)務進行分析,確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標準范圍值;B、從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應的SQL語句執(zhí)行信息;C、將所采集的SQL語句執(zhí)行信息與所述SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響。一種確定SQL語句對關鍵業(yè)務的性能的影響的系統(tǒng),其特征在于,該系統(tǒng)包括 關鍵業(yè)務定義裝置和SQL執(zhí)行計劃裝置;所述關鍵業(yè)務定義裝 置,用于對關鍵業(yè)務進行分析,確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標準范圍值;將所確定的SQL語句以及相應的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標準范圍值發(fā)送給所述SQL執(zhí)行計劃裝置;所述SQL執(zhí)行計劃裝置,用于從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應的SQL語句執(zhí)行信息;將所采集的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響。—種關鍵業(yè)務定義裝置,所述關鍵業(yè)務定義裝置包括:關鍵業(yè)務定義|吳塊、關鍵業(yè)務性能采集模塊、關鍵業(yè)務分析模塊和本地數(shù)據(jù)庫;所述關鍵業(yè)務定義|吳塊,對關鍵業(yè)務進行分析,確定關鍵業(yè)務的各個業(yè)務|吳塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,將所確定的SQL語句以及相應的SQL語句執(zhí)行信息發(fā)送給所述關鍵業(yè)務性能采集模塊和SQL執(zhí)行計劃裝置;還用于預先設置所述SQL語句執(zhí)行信息的標準范圍值的初始值,將所述SQL語句執(zhí)行信息的標準范圍值的初始值作為當前SQL語句執(zhí)行信息的標準范圍值;將當前SQL語句執(zhí)行信息的標準范圍值發(fā)送給本地數(shù)據(jù)庫;所述關鍵業(yè)務性能采集模塊,用于在預定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應的SQL語句執(zhí)行信息快照;將采集到的SQL語句執(zhí)行信息快照發(fā)送給所述關鍵業(yè)務分析模塊;所述關鍵業(yè)務分析模塊,用于在采集周期結(jié)束時,根據(jù)從本地數(shù)據(jù)庫中獲取的當前SQL語句執(zhí)行信息的標準范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當前SQL語句執(zhí)行信息的標準范圍值,并將更新后的當前SQL語句執(zhí)行信息的標準范圍值發(fā)送給所述本地數(shù)據(jù)庫和所述SQL執(zhí)行計劃裝置;
所述本地數(shù)據(jù)庫,用于存儲SQL語句執(zhí)行信息的標準范圍值的初始值,并存儲所接收到的更新后的當前SQL語句執(zhí)行信息的標準范圍值。一種SQL執(zhí)行計劃裝置,所述SQL執(zhí)行計劃裝置包括:SQL語句采集模塊、SQL語句分析模塊和存儲模塊;所述SQL語句采集模塊,用于接收SQL語句以及相應的SQL語句執(zhí)行信息,并從生產(chǎn)數(shù)據(jù)庫中實時采集與所接收的SQL語句相應的SQL語句執(zhí)行信息,將所采集的SQL語句執(zhí)行信息發(fā)送給所述存儲模塊;所述存儲模塊,用于存儲所采集的SQL語句執(zhí)行信息和SQL語句執(zhí)行信息的標準范圍值,將所采集的SQL語句執(zhí)行信息和SQL語句執(zhí)行信息的標準范圍值發(fā)送給所述SQL語句分析模塊;所述SQL語句分析模塊,用于將所接收到的SQL語句執(zhí)行信息與所接收到的SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響。由上述技術(shù)方案可見,本發(fā)明中由于可先確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,然后將從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應的SQL語句執(zhí)行信息與預先確定的SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響,從而可以有效地確定關鍵業(yè)務所對應的SQL語句的執(zhí)行是否影響關鍵業(yè)務的性能。


圖1是本發(fā)明中確定SQL語句對關鍵業(yè)務的性能的影響的方法流程圖。圖2為本發(fā)明中確定并更新所述SQL語句執(zhí)行信息的標準范圍值的方法流程圖。圖3為本發(fā)明中更新所述SQL語句執(zhí)行信息的標準范圍值的方法流程圖。圖4為本發(fā)明中確定SQL語句對關鍵業(yè)務的性能的影響的系統(tǒng)的結(jié)構(gòu)示意圖。圖5為本發(fā)明中關鍵業(yè)務定義裝置的結(jié)構(gòu)示意圖。圖6為本發(fā)明中SQL執(zhí)行計劃裝置的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點表達得更加清楚明白,下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。圖1是本發(fā)明中確定SQL語句對關鍵業(yè)務的性能的影響的方法流程圖。如圖1所示,該方法包括:步驟101,對關鍵業(yè)務進行分析,確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標準范圍值。由于關鍵業(yè)務一般都多個業(yè)務模塊組成,每個業(yè)務模塊所對應的SQL語句也不盡相同。因此,在本發(fā)明的具體實施例中,可首先對關鍵業(yè)務進行分析,預先確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句,然后再確定與所述SQL語句相對應的SQL語句執(zhí)行信息。在本發(fā)明的具體實施例中,所述SQL語句執(zhí)行信息可以包括:SQL執(zhí)行成本(COST)、SQL執(zhí)行頻率和SQL響應時間。其中,所述SQL執(zhí)行成本是對SQL語句在執(zhí)行時所占用的資源的一種預計,例如,對執(zhí)行SQL語句所需占用的CPU與IO等相關資源的估計;所述SQL執(zhí)行頻率是SQL語句的執(zhí)行次數(shù);所述SQL響應時間是指完成SQL語句的執(zhí)行所需的時間。在本步驟中,在確定了相應的SQL語句執(zhí)行信息后,還將確定并更新所述SQL語句執(zhí)行信息的標準范圍值(即SQL語句執(zhí)行信息在正常情況下的范圍值)。其中,所述SQL語句執(zhí)行信息的標準范圍值可包括=SQL執(zhí)行成本標準范圍值、SQL執(zhí)行頻率標準范圍值和SQL響應時間標準范圍值。在本發(fā)明的具體實施例中,所述確定并更新所述SQL語句執(zhí)行信息的標準范圍值包括:確定所述SQL語句執(zhí)行信息的標準范圍值;并根據(jù)實時采集的與所述SQL語句執(zhí)行信息相對應的SQL語句執(zhí)行信息快照,更新所述SQL語句執(zhí)行信息的標準范圍值。在本發(fā)明的具體實施例中,也可以通過多種方式來確定并更新所述SQL語句執(zhí)行信息的標準范圍值。以下將以其中的一種實現(xiàn)方式為例進行比較詳細地介紹。圖2為本發(fā)明中確定并更新所述SQL語句執(zhí)行信息的標準范圍值的方法流程圖。如圖2所示,所述方法包括:步驟201,預先設置并存儲所述SQL語句執(zhí)行信息的標準范圍值的初始值;將所述SQL語句執(zhí)行信息的標準范圍值的初始值作為當前SQL語句執(zhí)行信息的標準范圍值。具體來說,在本步驟中,首先可預先設置所述SQL語句執(zhí)行信息的標準范圍值的初始值,并將所述SQL語句執(zhí)行信息的標準范圍值的初始值存儲在本地數(shù)據(jù)庫中。此時,可將所述SQL語句執(zhí)行信息的標準范圍值的初始值作為當前SQL語句執(zhí)行信息的標準范圍值。步驟202,在預定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應的SQL語句執(zhí)行信息快照。在本發(fā)明的具體實施例中,所述采集周期的長度可以預先設置。例如,可將采集周期的長度設置為η天;其中,η為自然數(shù),例如,η = 7。在預定的采集周期中,還可設置m個采集時間點,分別對應于采集周期中的每一天中的m個確定的時間點。例如,采集周期中的第I個采集時間點,為采集周期中的每一天中的O點O分;第2個采集時間點,為采集周期中的每一天中的O點10分;第3個采集時間點,為采集周期中的每一天中的O點20
分;......,依次類推。上述m的數(shù)值可以預先設置。此外,相鄰采集時間點之間的時間間
隔可以相同,也可以不相同。在本步驟中,可在預定的采集周期內(nèi)從生成數(shù)據(jù)庫中實時采集并存儲每個采集時間點上的與所述SQL語句執(zhí)行信息相對應的SQL語句執(zhí)行信息快照。其中,所述SQL語句執(zhí)行信息快照為:一個確定時間點上的SQL語句執(zhí)行信息。在本發(fā)明的具體實施例中,所述SQL語句執(zhí)行信息快照可以包括:一個確定時間點上的SQL執(zhí)行成本、SQL執(zhí)行頻率和SQL響應時間。步驟203,在采集周期結(jié)束時,根據(jù)當前SQL語句執(zhí)行信息的標準范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當前SQL語句執(zhí)行信息的標準范圍值。在本發(fā)明的具體實施例中,可以通過多種實現(xiàn)方式來實現(xiàn)上述的步驟203。以下將以其中的一種實現(xiàn)方式為例進行比較詳細地介紹。
圖3為本發(fā)明中更新所述SQL語句執(zhí)行信息的標準范圍值的方法流程圖。如圖3所示,所述方法包括:步驟301,在采集周期結(jié)束時,計算各個采集時間點的SQL平均響應時間。由于一個采集周期為η天,且一個采集周期內(nèi)有m個采集時間點,因此,一共將采集到(mXn)個SQL語句執(zhí)行信息快照;其中,對于每一個采集時間點,都有η個采集到的SQL語句執(zhí)行信息快照,每個SQL語句執(zhí)行信息快照中都有一個SQL響應時間,因此,可以根據(jù)上述采集到的SQL語句執(zhí)行信息快照,確定各個采集時間點的SQL平均響應時間。舉例來說,所述計算各個采集時間點的SQL平均響應時間包括:對在同一個采集時間點上采集到的各個SQL語句執(zhí)行信息快照中的SQL響應時間計算算術(shù)平均值,將所述算術(shù)平均值作為該采集時間點的SQL平均響應時間。例如,對于每一個采集時間點,都有η個采集到的SQL語句執(zhí)行信息快照,因此,可以先計算所述η個采集到的SQL語句執(zhí)行信息快照中的SQL響應時間的總和,再將該總和除以η,即可得到該采集時間點的SQL平均響應時間。此外,在本發(fā)明的具體實施例中,在計算算術(shù)平均值之前,還可先去除在同一個采集時間點上所采集到的各個SQL語句執(zhí)行信息快照中的SQL響應時間中數(shù)值最大的SQL響應時間和數(shù)值最小的SQL響應時間,從而排除特殊情況下的SQL響應時間,使所得到的SQL平均響應時間更接近于實際情況中的SQL響應時間。步驟302,根據(jù)當前SQL語句執(zhí)行信息的標準范圍值以及各個采集時間點的SQL平均響應時間,將各個采集時間點分為閑時響應時間點和忙時響應時間點。舉例來說,當采集時間點的SQL平均響應時間位于當前的SQL語句執(zhí)行信息的標準范圍值中的SQL響應時間標準范圍值之內(nèi)時,則將該采集時間點定義為閑時響應時間
占.
當采集時間點的SQL平均響應時間位于當前的SQL語句執(zhí)行信息的標準范圍值中的SQL響應時間標準范圍值之外時,則將該采集時間點定義為忙時響應時間點。其中,在本發(fā)明的具體實施例中,當完成第一次更新SQL響應時間標準范圍值之前,所述當前SQL語句執(zhí)行信息的標準范圍值中的SQL響應時間標準范圍值為SQL語句執(zhí)行信息的標準范圍值的初始值中的SQL響應時間標準范圍值;當SQL響應時間標準范圍值更新之后,所述當前SQL語句執(zhí)行信息的標準范圍值中的SQL響應時間標準范圍值為更新后的SQL響應時間標準范圍值。步驟303,根據(jù)所有閑時響應時間點的SQL平均響應時間,確定閑時SQL標準響應時間范圍值;根據(jù)所有忙時響應時間點的SQL平均響應時間,確定忙時SQL標準響應時間范圍值。舉例來說,所述根據(jù)所有閑時響應時間點的SQL平均響應時間,確定閑時SQL標準響應時間范圍值包括:將所有閑時響應時間點的最小SQL平均響應時間作為閑時SQL標準響應時間范圍值的最小值;將所有閑時響應時間點的最大SQL平均響應時間作為閑時SQL標準響應時間范圍值的最大值。所述根據(jù)所有忙時響應時間點的SQL平均響應時間,確定忙時SQL標準響應時間范圍值包括:
將所有忙時響應時間點的最小SQL平均響應時間作為忙時SQL標準響應時間范圍值的最小值;將所有忙時響應時間點的最大SQL平均響應時間作為忙時SQL標準響應時間范圍值的最大值。步驟304,根據(jù)閑時SQL標準響應時間范圍值和忙時SQL標準響應時間范圍值,更新當前SQL響應時間標準范圍值。上述更新當前SQL響應時間標準范圍值的方式可以有多種。舉例來說,所述根據(jù)閑時SQL標準響應時間范圍值和忙時SQL標準響應時間范圍值,更新當前SQL響應時間標準范圍值包括:計算閑時SQL標準響應時間范圍值的最小值與忙時SQL標準響應時間范圍值的最小值的平均值,將該平均值作為更新后的當前SQL響應時間標準范圍值的最小值;計算閑時SQL標準響應時間范圍值的最大值與忙時SQL標準響應時間范圍值的最大值的平均值,將該平均值作為更新后的當前SQL響應時間標準范圍值的最大值。通過上述的步驟301 304,即可實現(xiàn)所述SQL語句執(zhí)行信息的標準范圍值的更新。步驟102,從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應的SQL語句執(zhí)行信息?!?br> 在本步驟中,可根據(jù)步驟101中所確定的關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句,從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應的SQL語句執(zhí)行信息。進一步地,在采集所述SQL語句執(zhí)行信息中的SQL執(zhí)行成本時,可以不直接采集SQL執(zhí)行成本,而是先采集SQL執(zhí)行成本相關信息,再根據(jù)所采集的SQL執(zhí)行成本相關信息計算SQL執(zhí)行成本。例如,所述SQL執(zhí)行成本相關信息可以包括:單塊讀的次數(shù)(記為SRds);多塊讀的次數(shù)(記作MRds);需要調(diào)用CPU的周期數(shù)(記作CPUCycles);單塊讀的時間(記作sreadtim);多塊讀的時間(記作mreadtim) ;CPU每秒的周期數(shù)(記作cpuspeed)。此時,所述根據(jù)所采集的SQL執(zhí)行成本相關信息計算SQL執(zhí)行成本包括:通過如下所述公式計算SQL執(zhí)行成本(記為SqlCost)。SqlCost =(SRds*sreadtim+MRds*mreadtim+CPUcycles/cpuspeed)/sreadtime.
此外,在本發(fā)明的具體實施例中,還可在開始從生產(chǎn)數(shù)據(jù)庫中采集所述SQL語句執(zhí)行信息時,啟動一個預設時長(例如,30秒)的定時器。由于在正常情況下,采集操作將在預設時長內(nèi)完成。因此,當定時器超時時,如果仍未采集到所需的SQL語句執(zhí)行信息,將可認為所述生產(chǎn)數(shù)據(jù)庫發(fā)生了異?;蛟撋a(chǎn)數(shù)據(jù)庫的性能很差,從而可發(fā)出相應的報警信肩、O步驟103,將所采集的SQL語句執(zhí)行信息與所述SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響。舉例來說,在本發(fā)明的具體實施例中,可將所采集的SQL語句執(zhí)行信息與所述SQL語句執(zhí)行信息的標準范圍值進行比對,并根據(jù)比對結(jié)果確定所述SQL語句是否對關鍵業(yè)務的性能造成不利影響。
例如,所述確定所述SQL語句對關鍵業(yè)務的性能的影響包括:當SQL語句執(zhí)行信息中的SQL響應時間位于所述SQL語句執(zhí)行信息的標準范圍值中的SQL響應時間標準范圍值之外時,則判斷所述SQL語句對關鍵業(yè)務的性能造成不利影響。 進一步地,當SQL語句執(zhí)行信息中的SQL響應時間位于所述SQL語句執(zhí)行信息的標準范圍值中的SQL響應時間標準范圍值之內(nèi)時,還可進一步判斷SQL語句執(zhí)行信息中的SQL執(zhí)行成本是否位于所述SQL語句執(zhí)行信息的標準范圍值中的SQL執(zhí)行成本標準范圍值之內(nèi);如果是,則判斷所述SQL語句未對關鍵業(yè)務的性能造成不利影響;否則,發(fā)出告警信息,表示關鍵業(yè)務SQL語句執(zhí)行異常。也就是說,當SQL響應時間位于SQL響應時間標準范圍值之內(nèi)時,如果SQL執(zhí)行成本位于SQL執(zhí)行成本標準范圍值之外,則說明當前SQL語句雖然不對該關鍵業(yè)務的性能造成不利影響,但可能有其它的原因?qū)е铝岁P鍵業(yè)務的SQL語句執(zhí)行異常(例如,其它的SQL語句對該關鍵業(yè)務的性能造成了不利影響),此時將發(fā)出告警信息,以提醒數(shù)據(jù)庫管理員進行處理。在本發(fā)明的具體實施例中,還可以進一步對SQL語句執(zhí)行信息中的SQL執(zhí)行頻率是否位于所述SQL語句執(zhí)行信息的標準范圍值中的SQL執(zhí)行頻率標準范圍值之內(nèi)進行判斷,從而進一步查明影響關鍵業(yè)務的性能的具體原因。例如,當SQL響應時間位于SQL響應時間標準范圍值之內(nèi),且SQL執(zhí)行成本位于SQL執(zhí)行成本標準范圍值之外時,還可以進一步判斷SQL語句執(zhí)行信息中的SQL執(zhí)行頻率是否位于所述SQL語句執(zhí)行信息的標準范圍值中的SQL執(zhí)行頻率標準范圍值之外;如果是,則可知SQL語句的執(zhí)行頻率過高可能是導致關鍵業(yè)務SQL語句執(zhí)行異常的原因之一。在本發(fā)明的技術(shù)方案中,還提出了一種判斷SQL語句是否影響關鍵業(yè)務的性能的系統(tǒng),從而可以將上述判斷SQL語句是否影響關鍵業(yè)務的性能的的方法應用于所述判斷SQL語句是否影響關鍵業(yè)務的性能的系統(tǒng)之上。圖4為本發(fā)明中確定SQL語句對關鍵業(yè)務的性能的影響的系統(tǒng)的結(jié)構(gòu)示意圖。如圖4所示,所述確定SQL語句對關鍵業(yè)務的性能的影響的系統(tǒng)400包括:關鍵業(yè)務定義裝置401和SQL執(zhí)行計劃裝置402。其中,所述關鍵業(yè)務定義裝置401,用于對關鍵業(yè)務進行分析,確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標準范圍值;將所確定的SQL語句以及相應的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標準范圍值發(fā)送給所述SQL執(zhí)行計劃裝置402 ;所述SQL執(zhí)行計劃裝置402,用于從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應的SQL語句執(zhí)行信息;將所采集的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響。此外,在本發(fā)明的具體實施中,所述關鍵業(yè)務定義裝置確定并更新所述SQL語句執(zhí)行信息的標準范圍值為:所述關鍵業(yè)務定義裝置,還可用于預先設置并存儲所述SQL語句執(zhí)行信息的標準范圍值的初始值,將所述SQL語句執(zhí)行信息的標準范圍值的初始值作為當前SQL語句執(zhí)行信息的標準范圍值;在預定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應的SQL語句執(zhí)行信息快照;在采集周期結(jié)束時,根據(jù)當前SQL語句執(zhí)行信息的標準范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當前SQL語句執(zhí)行信息的標準范圍值。在本發(fā)明的具體實施例中,所述關鍵業(yè)務定義裝置的結(jié)構(gòu)組成可以是多種多樣的,以下將以其中的一種結(jié)構(gòu)組成為例進行說明。圖5為本發(fā)明中關鍵業(yè)務定義裝置的結(jié)構(gòu)示意圖。如圖5所示,所述關鍵業(yè)務定義裝置500包括:關鍵業(yè)務定義模塊501、關鍵業(yè)務性能采集模塊502、關鍵業(yè)務分析模塊503和本地數(shù)據(jù)庫504。其中:所述關鍵業(yè)務定義模塊501,用于對關鍵業(yè)務進行分析,確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,將所確定的SQL語句以及相應的SQL語句執(zhí)行信息發(fā)送給所述關鍵業(yè)務性能采集模塊502和SQL執(zhí)行計劃裝置;還用于預先設置所述SQL語句執(zhí)行信息的標準范圍值的初始值,將所述SQL語句執(zhí)行信息的標準范圍值的初始值作為當前SQL語句執(zhí)行信息的標準范圍值;將當前SQL語句執(zhí)行信息的標準范圍值發(fā)送給本地數(shù)據(jù)庫504 ;所述關鍵業(yè)務性能采集模塊502,用于在預定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應的SQL語句執(zhí)行信息快照;將采集到的SQL語句執(zhí)行信息快照發(fā)送給所述關鍵業(yè)務分析模塊503 ;所述關鍵業(yè)務分析模塊503,用于在采集周期結(jié)束時,根據(jù)從本地數(shù)據(jù)庫中獲取的當前SQL語句執(zhí)行信息的標準范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當前SQL語句執(zhí)行信息的標準范圍值,并將更新后的當前SQL語句執(zhí)行信息的標準范圍值發(fā)送給所述本地數(shù)據(jù)庫和所述SQL執(zhí)行計劃裝置;所述本地數(shù)據(jù)庫504,用于存儲SQL語句執(zhí)行信息的標準范圍值的初始值,并存儲所接收到的更新后的當前SQL語句執(zhí)行信息的標準范圍值。在本發(fā)明的具體實施例中,所述SQL執(zhí)行計劃裝置的結(jié)構(gòu)組成也可以是多種多樣的,以下將以其中的一種結(jié)構(gòu)組成為例進行說明。圖6為本發(fā)明中SQL執(zhí)行計劃裝置的結(jié)構(gòu)示意圖。如圖6所示,所述SQL執(zhí)行計劃裝置600包括:SQL語句采集模塊601、SQL語句分析模塊602和存儲模塊603。其中:所述SQL語句采集模塊601,用于接收SQL語句以及相應的SQL語句執(zhí)行信息,并從生產(chǎn)數(shù)據(jù)庫中實時采集與所接收的SQL語句相應的SQL語句執(zhí)行信息,將所采集的SQL語句執(zhí)行信息發(fā)送給所述存儲模塊603 ;所述存儲模塊603,用于存儲所采集的SQL語句執(zhí)行信息,接收并存儲SQL語句執(zhí)行信息的標準范圍值,將所述SQL語句執(zhí)行信息的標準范圍值和所采集的SQL語句執(zhí)行信息發(fā)送給所述SQL語句分析模塊602 ;所述SQL語句分析模塊602,用于將所接收到的SQL語句執(zhí)行信息與所接收到的SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響。綜上所述,在本發(fā)明的技術(shù)方案中,由于可先確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,然后將從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應的SQL語句執(zhí)行信息與預先確定的SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響,從而可以有效地確定關鍵業(yè)務所對應的SQL語句的執(zhí)行是否影響關鍵業(yè)務的性能。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。
權(quán)利要求
1.一種確定SQL語句對關鍵業(yè)務的性能的影響的方法,其特征在于,該方法包括: A、對關鍵業(yè)務進行分析,確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標準范圍值; B、從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應的SQL語句執(zhí)行信息; C、將所采集的SQL語句執(zhí)行信息與所述SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述SQL語句執(zhí)行信息包括:SQL執(zhí)行成本、SQL執(zhí)行頻率和SQL響應時間; 所述SQL語句執(zhí)行信息的標準范圍值包括:SQL執(zhí)行成本標準范圍值、SQL執(zhí)行頻率標準范圍值和SQL響應時間標準范圍值。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A中確定并更新所述SQL語句執(zhí)行信息的標準范圍值包括: Al、預先設置并存儲所述SQL語句執(zhí)行信息的標準范圍值的初始值;將所述SQL語句執(zhí)行信息的標準范圍值的初始值作為當前SQL語句執(zhí)行信息的標準范圍值; A2、在預定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應的SQL語句執(zhí)行信息快照; A3、在采集周期結(jié)束時,根據(jù)當前SQL語句執(zhí)行信息的標準范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當前SQL語句執(zhí)行信息的標準范圍值。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于: 所述預定的采集周期的長度為η天;其中,η為自然數(shù); 在預定的采集周期中,還設置有m個采集時間點,分別對應于采集周期中的每一天中的m個確定的時間點。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于: 所述SQL語句執(zhí)行信息快照為:各個采集時間點上的SQL語句執(zhí)行信息。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟A3包括: A31、在采集周期結(jié)束時,計算各個采集時間點的SQL平均響應時間; A32、根據(jù)當前SQL語句執(zhí)行信息的標準范圍值以及各個采集時間點的SQL平均響應時間,將各個采集時間點分為閑時響應時間點和忙時響應時間點; A33、根據(jù)所有閑時響應時間點的SQL平均響應時間,確定閑時SQL標準響應時間范圍值;根據(jù)所有忙時響應時間點的SQL平均響應時間,確定忙時SQL標準響應時間范圍值; A34、根據(jù)閑時SQL標準響應時間范圍值和忙時SQL標準響應時間范圍值,更新當前SQL響應時間標準范圍值。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟A31包括: 對在同一個采集時間點上采集到的各個SQL語句執(zhí)行信息快照中的SQL響應時間計算算術(shù)平均值,將所述算術(shù)平均值作為該采集時間點的SQL平均響應時間。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于: 在計算所述算術(shù)平均值之前,去除在同一個采集時間點上所采集到的各個SQL語句執(zhí)行信息快照中的SQL響應時間中數(shù)值最大的SQL響應時間和數(shù)值最小的SQL響應時間。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟A32包括:當采集時間點的SQL平均響應時間位于當前SQL語句執(zhí)行信息的標準范圍值中的SQL響應時間標準范圍值之內(nèi)時,則將該采集時間點定義為閑時響應時間點; 當采集時間點的SQL平均響應時間位于當前SQL語句執(zhí)行信息的標準范圍值中的SQL響應時間標準范圍值之外時,則將該采集時間點定義為忙時響應時間點。
10.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟A33中的所述確定閑時SQL標準響應時間范圍值包括: 將所有閑時響應時間點的最小SQL平均響應時間作為閑時SQL標準響應時間范圍值的最小值;將所有閑時響應時間點的最大SQL平均響應時間作為閑時SQL標準響應時間范圍值的最大值。
11.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟A33中的所述根據(jù)所有忙時響應時間點的SQL平均響應時間,確定忙時SQL標準響應時間范圍值包括: 將所有忙時響應時間點的最小SQL平均響應時間作為忙時SQL標準響應時間范圍值的最小值;將所有忙時響應時間點的最大SQL平均響應時間作為忙時SQL標準響應時間范圍值的最大值。
12.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟A34包括: 計算閑時SQL標準響應時間范圍值的最小值與忙時SQL標準響應時間范圍值的最小值的平均值,將該平均值作為更新后的當前SQL響應時間標準范圍值的最小值; 計算閑時SQL標準響應時間范圍值的最大值與忙時SQL標準響應時間范圍值的最大值的平均值,將該平均值作為更新后的當前SQL響應時間標準范圍值的最大值。
13.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟B中采集所述SQL語句執(zhí)行信息中的SQL執(zhí)行成本包括: 從生產(chǎn)數(shù)據(jù)庫中實時采集SQL執(zhí)行成本相關信息,根據(jù)所采集的SQL執(zhí)行成本相關信息計算SQL執(zhí)行成本; 所述SQL執(zhí)行成本相關信息包括: 單塊讀的次數(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中還進一步包括: 在開始從生產(chǎn)數(shù)據(jù)庫中采集所述SQL語句執(zhí)行信息時,啟動一個預設時長的定時器; 當定時器超時時,如果仍未采集到所需的SQL語句執(zhí)行信息,則發(fā)出報警信息。
16.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟C中的確定所述SQL語句對關鍵業(yè)務的性能的影響包括: 當SQL語句執(zhí)行信息中的SQL響應時間位于所述SQL語句執(zhí)行信息的標準范圍值中的SQL響應時間標準范圍值之外時,則判斷所述SQL語句對關鍵業(yè)務的性能造成不利影響。
17.根據(jù)權(quán)利要求1所述的方法, 其特征在于,所述步驟C中的確定所述SQL語句對關鍵業(yè)務的性能的影響包括:當SQL語句執(zhí)行信息中的SQL響應時間位于所述SQL語句執(zhí)行信息的標準范圍值中的SQL響應時間標準范圍值之內(nèi)時,判斷SQL語句執(zhí)行信息中的SQL執(zhí)行成本是否位于所述SQL語句執(zhí)行信息的標準范圍值中的SQL執(zhí)行成本標準范圍值之內(nèi);如果是,則判斷所述SQL語句未對關鍵業(yè)務的性能造成不利影響;否則,發(fā)出告警信息。
18.一種確定SQL語句對關鍵業(yè)務的性能的影響的系統(tǒng),其特征在于,該系統(tǒng)包括:關鍵業(yè)務定義裝置和SQL執(zhí)行計劃裝置; 所述關鍵業(yè)務定義裝置,用于對關鍵業(yè)務進行分析,確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標準范圍值;將所確定的SQL語句以及相應的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標準范圍值發(fā)送給所述SQL執(zhí)行計劃裝置; 所述SQL執(zhí)行計劃裝置,用于從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應的SQL語句執(zhí)行信息;將所采集的SQL語句執(zhí)行信息和所述SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于,所述關鍵業(yè)務定義裝置確定并更新所述SQL語句執(zhí)行信息的標準范圍值為: 所述關鍵業(yè)務定義裝置,用于預先設置并存儲所述SQL語句執(zhí)行信息的標準范圍值的初始值,將所述SQL語句執(zhí)行信息的標準范圍值的初始值作為當前SQL語句執(zhí)行信息的標準范圍值;在預定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應的SQL語句執(zhí)行信息快照;在采集周期結(jié)束時,根據(jù)當前SQL語句執(zhí)行信息的標準范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當前SQL語句執(zhí)行信息的標準范圍值。
20.一種關鍵業(yè)務定義裝置,其特征在于,所述關鍵業(yè)務定義裝置包括:關鍵業(yè)務定義模塊、關鍵業(yè)務性能采集模塊、關鍵業(yè)務分析模塊和本地數(shù)據(jù)庫; 所述關鍵業(yè)務定義1吳塊,對關鍵業(yè)務進行分析,確定關鍵業(yè)務的各個業(yè)務1吳塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,將所確定的SQL語句以及相應的SQL語句執(zhí)行信息發(fā)送給所述關鍵業(yè)務性能采集模塊和SQL執(zhí)行計劃裝置;還用于預先設置所述SQL語句執(zhí)行信息的標準范圍值的初始值,將所述SQL語句執(zhí)行信息的標準范圍值的初始值作為當前SQL語句執(zhí)行信息的標準范圍值;將當前SQL語句執(zhí)行信息的標準范圍值發(fā)送給本地數(shù)據(jù)庫; 所述關鍵業(yè)務性能采集模塊,用于在預定的采集周期內(nèi)從生產(chǎn)數(shù)據(jù)庫中實時采集并存儲與所述SQL語句執(zhí)行信息相對應的SQL語句執(zhí)行信息快照;將采集到的SQL語句執(zhí)行信息快照發(fā)送給所述關鍵業(yè)務分析模塊; 所述關鍵業(yè)務分析模塊,用于在采集周期結(jié)束時,根據(jù)從本地數(shù)據(jù)庫中獲取的當前SQL語句執(zhí)行信息的標準范圍值和在該采集周期內(nèi)所采集到的SQL語句執(zhí)行信息快照,更新所述當前SQL語句執(zhí)行信息的標準范圍值,并將更新后的當前SQL語句執(zhí)行信息的標準范圍值發(fā)送給所述本地數(shù)據(jù)庫和所述SQL執(zhí)行計劃裝置; 所述本地數(shù)據(jù)庫,用于存儲SQL語句執(zhí)行信息的標準范圍值的初始值,并存儲所接收到的更新后的當前SQL語句執(zhí)行信息的標準范圍值。
21.—種SQL執(zhí)行計劃裝置,其特征在于,所述SQL執(zhí)行計劃裝置包括:SQL語句采集模塊、SQL語句分析模塊和存儲模塊; 所述SQL語句采集模塊,用于接收SQL語句以及相應的SQL語句執(zhí)行信息,并從生產(chǎn)數(shù)據(jù)庫中實時采集與所接收的SQL語句相應的SQL語句執(zhí)行信息,將所采集的SQL語句執(zhí)行信息發(fā)送給所述存儲模塊; 所述存儲模塊,用于存儲所采集的SQL語句執(zhí)行信息和SQL語句執(zhí)行信息的標準范圍值,將所采集的SQL語句執(zhí)行信息和SQL語句執(zhí)行信息的標準范圍值發(fā)送給所述SQL語句分析模塊; 所述SQL語句分析模塊,用于將所接收到的SQL語句執(zhí)行信息與所接收到的SQL語句執(zhí)行信息的標準范圍值進行比對 ,確定所述SQL語句對關鍵業(yè)務的性能的影響。
全文摘要
本發(fā)明提供了一種確定SQL語句對關鍵業(yè)務的性能的影響的方法、系統(tǒng)和設備。其中的方法包括對關鍵業(yè)務進行分析,確定關鍵業(yè)務的各個業(yè)務模塊所對應的SQL語句以及相應的SQL語句執(zhí)行信息,確定并更新所述SQL語句執(zhí)行信息的標準范圍值;從生產(chǎn)數(shù)據(jù)庫中實時采集與所確定的SQL語句相應的SQL語句執(zhí)行信息;將所采集的SQL語句執(zhí)行信息與所述SQL語句執(zhí)行信息的標準范圍值進行比對,確定所述SQL語句對關鍵業(yè)務的性能的影響。應用本發(fā)明可以確定關鍵業(yè)務所對應的SQL語句的執(zhí)行是否影響關鍵業(yè)務的性能。
文檔編號G06F17/30GK103186603SQ20111045549
公開日2013年7月3日 申請日期2011年12月29日 優(yōu)先權(quán)日2011年12月29日
發(fā)明者王曉征, 肖愛元 申請人:中國移動通信集團浙江有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
闻喜县| 芜湖县| 石棉县| 台东县| 敦煌市| 西贡区| 东乡族自治县| 石台县| 泽库县| 扎囊县| 徐水县| 清徐县| 明水县| 壤塘县| 宜阳县| 静宁县| 临沭县| 布拖县| 鄂伦春自治旗| 山东省| 达孜县| 泾川县| 马山县| 廉江市| 遂川县| 贵溪市| 柯坪县| 宜兰县| 福州市| 钦州市| 育儿| 蓬溪县| 和龙市| 怀安县| 丰城市| 宝山区| 沙湾县| 安化县| 闸北区| 五莲县| 德江县|