監(jiān)視存儲(chǔ)過程的執(zhí)行的制作方法
【專利摘要】提供了一種用于監(jiān)視在數(shù)據(jù)庫(kù)管理系統(tǒng)中執(zhí)行的存儲(chǔ)過程的方法。所述方法可以包括-針對(duì)所述存儲(chǔ)過程之一提供以下事件數(shù)據(jù)以及所述存儲(chǔ)過程的標(biāo)識(shí):指示所述存儲(chǔ)過程的執(zhí)行開始的第一時(shí)間;指示所述存儲(chǔ)過程的所述執(zhí)行結(jié)束的第二時(shí)間;被分配給作為所述存儲(chǔ)過程的一部分執(zhí)行的SQL語(yǔ)句的至少一個(gè)SQL語(yǔ)句標(biāo)識(shí)符;以及針對(duì)每個(gè)SQL語(yǔ)句標(biāo)識(shí)符,指示相關(guān)SQL語(yǔ)句作為所述存儲(chǔ)過程的一部分在所述第一時(shí)間與所述第二時(shí)間之間執(zhí)行的執(zhí)行次數(shù)的計(jì)數(shù)器。此外,所述方法可以包括通過所述數(shù)據(jù)庫(kù)管理系統(tǒng)提供定期的數(shù)據(jù)庫(kù)監(jiān)視信息,包括可通過所述SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值。此外,可將所述值與所述執(zhí)行次數(shù)相關(guān)聯(lián)。
【專利說明】監(jiān)視存儲(chǔ)過程的執(zhí)行
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般地涉及用于監(jiān)視在數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)中執(zhí)行的存儲(chǔ)過程的方法,以及涉及存儲(chǔ)過程性能監(jiān)視系統(tǒng)。
[0002]本發(fā)明進(jìn)一步地涉及數(shù)據(jù)庫(kù)系統(tǒng)、計(jì)算機(jī)系統(tǒng)、數(shù)據(jù)處理程序,以及計(jì)算機(jī)程序產(chǎn)品O
【背景技術(shù)】
[0003]今天,數(shù)據(jù)庫(kù)系統(tǒng),尤其是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)所存儲(chǔ)和處理的數(shù)據(jù)量以加速度增長(zhǎng)。由于數(shù)據(jù)量不斷增長(zhǎng),訪問數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)所需的時(shí)間也在持續(xù)增加。這給數(shù)據(jù)庫(kù)管理員帶來(lái)巨大壓力,迫使其優(yōu)化數(shù)據(jù)庫(kù)系統(tǒng)的功能和性能。
[0004]現(xiàn)在,許多數(shù)據(jù)庫(kù)管理系統(tǒng)均配備有相關(guān)的優(yōu)化和監(jiān)視工具。數(shù)據(jù)庫(kù)管理系統(tǒng)的目的是組織數(shù)據(jù)并允許快速、便捷地訪問檢索已存儲(chǔ)的數(shù)據(jù)。存在各種類型的數(shù)據(jù)庫(kù)管理系統(tǒng),例如關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)、分層數(shù)據(jù)庫(kù)管理系統(tǒng)以及網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理系統(tǒng)。典型的數(shù)據(jù)庫(kù)訪問語(yǔ)句可以包括讀取、寫入、更新和刪除語(yǔ)句。
[0005]但是,監(jiān)視和跟蹤數(shù)據(jù)庫(kù)的內(nèi)部功能需要額外的計(jì)算能力,這可能對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)的整體性能產(chǎn)生負(fù)面影響。眾所周知的用于測(cè)量數(shù)據(jù)庫(kù)管理系統(tǒng)性能的技術(shù)涉及快照數(shù)據(jù)??煺諗?shù)據(jù)傳遞有關(guān)數(shù)據(jù)庫(kù)內(nèi)部功能的連續(xù)信息。例如,存儲(chǔ)數(shù)據(jù)的時(shí)間、查找和讀取數(shù)據(jù)所需的時(shí)間和/或刪除數(shù)據(jù)的時(shí)間被連續(xù)測(cè)量。一般而言,快照數(shù)據(jù)記錄代表了有關(guān)數(shù)據(jù)庫(kù)管理系統(tǒng)的內(nèi)部功能和實(shí)際狀態(tài)的大量數(shù)據(jù)。其它數(shù)據(jù)與數(shù)據(jù)庫(kù)中的事件相關(guān),例如,有關(guān)已開始和已完成的SQL語(yǔ)句或具有相似性質(zhì)的其它事件的通知器。警告也可以與特定事件相關(guān)。
[0006]另一方面,存儲(chǔ)過程變得非常流行,以便從應(yīng)用程序卸載邏輯操作。同時(shí),這樣的應(yīng)用邏輯現(xiàn)在可在存儲(chǔ)過程中作為數(shù)據(jù)庫(kù)(遠(yuǎn)為更接近數(shù)據(jù))的一部分執(zhí)行。通常,在存儲(chǔ)過程中執(zhí)行循環(huán)。一般而言,只有完整的存儲(chǔ)過程的執(zhí)行時(shí)間可作為全局快照和事件數(shù)據(jù)被測(cè)量。為了優(yōu)化數(shù)據(jù)庫(kù)的功能和性能,可能需要具有有關(guān)存儲(chǔ)過程內(nèi)的SQL語(yǔ)句執(zhí)行的遠(yuǎn)為更細(xì)粒度的信息。另一方面,這種密切監(jiān)視相當(dāng)于持續(xù)測(cè)量數(shù)據(jù)庫(kù)的性能數(shù)據(jù)的額外開銷。
[0007]查詢語(yǔ)言通常用于訪問數(shù)據(jù)和數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)應(yīng)用程序可使用查詢語(yǔ)言編寫以訪問數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)。例如,結(jié)構(gòu)化查詢語(yǔ)言(SQL)是一種非常有名的查詢語(yǔ)言。數(shù)據(jù)庫(kù)應(yīng)用程序可結(jié)合使用SQL以及C0B0L、PL/1、JAVA和C之類的其它語(yǔ)言進(jìn)行編寫以訪問數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)。
[0008]可使用被稱為“存儲(chǔ)過程”(SP)的模塊訪問一個(gè)或多個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)中的數(shù)據(jù)。存儲(chǔ)過程可以是程序或腳本文件,并且在物理上存儲(chǔ)在數(shù)據(jù)庫(kù)管理系統(tǒng)中,一般存儲(chǔ)在可在其上訪問存儲(chǔ)過程的數(shù)據(jù)庫(kù)管理系統(tǒng)中。數(shù)據(jù)庫(kù)應(yīng)用程序可調(diào)用(invoke或call)—個(gè)或多個(gè)存儲(chǔ)過程。存儲(chǔ)過程一般可包括一個(gè)或多個(gè)數(shù)據(jù)訪問語(yǔ)句(SQL語(yǔ)句),或?qū)ζ渌鎯?chǔ)過程的調(diào)用以發(fā)出數(shù)據(jù)請(qǐng)求,以便獲取一個(gè)或多個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)(嵌套式存儲(chǔ)過程)。例如,存儲(chǔ)過程可包括一個(gè)或多個(gè)SQL語(yǔ)句以從數(shù)據(jù)庫(kù)管理系統(tǒng)檢索數(shù)據(jù)。存儲(chǔ)過程可與多個(gè)數(shù)據(jù)庫(kù)應(yīng)用程序共享。文獻(xiàn)US2007/0282837A1公開了一種有關(guān)分布式環(huán)境中存儲(chǔ)過程的性能測(cè)量的方法。此方法公開了對(duì)執(zhí)行一個(gè)或多個(gè)存儲(chǔ)過程的一個(gè)或多個(gè)組件的識(shí)別。存儲(chǔ)過程分別具有存儲(chǔ)過程標(biāo)識(shí)符。從數(shù)據(jù)庫(kù)管理系統(tǒng)收集與至少一個(gè)或多個(gè)存儲(chǔ)過程關(guān)聯(lián)的數(shù)據(jù)庫(kù)數(shù)據(jù)。此文獻(xiàn)進(jìn)一步公開了特定數(shù)據(jù)基于存儲(chǔ)過程標(biāo)識(shí)符中的特定一個(gè),在與存儲(chǔ)過程標(biāo)識(shí)符中的特定一個(gè)關(guān)聯(lián)的至少一個(gè)執(zhí)行開始時(shí)間、在至少一個(gè)執(zhí)行結(jié)束時(shí)間,以及在至少一樣本時(shí)間中相關(guān)聯(lián)。
[0009]另一文獻(xiàn)US7809694B2公開了分析來(lái)自關(guān)系數(shù)據(jù)庫(kù)的性能數(shù)據(jù)以發(fā)現(xiàn)性能較差的SQL語(yǔ)句,包括創(chuàng)建在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中執(zhí)行的查詢語(yǔ)句的性能數(shù)據(jù)事件記錄以及壓縮(condense)事件記錄中的性能數(shù)據(jù)??舍槍?duì)每個(gè)壓縮的事件記錄生成性能摘要。性能摘要然后可基于性能特征進(jìn)行分析以識(shí)別完全執(zhí)行的(purely performing) SQL語(yǔ)句。
[0010]目前對(duì)存儲(chǔ)過程的監(jiān)視支持可能涉及兩個(gè)主要問題領(lǐng)域。首先,對(duì)于多數(shù)數(shù)據(jù)庫(kù)管理員,從監(jiān)視角度而言,存儲(chǔ)過程可能是“黑匣子”。管理員無(wú)法獲知存儲(chǔ)過程“內(nèi)部”正在發(fā)生的事情。其次,現(xiàn)在為了獲取一定的細(xì)節(jié)級(jí)別,數(shù)據(jù)庫(kù)管理員可能需要采用“非常昂貴”的跟蹤(tracing),其具有巨大的CPU開銷。作為進(jìn)一步的步驟,可能需要手動(dòng)匹配所收集的例如有關(guān)在存儲(chǔ)過程中執(zhí)行的語(yǔ)句的細(xì)節(jié)信息。此過程的成本也會(huì)非常高,并且耗時(shí)、易于出錯(cuò)。此外,事件和快照數(shù)據(jù)收集可能沒有考慮到在存儲(chǔ)過程的應(yīng)用邏輯中花費(fèi)的時(shí)間。
[0011]這樣,可能需要一種用于數(shù)據(jù)庫(kù)管理系統(tǒng)中的存儲(chǔ)過程的改進(jìn)的性能管理方法,其沒有因?yàn)槭占鎯?chǔ)過程內(nèi)的額外性能數(shù)據(jù)而導(dǎo)致額外的性能負(fù)擔(dān)。
【發(fā)明內(nèi)容】
[0012]可通過根據(jù)獨(dú)立權(quán)利要求的用于監(jiān)視數(shù)據(jù)庫(kù)管理系統(tǒng)中的存儲(chǔ)過程的方法、存儲(chǔ)過程性能監(jiān)視系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、計(jì)算機(jī)系統(tǒng)、數(shù)據(jù)處理程序以及計(jì)算機(jī)程序產(chǎn)品滿足上述需求。
[0013]在一個(gè)實(shí)施例中,可提供一種用于監(jiān)視在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中執(zhí)行的存儲(chǔ)過程的方法。所述方法可包括針對(duì)所述存儲(chǔ)過程之一提供以下事件數(shù)據(jù)以及所述存儲(chǔ)過程的標(biāo)識(shí):指示所述存儲(chǔ)過程的執(zhí)行開始的第一時(shí)間;指示所述存儲(chǔ)過程的所述執(zhí)行結(jié)束的第二時(shí)間;被分配給作為所述存儲(chǔ)過程的一部分執(zhí)行的SQL語(yǔ)句的至少一個(gè)SQL語(yǔ)句標(biāo)識(shí)符;以及針對(duì)每個(gè)SQL語(yǔ)句標(biāo)識(shí)符,指示相關(guān)SQL語(yǔ)句作為所述存儲(chǔ)過程的一部分在所述第一時(shí)間與所述第二時(shí)間之間執(zhí)行的頻率的執(zhí)行次數(shù)計(jì)數(shù)器。此外,此方法可包括通過所述數(shù)據(jù)庫(kù)管理系統(tǒng)提供定期的數(shù)據(jù)庫(kù)監(jiān)視信息,尤其是全局快照數(shù)據(jù),其中所述定期的數(shù)據(jù)庫(kù)監(jiān)視信息包括可通過所述SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值。此外,此方法可包括將可通過所述SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值與指示相關(guān)SQL語(yǔ)句作為所述存儲(chǔ)過程的一部分在所述第一時(shí)間與所述第二時(shí)間之間執(zhí)行的頻率的執(zhí)行次數(shù)計(jì)數(shù)器相關(guān)聯(lián)。這可導(dǎo)致可通過所述存儲(chǔ)過程的所述標(biāo)識(shí)識(shí)別的所述存儲(chǔ)過程的監(jiān)視數(shù)據(jù)。
[0014]根據(jù)另一實(shí)施例,可提供一種用于監(jiān)視在數(shù)據(jù)庫(kù)管理系統(tǒng)尤其是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中執(zhí)行的存儲(chǔ)過程的系統(tǒng)。所述監(jiān)視系統(tǒng)包括第一提供單元,其適合于針對(duì)所述存儲(chǔ)過程之一提供以下事件數(shù)據(jù)以及所述存儲(chǔ)過程的標(biāo)識(shí):指示所述存儲(chǔ)過程的執(zhí)行開始的第一時(shí)間;指示所述存儲(chǔ)過程的所述執(zhí)行結(jié)束的第二時(shí)間;被分配給作為所述存儲(chǔ)過程的一部分執(zhí)行的SQL語(yǔ)句的至少一個(gè)SQL語(yǔ)句標(biāo)識(shí)符;以及針對(duì)每個(gè)SQL語(yǔ)句標(biāo)識(shí)符,指示相關(guān)SQL語(yǔ)句作為所述存儲(chǔ)過程的一部分在所述第一時(shí)間與所述第二時(shí)間之間執(zhí)行的執(zhí)行次數(shù)的計(jì)數(shù)器。該監(jiān)視系統(tǒng)可包括第二提供單元,其適合于通過所述數(shù)據(jù)庫(kù)管理系統(tǒng)提供定期的數(shù)據(jù)庫(kù)監(jiān)視信息,其中所述定期的數(shù)據(jù)庫(kù)監(jiān)視信息包括可通過所述SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值。此外,該監(jiān)視系統(tǒng)可包括相關(guān)聯(lián)單元,其適合于將可通過所述SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值與指示相關(guān)SQL語(yǔ)句作為所述存儲(chǔ)過程的一部分在所述第一時(shí)間與所述第二時(shí)間之間執(zhí)行的執(zhí)行次數(shù)的計(jì)數(shù)器相關(guān)聯(lián),從而導(dǎo)致可通過所述存儲(chǔ)過程的所述標(biāo)識(shí)識(shí)別的所述存儲(chǔ)過程的監(jiān)視數(shù)據(jù)。
[0015]需要注意,一般而言,定期的數(shù)據(jù)庫(kù)監(jiān)視信息,其稱為快照數(shù)據(jù)和/或事件數(shù)據(jù),可能涉及所有已在具有同一 SQL語(yǔ)句標(biāo)識(shí)符的存儲(chǔ)過程的內(nèi)部和外部執(zhí)行的語(yǔ)句。另需注意,術(shù)語(yǔ)“將值相關(guān)聯(lián)”尤其可以意味著構(gòu)建可用值的平均值。
[0016]具體說明
[0017]在本申請(qǐng)的上下文中,遵循以下約定:
[0018]數(shù)據(jù)庫(kù)管理系統(tǒng)一數(shù)據(jù)庫(kù)管理系統(tǒng)可表示任何適合于存儲(chǔ)和訪問數(shù)據(jù)的數(shù)據(jù)庫(kù)管理系統(tǒng)。它可以是其中以行和列組織數(shù)據(jù)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)、分層數(shù)據(jù)庫(kù)管理系統(tǒng)或網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理系統(tǒng)。
[0019]存儲(chǔ)過程——存儲(chǔ)過程可表示用戶編寫的可實(shí)現(xiàn)業(yè)務(wù)邏輯并且可被應(yīng)用程序使用例如“CALL”語(yǔ)句調(diào)用的程序。一般而言,存儲(chǔ)過程可作為數(shù)據(jù)庫(kù)管理系統(tǒng)或數(shù)據(jù)庫(kù)引擎的一部分被編譯和存儲(chǔ)。在通過使用模塊化改進(jìn)應(yīng)用開發(fā)之外,存儲(chǔ)過程還可具有提高應(yīng)用安全性的優(yōu)點(diǎn),因?yàn)閼?yīng)用邏輯可在數(shù)據(jù)庫(kù)服務(wù)器的控制下運(yùn)行,并且可以支持應(yīng)用集成解決方案。此外,它們可被用于強(qiáng)制執(zhí)行業(yè)務(wù)邏輯。換言之,術(shù)語(yǔ)“存儲(chǔ)過程”可表示可被訪問數(shù)據(jù)庫(kù)系統(tǒng)(尤其是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng))的軟件應(yīng)用使用的子例程。存儲(chǔ)過程實(shí)際可存儲(chǔ)在與數(shù)據(jù)庫(kù)管理系統(tǒng)相關(guān)的數(shù)據(jù)庫(kù)數(shù)據(jù)詞典中。存儲(chǔ)過程可用于加強(qiáng)和集中最初在軟件應(yīng)用中實(shí)現(xiàn)的應(yīng)用邏輯??蓪⑿枰獔?zhí)行多個(gè)SQL語(yǔ)句的廣泛或復(fù)雜處理移入存儲(chǔ)過程,并且所有軟件應(yīng)用可調(diào)用這些程序。人們可通過從一個(gè)存儲(chǔ)過程中執(zhí)行另一存儲(chǔ)過程來(lái)使用嵌套式存儲(chǔ)過程。
[0020]存儲(chǔ)過程標(biāo)識(shí)——特定數(shù)據(jù)庫(kù)管理系統(tǒng)中的特定存儲(chǔ)過程可以具有與特定存儲(chǔ)過程相關(guān)的唯一標(biāo)識(shí)符。與特定存儲(chǔ)過程相關(guān)的所有活動(dòng)因此可使用存儲(chǔ)過程標(biāo)識(shí)進(jìn)行跟蹤。該標(biāo)識(shí)符可以是唯一的編號(hào)。
[0021]第一時(shí)間一術(shù)語(yǔ)“第一時(shí)間”可表示具有特定時(shí)間戳的第一時(shí)間實(shí)例。第一時(shí)間可表示存儲(chǔ)過程的開始。每當(dāng)存儲(chǔ)過程可被調(diào)用時(shí),便可記錄第一時(shí)間以供將來(lái)分析。
[0022]第二時(shí)間一術(shù)語(yǔ)“第二時(shí)間”可表示具有另一特定時(shí)間戳的第二時(shí)間實(shí)例。第二時(shí)間可表示存儲(chǔ)過程的結(jié)束。每當(dāng)存儲(chǔ)過程可被終止時(shí),便可記錄第二時(shí)間以供將來(lái)分析。
[0023]定期的數(shù)據(jù)庫(kù)監(jiān)視信息——一般而言,數(shù)據(jù)庫(kù)管理系統(tǒng)定期存儲(chǔ)有關(guān)其內(nèi)部功能的統(tǒng)計(jì)數(shù)據(jù)。語(yǔ)句的執(zhí)行時(shí)間只是一個(gè)例子。其它數(shù)據(jù)可包括頁(yè)面缺失以及下面提及的很多其它統(tǒng)計(jì)數(shù)據(jù)。定期的數(shù)據(jù)庫(kù)監(jiān)視信息還可包括同步收集的快照數(shù)據(jù)和/或異步收集的事件數(shù)據(jù)。[0024]參數(shù)——術(shù)語(yǔ)“參數(shù)”可表示一個(gè)數(shù)據(jù)庫(kù)性能統(tǒng)計(jì)信息的特定度量。每個(gè)參數(shù)可包含特定的值。這些值可隨時(shí)間發(fā)生變化。
[0025]SQL語(yǔ)句一術(shù)語(yǔ)“SQL語(yǔ)句”可表示數(shù)據(jù)庫(kù)管理系統(tǒng)的語(yǔ)句。可將其理解為用于在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中管理數(shù)據(jù)的標(biāo)準(zhǔn)“結(jié)構(gòu)化查詢語(yǔ)言”語(yǔ)句?,F(xiàn)在已知有多種方言:SQL-86、SQL-89、SQL-92、SQL: 1999、SQL:2003 或 SQL: 2008。SQL 語(yǔ)言可以具有本領(lǐng)域的技術(shù)人員熟知的預(yù)定的語(yǔ)言構(gòu)建集。
[0026]SQL語(yǔ)句標(biāo)識(shí)符——特定數(shù)據(jù)庫(kù)管理系統(tǒng)中的特定SQL語(yǔ)句可以具有與特定SQL語(yǔ)句相關(guān)的唯一標(biāo)識(shí)符。與特定SQL語(yǔ)句相關(guān)的所有活動(dòng)因此可通過SQL語(yǔ)句的標(biāo)識(shí)跟蹤。該標(biāo)識(shí)符可以是唯一的編號(hào)。
[0027]上述用于監(jiān)視在數(shù)據(jù)庫(kù)管理系統(tǒng)中執(zhí)行的存儲(chǔ)過程的方法可提供若干優(yōu)點(diǎn)。
[0028]本發(fā)明的方法和監(jiān)視系統(tǒng)可允許與已知的技術(shù)相比更優(yōu)雅得多的存儲(chǔ)過程監(jiān)視,從而能實(shí)現(xiàn)更佳的數(shù)據(jù)庫(kù)管理系統(tǒng)性能調(diào)節(jié)??蓪?shí)現(xiàn)該目的,而沒有根據(jù)現(xiàn)有技術(shù)緊密監(jiān)視在存儲(chǔ)過程內(nèi)執(zhí)行的語(yǔ)句的負(fù)擔(dān)。每個(gè)執(zhí)行語(yǔ)句不必收集被稱為快照數(shù)據(jù)的、定期的數(shù)據(jù)庫(kù)監(jiān)視信息。而是,為了監(jiān)視存儲(chǔ)過程的“內(nèi)部操作”,可僅收集非常有限的數(shù)據(jù)量。不是去收集存儲(chǔ)過程內(nèi)每個(gè)執(zhí)行語(yǔ)句的全局快照數(shù)據(jù),而是可使用在數(shù)據(jù)庫(kù)管理系統(tǒng)中畢竟可用的信息(特定SQL語(yǔ)句的執(zhí)行時(shí)間)來(lái)監(jiān)視存儲(chǔ)過程。
[0029]在此方法的一個(gè)實(shí)施例中,此方法可以額外地包括使用至少一個(gè)參數(shù)的值計(jì)算至少一個(gè)參數(shù)的平均參數(shù)值。如上所述,這可允許監(jiān)視存儲(chǔ)過程,而無(wú)需收集作為存儲(chǔ)過程的一部分執(zhí)行的每個(gè)SQL語(yǔ)句的快照數(shù)據(jù)。所述參數(shù)之一可以是特定SQL語(yǔ)句的執(zhí)行時(shí)間。在抽象形式中,這樣的SQL語(yǔ)句可以是“READ ACCOUNT-BALANCE OF PERS0N_A”。存儲(chǔ)過程內(nèi)部迎外部的所有這些讀取語(yǔ)句可用于生成語(yǔ)句的平均執(zhí)行時(shí)間。語(yǔ)句可通過例如標(biāo)識(shí)符編號(hào)“129”來(lái)識(shí)別。需要注意,此類性能數(shù)據(jù)畢竟可針對(duì)每個(gè)SQL語(yǔ)句從DBMS收集。這樣,無(wú)需執(zhí)行額外的數(shù)據(jù)收集便可生成參數(shù)的平均值。
[0030]在此方法的另一實(shí)施例中,所述相關(guān)聯(lián)可對(duì)應(yīng)于用至少一個(gè)參數(shù)的平均參數(shù)值乘以標(biāo)識(shí)的SQL語(yǔ)句的執(zhí)行次數(shù),其中表示具有平均參數(shù)值的SQL語(yǔ)句的SQL語(yǔ)句標(biāo)識(shí)符等于與執(zhí)行次數(shù)相關(guān)的SQL語(yǔ)句標(biāo)識(shí)符。通過這樣做,在計(jì)算方面“便宜的”方法可用于測(cè)量存儲(chǔ)過程內(nèi)的性能。此乘法運(yùn)算可針對(duì)具有特定SQL語(yǔ)句標(biāo)識(shí)符(其作為存儲(chǔ)過程的一部分被執(zhí)行)的每個(gè)SQL語(yǔ)句類型、并且針對(duì)所有允許計(jì)算平均值的可用參數(shù)(B卩,例如不是字符串變量)而執(zhí)行。通過將存儲(chǔ)過程開始與結(jié)束之間的所有這些相乘數(shù)據(jù)求和,可提供非常好的詳細(xì)的存儲(chǔ)過程內(nèi)部操作性能數(shù)據(jù)。
[0031]在此方法的又一實(shí)施例中,定期的數(shù)據(jù)庫(kù)監(jiān)視信息可僅包括與已執(zhí)行SQL語(yǔ)句相關(guān)的參數(shù)值,所述已執(zhí)行SQL語(yǔ)句可通過已作為存儲(chǔ)過程的一部分執(zhí)行的那些SQL語(yǔ)句的SQL語(yǔ)句標(biāo)識(shí)符識(shí)別。該實(shí)施例可被稱為“精確方法”。可使用篩選的快照數(shù)據(jù),其中篩選過程僅提供存儲(chǔ)過程內(nèi)已執(zhí)行SQL語(yǔ)句的參數(shù)值。不會(huì)收集其它可代表大多數(shù)全局快照數(shù)據(jù)的參數(shù)。這樣,不會(huì)出現(xiàn)由用于存儲(chǔ)過程內(nèi)的性能管理操作的大型全局快照文件所產(chǎn)生的開銷。
[0032]在此方法的再一實(shí)施例中,已執(zhí)行SQL語(yǔ)句的每個(gè)參數(shù)為以下各項(xiàng)構(gòu)成的組中的至少一項(xiàng):執(zhí)行次數(shù)、已檢查的行數(shù)、已處理的行數(shù)、索引掃描數(shù)、表空間掃描數(shù)、緩沖寫入數(shù)、累積數(shù)據(jù)庫(kù)時(shí)間、累積處理器時(shí)間(CPU時(shí)間)、累積鎖定時(shí)間、以及用于同步I/O、或用于同步執(zhí)行單元切換、或用于全局鎖、或用于另一線程完成的讀取活動(dòng)、或用于另一線程完成的寫入活動(dòng)、或用于閂鎖(latch)、或用于頁(yè)閂鎖、或用于放棄鎖(drain lock)、或用于針對(duì)待釋放聲明(claim)的放棄鎖的累積等待時(shí)間、或者用于日志寫入器的累積等待時(shí)間。其它選項(xiàng)可包括獲取頁(yè)(getpages)數(shù)量、同步緩沖區(qū)讀取數(shù)量、數(shù)據(jù)庫(kù)排序操作數(shù)量、已創(chuàng)建的并列組數(shù)量、由于超過限制導(dǎo)致不使用記錄ID列表的次數(shù),或由于沒有足夠內(nèi)存保存列表導(dǎo)致不使用記錄ID列表的次數(shù)。
[0033]在此方法的又一實(shí)施例中,用于存儲(chǔ)定期的數(shù)據(jù)庫(kù)監(jiān)視信息的第一緩沖區(qū)和用于存儲(chǔ)事件數(shù)據(jù)的第二緩沖區(qū)相互獨(dú)立地進(jìn)行操作。這尤其意味著可使用兩個(gè)不同的緩沖區(qū)/存儲(chǔ)區(qū)域保存快照數(shù)據(jù)和事件數(shù)據(jù)。從實(shí)現(xiàn)的角度來(lái)看,這意味著與快照數(shù)據(jù)相關(guān)的數(shù)據(jù)庫(kù)邏輯可保持不變,而只是必須將事件數(shù)據(jù)收集添加到數(shù)據(jù)庫(kù)管理系統(tǒng)的內(nèi)部邏輯以執(zhí)行本發(fā)明的方法。
[0034]在此方法的又一實(shí)施例中,可使用組合的緩沖區(qū)存儲(chǔ)定期的數(shù)據(jù)庫(kù)監(jiān)視信息和事件數(shù)據(jù)。此實(shí)現(xiàn)可具有將快照數(shù)據(jù)和事件數(shù)據(jù)存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)管理緩沖區(qū)從而可加速對(duì)這些數(shù)據(jù)的訪問的優(yōu)點(diǎn)。
[0035]在此方法的另一優(yōu)選實(shí)施例中,此方法可額外地包括提供用于使監(jiān)視存儲(chǔ)過程的數(shù)據(jù)可用于運(yùn)行數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)庫(kù)服務(wù)器以外的系統(tǒng)的第一接口。具體而言,這可意味著用于生成性能管理數(shù)據(jù)的計(jì)算可在服務(wù)器上執(zhí)行,并且只有存儲(chǔ)過程性能數(shù)據(jù)的視覺化可在包括圖形用戶界面的客戶端系統(tǒng)上執(zhí)行。
[0036]在此方法的另一優(yōu)選實(shí)施例中,此方法可額外地包括用于使所述事件數(shù)據(jù)和所述定期的數(shù)據(jù)庫(kù)監(jiān)視信息可用于運(yùn)行所述數(shù)據(jù)庫(kù)管理系統(tǒng)的所述數(shù)據(jù)庫(kù)服務(wù)器以外的系統(tǒng)的第二接口。具體而言,這可意味著所有計(jì)算可以在與運(yùn)行數(shù)據(jù)庫(kù)管理系統(tǒng)的系統(tǒng)分離的客戶端系統(tǒng)上執(zhí)行。在這種情況下,有關(guān)存儲(chǔ)過程性能數(shù)據(jù)的所有計(jì)算可作為圖形用戶環(huán)境的一部分執(zhí)行。
[0037]此外,計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)可包括用于監(jiān)視在數(shù)據(jù)庫(kù)管理系統(tǒng)中執(zhí)行的存儲(chǔ)過程的監(jiān)視系統(tǒng)。該監(jiān)視系統(tǒng)還可作為數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)組件實(shí)現(xiàn),該數(shù)據(jù)庫(kù)系統(tǒng)可以是計(jì)算機(jī)系統(tǒng)的一部分。
[0038]應(yīng)該注意,實(shí)施例可以采取完全硬件實(shí)施例、完全軟件實(shí)施例或包含硬件和軟件元素兩者的實(shí)施例的形式。在優(yōu)選實(shí)施例中,本發(fā)明在軟件中實(shí)現(xiàn),所述軟件包括但不限于固件、駐留軟件和微代碼。
[0039]在另一實(shí)施例中,提供了用于在數(shù)據(jù)處理系統(tǒng)中執(zhí)行的數(shù)據(jù)處理程序,該數(shù)據(jù)處理程序包括當(dāng)該程序在數(shù)據(jù)處理系統(tǒng)上運(yùn)行時(shí),用于執(zhí)行上述方法的軟件代碼部分。該數(shù)據(jù)處理系統(tǒng)可以是計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)。
[0040]此外,實(shí)施例可以采取可從計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)訪問的計(jì)算機(jī)程序產(chǎn)品的形式,所述計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)提供了可以被計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用或與計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)結(jié)合的程序代碼。出于此描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是任何這樣的裝置,其包含用于存儲(chǔ)、傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與所述指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合使用的程序的裝置。
[0041]所述介質(zhì)可以是電、磁、光、電磁、紅外線或半導(dǎo)體系統(tǒng)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子可包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)軟盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤和光盤。光盤的當(dāng)前例子包括壓縮盤-只讀存儲(chǔ)器(CD-ROM)、壓縮盤-讀/寫(CR-R/W)、DVD和藍(lán)光光盤。
[0042]應(yīng)該注意,本發(fā)明的實(shí)施例已參考不同的主題進(jìn)行描述。具體而言,某些實(shí)施例已參考方法類型權(quán)利要求進(jìn)行描述,而其它實(shí)施例已參考裝置類型權(quán)利要求進(jìn)行描述。但是,本領(lǐng)域的技術(shù)人員可根據(jù)上面和下面的描述中理解,除非另有說明,否則除了屬于一種主題類型的特征的任何組合之外,與不同主題相關(guān)的特征之間——尤其是方法類型權(quán)利要求的特征與裝置類型權(quán)利要求的特征之間一的任何組合均被視為在本文獻(xiàn)中公開。
[0043]通過下文描述的實(shí)施例示例,上面定義的各方面以及本發(fā)明的進(jìn)一步方面將變得顯而易見,這些方面參考實(shí)施例示例進(jìn)行解釋,但是本發(fā)明并不限于這些實(shí)施例示例。
【專利附圖】
【附圖說明】
[0044]將參考下圖,僅借助實(shí)例描述本發(fā)明的優(yōu)選實(shí)施例:
[0045]圖1示出用于監(jiān)視存儲(chǔ)過程的方法的實(shí)施例的框圖。
[0046]圖2示出用于監(jiān)視存儲(chǔ)過程的方法的實(shí)施例所需的組件的框圖。
[0047]圖3示出“精確方法”實(shí)施例的流程圖的框圖。
[0048]圖4示出要在數(shù)據(jù)庫(kù)管理系統(tǒng)的后端系統(tǒng)中執(zhí)行的方法部分的實(shí)施例的流程圖的框圖。
[0049]圖5示出要在數(shù)據(jù)庫(kù)管理系統(tǒng)的處理端執(zhí)行的流程圖的框圖實(shí)例,該流程圖用于執(zhí)行用于監(jiān)視存儲(chǔ)過程的方法。
[0050]圖6示出用于監(jiān)視存儲(chǔ)過程的監(jiān)視系統(tǒng)的實(shí)施例的框圖。
[0051]圖7示出根據(jù)一個(gè)實(shí)施例包括監(jiān)視系統(tǒng)的計(jì)算機(jī)系統(tǒng)的框圖。
【具體實(shí)施方式】
[0052]在下文中,將給出附圖的詳細(xì)描述。各圖中的所有圖示均為示意性的。首先,將描述用于監(jiān)視存儲(chǔ)過程的方法的實(shí)施例的框圖。之后,將描述用于存儲(chǔ)過程的方法和監(jiān)視系統(tǒng)的實(shí)施例。
[0053]圖1示出用于監(jiān)視存儲(chǔ)過程的方法的實(shí)施例的框圖100。此方法可包括針對(duì)存儲(chǔ)過程之一提供102以下事件數(shù)據(jù)以及所述存儲(chǔ)過程的標(biāo)識(shí):指示存儲(chǔ)過程的執(zhí)行開始的第一時(shí)間;指示存儲(chǔ)過程的執(zhí)行結(jié)束的第二時(shí)間;被分配給作為存儲(chǔ)過程的一部分執(zhí)行的SQL語(yǔ)句的至少一個(gè)SQL語(yǔ)句標(biāo)識(shí)符;以及針對(duì)每個(gè)SQL語(yǔ)句標(biāo)識(shí)符,指示相關(guān)SQL語(yǔ)句作為存儲(chǔ)過程的一部分在第一時(shí)間與第二時(shí)間之間執(zhí)行的執(zhí)行次數(shù)的計(jì)數(shù)器。此外,此方法可包括由數(shù)據(jù)庫(kù)管理系統(tǒng)提供104定期的數(shù)據(jù)庫(kù)監(jiān)視信息,尤其是全局快照數(shù)據(jù),其中定期的數(shù)據(jù)庫(kù)監(jiān)視信息可以包括可通過SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值。應(yīng)該注意,具體而言,特定種類的所有語(yǔ)句(例如,可能已經(jīng)在存儲(chǔ)過程的內(nèi)部迎外部執(zhí)行的特定讀取語(yǔ)句)可通過唯一的SQL語(yǔ)句標(biāo)識(shí)符識(shí)別。
[0054]此外,此方法可包括將可通過SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)的值(特別是平均值)與作為存儲(chǔ)過程的一部分在第一時(shí)間與第二時(shí)間之間執(zhí)行的相關(guān)SQL語(yǔ)句的執(zhí)行次數(shù)的計(jì)數(shù)器相關(guān)聯(lián)106。這可導(dǎo)致可通過存儲(chǔ)過程的標(biāo)識(shí)識(shí)別的存儲(chǔ)過程的監(jiān)視數(shù)據(jù)。這意味著存儲(chǔ)過程的監(jiān)視數(shù)據(jù)可根據(jù)特定SQL語(yǔ)句的平均執(zhí)行時(shí)間信息推導(dǎo)出。[0055]圖2示出用于監(jiān)視存儲(chǔ)過程的方法的實(shí)施例所需的組件的框圖200。在數(shù)據(jù)庫(kù)管理系統(tǒng)202中,可執(zhí)行存儲(chǔ)數(shù)據(jù)208。存儲(chǔ)過程208可在存儲(chǔ)過程庫(kù)210中存儲(chǔ)和管理。數(shù)據(jù)庫(kù)管理監(jiān)視數(shù)據(jù)收集系統(tǒng)可由參考標(biāo)號(hào)204表示。用戶界面或系統(tǒng)206可用于將監(jiān)視結(jié)果提供給數(shù)據(jù)庫(kù)管理員。應(yīng)該注意,圖2被水平分為兩半。上半部分230可表示處理端,而圖2下半部分232可表示后端。后端更多地涉及數(shù)據(jù)的物理存儲(chǔ),而處理端可更多地涉及控制與監(jiān)視系統(tǒng)相關(guān)的信息流。數(shù)據(jù)庫(kù)管理數(shù)據(jù)收集系統(tǒng)204可從數(shù)據(jù)庫(kù)202請(qǐng)求218快照數(shù)據(jù)一即,定期的數(shù)據(jù)庫(kù)監(jiān)視信息。此類快照可被寫入212快照數(shù)據(jù)緩沖區(qū)214。數(shù)據(jù)流箭頭216可表示將快照數(shù)據(jù)從快照數(shù)據(jù)緩沖區(qū)214讀入數(shù)據(jù)庫(kù)管理監(jiān)視數(shù)據(jù)收集系統(tǒng)204。另一方面,數(shù)據(jù)庫(kù)管理監(jiān)視數(shù)據(jù)收集系統(tǒng)204可請(qǐng)求226上面指定的事件數(shù)據(jù)。這些事件數(shù)據(jù)可被寫入220事件數(shù)據(jù)緩沖區(qū)222。數(shù)據(jù)流箭頭224可表示將事件數(shù)據(jù)從數(shù)據(jù)緩沖區(qū)222讀入數(shù)據(jù)庫(kù)監(jiān)視數(shù)據(jù)收集系統(tǒng)204。
[0056]作為示例,來(lái)自快照數(shù)據(jù)緩沖區(qū)214的快照數(shù)據(jù)可以包括可通過特定SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的特定SQL語(yǔ)句的執(zhí)行時(shí)間。此類特定SQL語(yǔ)句可以是從數(shù)據(jù)庫(kù)讀取特定數(shù)據(jù),例如,特定日期之間賬戶內(nèi)的所有交易。另一方面,存儲(chǔ)在事件數(shù)據(jù)緩沖區(qū)222中的事件數(shù)據(jù)具體可包括存儲(chǔ)過程的開始時(shí)間、存儲(chǔ)過程的結(jié)束時(shí)間,以及用于計(jì)數(shù)作為存儲(chǔ)過程的一部分執(zhí)行的特定SQL語(yǔ)句的執(zhí)行次數(shù)的計(jì)數(shù)器。
[0057]數(shù)據(jù)庫(kù)管理監(jiān)視數(shù)據(jù)收集單元204還可將快照數(shù)據(jù)緩沖區(qū)的快照數(shù)據(jù)與來(lái)自事件數(shù)據(jù)緩沖區(qū)的事件數(shù)據(jù)進(jìn)行組合和/或相關(guān)聯(lián)以進(jìn)行所需的計(jì)算,具體是指執(zhí)行時(shí)間與次數(shù)相乘。結(jié)果可被發(fā)送228到用戶界面,具體是指可在其上將監(jiān)視數(shù)據(jù)提供給數(shù)據(jù)庫(kù)管理員的圖形用戶界面。
[0058]圖3可示出“精確方法”的實(shí)施例的流程圖的框圖。如果啟用了存儲(chǔ)過程監(jiān)視,則可以執(zhí)行根據(jù)流程圖300的以下指令。在302,可發(fā)起從數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)于存儲(chǔ)過程的“請(qǐng)求事件數(shù)據(jù)”。接下來(lái),在304,可讀取數(shù)據(jù)庫(kù)管理系統(tǒng)提供的事件數(shù)據(jù)。在306,可檢查用于該特定存儲(chǔ)過程的新事件是否可用。如果答案為“否”,則可在循環(huán)中重復(fù)此檢查。如果答案為“是”,則可以在308檢查可存在哪個(gè)事件。如果是“開始SP”調(diào)用(SP=存儲(chǔ)過程),則可以在310發(fā)出從數(shù)據(jù)庫(kù)管理系統(tǒng)請(qǐng)求篩選的“開始全局快照數(shù)據(jù)”。之后,執(zhí)行可返回到循環(huán)以檢測(cè)用于該存儲(chǔ)過程的新事件數(shù)據(jù)。如果事件可以是“結(jié)束SP”調(diào)用,則可在312發(fā)起從數(shù)據(jù)庫(kù)管理系統(tǒng)請(qǐng)求最終的篩選的全局快照數(shù)據(jù)。之后,在316,可讀取來(lái)自數(shù)據(jù)庫(kù)管理系統(tǒng)的有關(guān)所跟蹤的SQL語(yǔ)句的事件數(shù)據(jù)。最后,可在318處理用于特定存儲(chǔ)過程的事件數(shù)據(jù)和快照數(shù)據(jù)。處理種類已在上文進(jìn)行了描述。
[0059]如果在308檢測(cè)存在哪類事件期間,結(jié)果為需要跟蹤的SQL語(yǔ)句,則可以在314存儲(chǔ)跟蹤信息。之后,執(zhí)行返回到循環(huán)以檢測(cè)用于特定存儲(chǔ)過程的新事件數(shù)據(jù)是否可用。
[0060]與圖3的“精確方法”相比,圖4和5涉及“低成本方法”。圖4可能涉及可在后端(圖2,232)執(zhí)行的步驟400。如果打開存儲(chǔ)過程監(jiān)視,則可以在402連續(xù)收集數(shù)據(jù)庫(kù)管理系統(tǒng)提供的事件數(shù)據(jù)。之后,可以在404檢測(cè)可能存在哪類事件。如果它是“開始調(diào)用”存儲(chǔ)過程,則可在406處理“開始存儲(chǔ)過程數(shù)據(jù)”。之后,執(zhí)行可以返回到步驟402。如果檢測(cè)404產(chǎn)生結(jié)束SP調(diào)用可存在的事實(shí),則可以在412檢測(cè)結(jié)束SP調(diào)用是否來(lái)自“頂部”存儲(chǔ)過程。如果在存儲(chǔ)過程內(nèi)調(diào)用其它存儲(chǔ)過程可被視為“正常的” SQL語(yǔ)句,則所討論的方法還適用于嵌套式存儲(chǔ)過程。這也應(yīng)該是一實(shí)施例中的情況。然后,另外還需要SP標(biāo)識(shí)符,而非SQL語(yǔ)句標(biāo)識(shí)符。在步驟412之后,可在414處理和存儲(chǔ)用于存儲(chǔ)過程的事件數(shù)據(jù)。如果在步驟404,結(jié)果為必須跟蹤SQL語(yǔ)句,則可執(zhí)行步驟410。在此,所跟蹤的存儲(chǔ)過程數(shù)據(jù)可被處理,具體而言,可計(jì)數(shù)SQL語(yǔ)句的執(zhí)行頻率。在步驟410之后,可以繼續(xù)從頭執(zhí)行步驟 402。
[0061]圖5可以是圖4的流程圖500的延續(xù),該圖示出將在數(shù)據(jù)庫(kù)管理系統(tǒng)的處理端執(zhí)行的流程圖的框圖,該流程圖用于執(zhí)行用于監(jiān)視存儲(chǔ)過程的方法。圖5所示的執(zhí)行步驟可涉及處理端(圖2,230)。首先,可在502檢查是否可顯示存儲(chǔ)過程監(jiān)視數(shù)據(jù)。如果答案為“是”,則可以在步驟504請(qǐng)求全局快照數(shù)據(jù)。此外,在506,可獲取用于特定存儲(chǔ)過程的存儲(chǔ)的事件數(shù)據(jù)。此外,在步驟508,可使用所跟蹤的SQL語(yǔ)句統(tǒng)計(jì)數(shù)據(jù)將所獲取的事件數(shù)據(jù)與全局快照數(shù)據(jù)相關(guān)聯(lián)。相關(guān)聯(lián)的種類已在上面進(jìn)行說明。之后,在步驟510,可在用戶界面中顯示用于該特定存儲(chǔ)過程的監(jiān)視數(shù)據(jù)。然后,可在步驟512檢測(cè)是否可分析另一存儲(chǔ)過程。如果答案為“是”,則可繼續(xù)執(zhí)行步驟506以獲取用于該另一存儲(chǔ)過程的存儲(chǔ)的事件數(shù)據(jù)。如果沒有要分析的下一個(gè)存儲(chǔ)過程,則可以在步驟514結(jié)束這些步驟的執(zhí)行。
[0062]圖6可以示出用于監(jiān)視存儲(chǔ)過程的監(jiān)視系統(tǒng)的實(shí)施例的框圖。監(jiān)視系統(tǒng)600可以包括第一監(jiān)視單元602,其適合于為存儲(chǔ)過程之一提供以下事件數(shù)據(jù)以及存儲(chǔ)過程的標(biāo)識(shí):指示存儲(chǔ)過程的執(zhí)行開始的第一時(shí)間;指示存儲(chǔ)過程的執(zhí)行結(jié)束的第二時(shí)間;被分配給作為存儲(chǔ)過程的一部分執(zhí)行的SQL語(yǔ)句的至少一個(gè)SQL語(yǔ)句標(biāo)識(shí)符;以及針對(duì)每個(gè)SQL語(yǔ)句標(biāo)識(shí)符,指示相關(guān)SQL語(yǔ)句作為存儲(chǔ)過程的一部分在第一時(shí)間與第二時(shí)間之間執(zhí)行的執(zhí)行次數(shù)的計(jì)數(shù)器。
[0063]此外,監(jiān)視系統(tǒng)600可包括第二提供單元604,其適合于通過數(shù)據(jù)庫(kù)管理系統(tǒng)提供定期的數(shù)據(jù)庫(kù)監(jiān)視信息,具體是指快照數(shù)據(jù)。這樣,定期的數(shù)據(jù)庫(kù)監(jiān)視信息120可包括通過SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值。
[0064]此外,監(jiān)視系統(tǒng)600可包括相關(guān)聯(lián)單元606,其適合于將可通過SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值與作為存儲(chǔ)過程的一部分在第一時(shí)間與第二時(shí)間之間執(zhí)行的相關(guān)SQL語(yǔ)句的執(zhí)行次數(shù)的計(jì)數(shù)器相關(guān)聯(lián)。這可導(dǎo)致監(jiān)視可通過存儲(chǔ)過程的標(biāo)識(shí)識(shí)別的存儲(chǔ)過程的數(shù)據(jù)。
[0065]本發(fā)明的實(shí)施例實(shí)際上可在任何類型的計(jì)算機(jī)上實(shí)現(xiàn),而不考慮所使用的適合于存儲(chǔ)和/或執(zhí)行程序代碼的平臺(tái)。例如,如圖7所示,計(jì)算機(jī)系統(tǒng)700可包括一個(gè)或多個(gè)處理器702,其中每個(gè)處理器帶有一個(gè)或多個(gè)核,另外還包括關(guān)聯(lián)的存儲(chǔ)元件704、內(nèi)置存儲(chǔ)設(shè)備706 (例如,硬盤、諸如壓縮盤驅(qū)動(dòng)器或數(shù)字視頻盤(DVD)驅(qū)動(dòng)器的光盤、閃存記憶棒等)、多種當(dāng)今的計(jì)算機(jī)典型具有的其它元件和功能(未示出)。存儲(chǔ)元件704可包括主存儲(chǔ)器,例如在程序代碼的實(shí)際執(zhí)行期間采用的隨機(jī)存取存儲(chǔ)器(RAM)、以及提供至少某些程序代碼的臨時(shí)存儲(chǔ)以減少必須從長(zhǎng)期存儲(chǔ)介質(zhì)或外置大容量存儲(chǔ)裝置716檢索用于執(zhí)行的代碼和/或數(shù)據(jù)的次數(shù)的高速緩沖存儲(chǔ)器。計(jì)算機(jī)700的內(nèi)部元件可通過具有相應(yīng)適配器的總線系統(tǒng)718鏈接在一起。此外,包括監(jiān)視系統(tǒng)600 (另請(qǐng)參閱圖6,600)數(shù)據(jù)庫(kù)管理系統(tǒng)720可與系統(tǒng)總線718相連。數(shù)據(jù)庫(kù)管理系統(tǒng)還可直接聯(lián)接到一個(gè)或多個(gè)硬盤706,如圖7的雙箭頭所示。
[0066]計(jì)算機(jī)系統(tǒng)700還可包括輸入裝置,例如鍵盤708、鼠標(biāo)710或麥克風(fēng)(未示出)。此外,計(jì)算機(jī)700可包括輸出裝置,例如監(jiān)視器712(例如,液晶顯示器(LCD)、等離子體顯示器、發(fā)光二極管顯示器(LED)或陰極射線管(CRT)監(jiān)視器)。計(jì)算機(jī)系統(tǒng)700可通過網(wǎng)絡(luò)接口連接714連接到網(wǎng)絡(luò),例如,局域網(wǎng)(LAN)、廣域網(wǎng)(WAN),例如因特網(wǎng)或包括無(wú)線網(wǎng)絡(luò)的其它任何類似的網(wǎng)絡(luò)類型。這可允許耦接到其它計(jì)算機(jī)系統(tǒng)或存儲(chǔ)網(wǎng)絡(luò)或磁帶驅(qū)動(dòng)器。本領(lǐng)域的技術(shù)人員將理解,存在許多不同類型的計(jì)算機(jī)系統(tǒng),并且上述輸入和輸出裝置可采取其它形式。一般而言,計(jì)算機(jī)系統(tǒng)700至少可包括實(shí)現(xiàn)本發(fā)明的實(shí)施例所需的最少的處理、輸入和/或輸出裝置。
[0067]進(jìn)一步地,本領(lǐng)域的技術(shù)人員將理解,上述計(jì)算機(jī)系統(tǒng)700的一個(gè)或多個(gè)元件可位于遠(yuǎn)端位置并通過網(wǎng)絡(luò)連接到其它元件。進(jìn)一步地,本發(fā)明的實(shí)施例可在具有多個(gè)節(jié)點(diǎn)的分布式系統(tǒng)上實(shí)現(xiàn),其中本發(fā)明的每個(gè)部分可位于分布式系統(tǒng)內(nèi)的不同節(jié)點(diǎn)上。在本發(fā)明的一個(gè)實(shí)施例中,節(jié)點(diǎn)對(duì)應(yīng)于計(jì)算機(jī)系統(tǒng)。備選地,節(jié)點(diǎn)可對(duì)應(yīng)于具有關(guān)聯(lián)物理存儲(chǔ)器的處理器。節(jié)點(diǎn)還可備選地對(duì)應(yīng)于具有共享存儲(chǔ)器和/或資源的處理器或智能手機(jī)。
[0068]進(jìn)一步地,執(zhí)行本發(fā)明的實(shí)施例的軟件指令可存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,所述計(jì)算機(jī)可讀介質(zhì)例如光盤(CD)、軟盤、磁帶或其它任何計(jì)算機(jī)可讀存儲(chǔ)器件。[0069]盡管參考有限數(shù)量的實(shí)施例描述了本發(fā)明,但是從本公開受益的本領(lǐng)域的技術(shù)人員將理解,可構(gòu)想不偏離此處公開的發(fā)明范圍的其它實(shí)施例。因此,本發(fā)明的范圍應(yīng)該僅被所附權(quán)利要求限制。
[0070]還應(yīng)該注意,術(shù)語(yǔ)“包括”并不排除其它元件或步驟,并且“一”或“一個(gè)”不排除多個(gè)。另一方面,術(shù)語(yǔ)“包括”還可包括“由…構(gòu)成”的情況。另外,結(jié)合不同實(shí)施例描述的元件可被組合起來(lái)。另外應(yīng)該注意,權(quán)利要求中的參考標(biāo)號(hào)不應(yīng)被視為限定元件。
【權(quán)利要求】
1.用于監(jiān)視在數(shù)據(jù)庫(kù)管理系統(tǒng)中執(zhí)行的存儲(chǔ)過程的方法(100),所述方法包括: -針對(duì)所述存儲(chǔ)過程之一提供(102)以下事件數(shù)據(jù)以及所述存儲(chǔ)過程的標(biāo)識(shí): -指示所述存儲(chǔ)過程的執(zhí)行開始的第一時(shí)間, -指示所述存儲(chǔ)過程的所述執(zhí)行結(jié)束的第二時(shí)間, -被分配給作為所述存儲(chǔ)過程的一部分執(zhí)行的SQL語(yǔ)句的至少一個(gè)SQL語(yǔ)句標(biāo)識(shí)符,以及 -針對(duì)每個(gè)SQL語(yǔ)句標(biāo)識(shí)符,指示相關(guān)SQL語(yǔ)句作為所述存儲(chǔ)過程的一部分在所述第一時(shí)間與所述第二時(shí)間之間執(zhí)行的執(zhí)行次數(shù)的計(jì)數(shù)器, -通過所述數(shù)據(jù)庫(kù)管理系統(tǒng)提供(104)定期的數(shù)據(jù)庫(kù)監(jiān)視信息,其中所述定期的數(shù)據(jù)庫(kù)監(jiān)視信息包括可通過所述SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值, -將可通過所述SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值與作為所述存儲(chǔ)過程的一部分在所述第一時(shí)間與所述第二時(shí)間之間執(zhí)行的所述相關(guān)SQL語(yǔ)句的所述執(zhí)行次數(shù)的所述計(jì)數(shù)器相關(guān)聯(lián)(106),從而導(dǎo)致可通過所述存儲(chǔ)過程的所述標(biāo)識(shí)識(shí)別的所述存儲(chǔ)過程的監(jiān)視數(shù)據(jù)。
2.根據(jù)權(quán)利要求1的方法,所述方法還包括使用至少一個(gè)參數(shù)的值計(jì)算所述至少一個(gè)參數(shù)的平均參數(shù)值。
3.根據(jù)權(quán)利要求2的方法,其中相關(guān)聯(lián)(106)對(duì)應(yīng)于將所述至少一個(gè)參數(shù)的所述平均參數(shù)值乘以所述已識(shí)別SQL語(yǔ)句的執(zhí)行次數(shù),其中表示具有所述平均參數(shù)值的所述SQL語(yǔ)句的SQL語(yǔ)句標(biāo)識(shí)符等于與所述執(zhí)行次數(shù)相關(guān)的SQL語(yǔ)句標(biāo)識(shí)符。
4.根據(jù)權(quán)利要求1的方法,其中所述定期的數(shù)據(jù)庫(kù)監(jiān)視信息僅包括與可通過已作為所述存儲(chǔ)過程的一部分執(zhí)行的那些SQL語(yǔ)句的SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句相關(guān)的參數(shù)值。
5.根據(jù)上述任一權(quán)利要求的方法,其中已執(zhí)行SQL語(yǔ)句的每個(gè)所述參數(shù)為由執(zhí)行次數(shù)、已檢查的行數(shù)、已處理的行數(shù)、索引掃描數(shù)、表空間掃描數(shù)、緩沖寫入數(shù)、累積數(shù)據(jù)庫(kù)時(shí)間、累積處理器時(shí)間、累積鎖定時(shí)間以及累積等待時(shí)間構(gòu)成的組中的至少一個(gè)。
6.根據(jù)上述任一權(quán)利要求的方法,其中用于存儲(chǔ)所述定期的數(shù)據(jù)庫(kù)監(jiān)視信息的第一緩沖區(qū)(214)和用于存儲(chǔ)所述事件數(shù)據(jù)的第二緩沖區(qū)(222)相互獨(dú)立地被操作。
7.根據(jù)權(quán)利要求1至4中任一權(quán)利要求的方法,其中使用組合的緩沖區(qū)來(lái)存儲(chǔ)所述定期的數(shù)據(jù)庫(kù)監(jiān)視信息和所述事件數(shù)據(jù)。
8.根據(jù)上述任一權(quán)利要求的方法,所述方法還包括提供用于使所述存儲(chǔ)過程的所述監(jiān)視數(shù)據(jù)對(duì)于運(yùn)行所述數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)庫(kù)服務(wù)器以外的系統(tǒng)(206)可用的第一接口。
9.根據(jù)上述任一權(quán)利要求的方法,還提供用于使所述事件數(shù)據(jù)和所述定期的數(shù)據(jù)庫(kù)監(jiān)視信息對(duì)于運(yùn)行所述數(shù)據(jù)庫(kù)管理系統(tǒng)的所述數(shù)據(jù)庫(kù)服務(wù)器以外的系統(tǒng)可用的第二接口。
10.用于監(jiān)視在數(shù)據(jù)庫(kù)管理系統(tǒng)(202、720)中執(zhí)行的存儲(chǔ)過程的系統(tǒng)(600),所述監(jiān)視系統(tǒng)包括: -第一提供單元(602),其適合于針對(duì)所述存儲(chǔ)過程之一提供以下事件數(shù)據(jù)以及所述存儲(chǔ)過程的標(biāo)識(shí): -指示所述存儲(chǔ)過程的執(zhí)行開始的第一時(shí)間, -指示所述存儲(chǔ)過程的所述執(zhí)行結(jié)束的第二時(shí)間,-被分配給作為所述存儲(chǔ)過程的一部分執(zhí)行的SQL語(yǔ)句的至少一個(gè)SQL語(yǔ)句標(biāo)識(shí)符,以及 -針對(duì)每個(gè)SQL語(yǔ)句標(biāo)識(shí)符,指示相關(guān)SQL語(yǔ)句作為所述存儲(chǔ)過程的一部分在所述第一時(shí)間與所述第二時(shí)間之間執(zhí)行的執(zhí)行次數(shù)的計(jì)數(shù)器, -第二提供單元(604),其適合于通過所述數(shù)據(jù)庫(kù)管理系統(tǒng)提供定期的數(shù)據(jù)庫(kù)監(jiān)視信息,其中所述定期的數(shù)據(jù)庫(kù)監(jiān)視信息包括可通過所述SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值, -相關(guān)聯(lián)單元(606),其適合于將可通過所述SQL語(yǔ)句標(biāo)識(shí)符識(shí)別的已執(zhí)行SQL語(yǔ)句的參數(shù)值與作為所述存儲(chǔ)過程的一部分在所述第一時(shí)間與所述第二時(shí)間之間執(zhí)行的所述相關(guān)SQL語(yǔ)句的所述執(zhí)行次數(shù)的所述計(jì)數(shù)器相關(guān)聯(lián),從而導(dǎo)致可通過所述存儲(chǔ)過程的所述標(biāo)識(shí)識(shí)別所述存儲(chǔ)過程的監(jiān)視數(shù)據(jù)。
11.一種數(shù)據(jù)庫(kù)系統(tǒng)(202、720),其中包括根據(jù)權(quán)利要求10的所述監(jiān)視系統(tǒng)(600)。
12.—種計(jì)算機(jī)系統(tǒng)(700),包括根據(jù)權(quán)利要求10的監(jiān)視系統(tǒng)(600)。
13.一種用于在數(shù)據(jù)處理系統(tǒng)(700)中執(zhí)行的數(shù)據(jù)處理程序,其包括當(dāng)所述程序在數(shù)據(jù)處理系統(tǒng)(700)上運(yùn)行時(shí),用于執(zhí)行根據(jù)上述權(quán)利要求1至9中任一項(xiàng)的方法(100)的軟件代碼部分。
14.一種存儲(chǔ)在計(jì)算機(jī)可用介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,其包括當(dāng)所述程序在計(jì)算機(jī)(700)上運(yùn)行時(shí),使所述計(jì)算機(jī)(700)執(zhí)行根據(jù)權(quán)利要求1至9中任一項(xiàng)的方法(100)的計(jì)算機(jī)可讀程序裝置。
【文檔編號(hào)】G06F12/00GK103842973SQ201280048469
【公開日】2014年6月4日 申請(qǐng)日期:2012年9月27日 優(yōu)先權(quán)日:2011年10月5日
【發(fā)明者】M·查弗勒, M·E·魏勞赫, J·B·托布勒, S·阿倫斯沃德, M·賴克特, A·利默 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司