午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

監(jiān)視存儲過程的執(zhí)行的制作方法

文檔序號:6496714閱讀:234來源:國知局
監(jiān)視存儲過程的執(zhí)行的制作方法
【專利摘要】提供了一種用于監(jiān)視在數(shù)據(jù)庫管理系統(tǒng)中執(zhí)行的存儲過程的方法。所述方法可以包括-針對所述存儲過程之一提供以下事件數(shù)據(jù)以及所述存儲過程的標識:指示所述存儲過程的執(zhí)行開始的第一時間;指示所述存儲過程的所述執(zhí)行結束的第二時間;被分配給作為所述存儲過程的一部分執(zhí)行的SQL語句的至少一個SQL語句標識符;以及針對每個SQL語句標識符,指示相關SQL語句作為所述存儲過程的一部分在所述第一時間與所述第二時間之間執(zhí)行的執(zhí)行次數(shù)的計數(shù)器。此外,所述方法可以包括通過所述數(shù)據(jù)庫管理系統(tǒng)提供定期的數(shù)據(jù)庫監(jiān)視信息,包括可通過所述SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值。此外,可將所述值與所述執(zhí)行次數(shù)相關聯(lián)。
【專利說明】監(jiān)視存儲過程的執(zhí)行
【技術領域】
[0001]本發(fā)明一般地涉及用于監(jiān)視在數(shù)據(jù)庫管理系統(tǒng)(DBMS)中執(zhí)行的存儲過程的方法,以及涉及存儲過程性能監(jiān)視系統(tǒng)。
[0002]本發(fā)明進一步地涉及數(shù)據(jù)庫系統(tǒng)、計算機系統(tǒng)、數(shù)據(jù)處理程序,以及計算機程序產品O
【背景技術】
[0003]今天,數(shù)據(jù)庫系統(tǒng),尤其是關系數(shù)據(jù)庫系統(tǒng)所存儲和處理的數(shù)據(jù)量以加速度增長。由于數(shù)據(jù)量不斷增長,訪問數(shù)據(jù)庫中存儲的數(shù)據(jù)所需的時間也在持續(xù)增加。這給數(shù)據(jù)庫管理員帶來巨大壓力,迫使其優(yōu)化數(shù)據(jù)庫系統(tǒng)的功能和性能。
[0004]現(xiàn)在,許多數(shù)據(jù)庫管理系統(tǒng)均配備有相關的優(yōu)化和監(jiān)視工具。數(shù)據(jù)庫管理系統(tǒng)的目的是組織數(shù)據(jù)并允許快速、便捷地訪問檢索已存儲的數(shù)據(jù)。存在各種類型的數(shù)據(jù)庫管理系統(tǒng),例如關系數(shù)據(jù)庫管理系統(tǒng)、分層數(shù)據(jù)庫管理系統(tǒng)以及網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng)。典型的數(shù)據(jù)庫訪問語句可以包括讀取、寫入、更新和刪除語句。
[0005]但是,監(jiān)視和跟蹤數(shù)據(jù)庫的內部功能需要額外的計算能力,這可能對數(shù)據(jù)庫管理系統(tǒng)的整體性能產生負面影響。眾所周知的用于測量數(shù)據(jù)庫管理系統(tǒng)性能的技術涉及快照數(shù)據(jù)??煺諗?shù)據(jù)傳遞有關數(shù)據(jù)庫內部功能的連續(xù)信息。例如,存儲數(shù)據(jù)的時間、查找和讀取數(shù)據(jù)所需的時間和/或刪除數(shù)據(jù)的時間被連續(xù)測量。一般而言,快照數(shù)據(jù)記錄代表了有關數(shù)據(jù)庫管理系統(tǒng)的內部功能和實際狀態(tài)的大量數(shù)據(jù)。其它數(shù)據(jù)與數(shù)據(jù)庫中的事件相關,例如,有關已開始和已完成的SQL語句或具有相似性質的其它事件的通知器。警告也可以與特定事件相關。
[0006]另一方面,存儲過程變得非常流行,以便從應用程序卸載邏輯操作。同時,這樣的應用邏輯現(xiàn)在可在存儲過程中作為數(shù)據(jù)庫(遠為更接近數(shù)據(jù))的一部分執(zhí)行。通常,在存儲過程中執(zhí)行循環(huán)。一般而言,只有完整的存儲過程的執(zhí)行時間可作為全局快照和事件數(shù)據(jù)被測量。為了優(yōu)化數(shù)據(jù)庫的功能和性能,可能需要具有有關存儲過程內的SQL語句執(zhí)行的遠為更細粒度的信息。另一方面,這種密切監(jiān)視相當于持續(xù)測量數(shù)據(jù)庫的性能數(shù)據(jù)的額外開銷。
[0007]查詢語言通常用于訪問數(shù)據(jù)和數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫應用程序可使用查詢語言編寫以訪問數(shù)據(jù)庫中存儲的數(shù)據(jù)。例如,結構化查詢語言(SQL)是一種非常有名的查詢語言。數(shù)據(jù)庫應用程序可結合使用SQL以及C0B0L、PL/1、JAVA和C之類的其它語言進行編寫以訪問數(shù)據(jù)庫中存儲的數(shù)據(jù)。
[0008]可使用被稱為“存儲過程”(SP)的模塊訪問一個或多個數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)。存儲過程可以是程序或腳本文件,并且在物理上存儲在數(shù)據(jù)庫管理系統(tǒng)中,一般存儲在可在其上訪問存儲過程的數(shù)據(jù)庫管理系統(tǒng)中。數(shù)據(jù)庫應用程序可調用(invoke或call)—個或多個存儲過程。存儲過程一般可包括一個或多個數(shù)據(jù)訪問語句(SQL語句),或對其它存儲過程的調用以發(fā)出數(shù)據(jù)請求,以便獲取一個或多個數(shù)據(jù)庫中的數(shù)據(jù)(嵌套式存儲過程)。例如,存儲過程可包括一個或多個SQL語句以從數(shù)據(jù)庫管理系統(tǒng)檢索數(shù)據(jù)。存儲過程可與多個數(shù)據(jù)庫應用程序共享。文獻US2007/0282837A1公開了一種有關分布式環(huán)境中存儲過程的性能測量的方法。此方法公開了對執(zhí)行一個或多個存儲過程的一個或多個組件的識別。存儲過程分別具有存儲過程標識符。從數(shù)據(jù)庫管理系統(tǒng)收集與至少一個或多個存儲過程關聯(lián)的數(shù)據(jù)庫數(shù)據(jù)。此文獻進一步公開了特定數(shù)據(jù)基于存儲過程標識符中的特定一個,在與存儲過程標識符中的特定一個關聯(lián)的至少一個執(zhí)行開始時間、在至少一個執(zhí)行結束時間,以及在至少一樣本時間中相關聯(lián)。
[0009]另一文獻US7809694B2公開了分析來自關系數(shù)據(jù)庫的性能數(shù)據(jù)以發(fā)現(xiàn)性能較差的SQL語句,包括創(chuàng)建在關系數(shù)據(jù)庫管理系統(tǒng)中執(zhí)行的查詢語句的性能數(shù)據(jù)事件記錄以及壓縮(condense)事件記錄中的性能數(shù)據(jù)??舍槍γ總€壓縮的事件記錄生成性能摘要。性能摘要然后可基于性能特征進行分析以識別完全執(zhí)行的(purely performing) SQL語句。
[0010]目前對存儲過程的監(jiān)視支持可能涉及兩個主要問題領域。首先,對于多數(shù)數(shù)據(jù)庫管理員,從監(jiān)視角度而言,存儲過程可能是“黑匣子”。管理員無法獲知存儲過程“內部”正在發(fā)生的事情。其次,現(xiàn)在為了獲取一定的細節(jié)級別,數(shù)據(jù)庫管理員可能需要采用“非常昂貴”的跟蹤(tracing),其具有巨大的CPU開銷。作為進一步的步驟,可能需要手動匹配所收集的例如有關在存儲過程中執(zhí)行的語句的細節(jié)信息。此過程的成本也會非常高,并且耗時、易于出錯。此外,事件和快照數(shù)據(jù)收集可能沒有考慮到在存儲過程的應用邏輯中花費的時間。
[0011]這樣,可能需要一種用于數(shù)據(jù)庫管理系統(tǒng)中的存儲過程的改進的性能管理方法,其沒有因為收集存儲過程內的額外性能數(shù)據(jù)而導致額外的性能負擔。

【發(fā)明內容】

[0012]可通過根據(jù)獨立權利要求的用于監(jiān)視數(shù)據(jù)庫管理系統(tǒng)中的存儲過程的方法、存儲過程性能監(jiān)視系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、計算機系統(tǒng)、數(shù)據(jù)處理程序以及計算機程序產品滿足上述需求。
[0013]在一個實施例中,可提供一種用于監(jiān)視在關系數(shù)據(jù)庫管理系統(tǒng)中執(zhí)行的存儲過程的方法。所述方法可包括針對所述存儲過程之一提供以下事件數(shù)據(jù)以及所述存儲過程的標識:指示所述存儲過程的執(zhí)行開始的第一時間;指示所述存儲過程的所述執(zhí)行結束的第二時間;被分配給作為所述存儲過程的一部分執(zhí)行的SQL語句的至少一個SQL語句標識符;以及針對每個SQL語句標識符,指示相關SQL語句作為所述存儲過程的一部分在所述第一時間與所述第二時間之間執(zhí)行的頻率的執(zhí)行次數(shù)計數(shù)器。此外,此方法可包括通過所述數(shù)據(jù)庫管理系統(tǒng)提供定期的數(shù)據(jù)庫監(jiān)視信息,尤其是全局快照數(shù)據(jù),其中所述定期的數(shù)據(jù)庫監(jiān)視信息包括可通過所述SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值。此外,此方法可包括將可通過所述SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值與指示相關SQL語句作為所述存儲過程的一部分在所述第一時間與所述第二時間之間執(zhí)行的頻率的執(zhí)行次數(shù)計數(shù)器相關聯(lián)。這可導致可通過所述存儲過程的所述標識識別的所述存儲過程的監(jiān)視數(shù)據(jù)。
[0014]根據(jù)另一實施例,可提供一種用于監(jiān)視在數(shù)據(jù)庫管理系統(tǒng)尤其是關系數(shù)據(jù)庫管理系統(tǒng)中執(zhí)行的存儲過程的系統(tǒng)。所述監(jiān)視系統(tǒng)包括第一提供單元,其適合于針對所述存儲過程之一提供以下事件數(shù)據(jù)以及所述存儲過程的標識:指示所述存儲過程的執(zhí)行開始的第一時間;指示所述存儲過程的所述執(zhí)行結束的第二時間;被分配給作為所述存儲過程的一部分執(zhí)行的SQL語句的至少一個SQL語句標識符;以及針對每個SQL語句標識符,指示相關SQL語句作為所述存儲過程的一部分在所述第一時間與所述第二時間之間執(zhí)行的執(zhí)行次數(shù)的計數(shù)器。該監(jiān)視系統(tǒng)可包括第二提供單元,其適合于通過所述數(shù)據(jù)庫管理系統(tǒng)提供定期的數(shù)據(jù)庫監(jiān)視信息,其中所述定期的數(shù)據(jù)庫監(jiān)視信息包括可通過所述SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值。此外,該監(jiān)視系統(tǒng)可包括相關聯(lián)單元,其適合于將可通過所述SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值與指示相關SQL語句作為所述存儲過程的一部分在所述第一時間與所述第二時間之間執(zhí)行的執(zhí)行次數(shù)的計數(shù)器相關聯(lián),從而導致可通過所述存儲過程的所述標識識別的所述存儲過程的監(jiān)視數(shù)據(jù)。
[0015]需要注意,一般而言,定期的數(shù)據(jù)庫監(jiān)視信息,其稱為快照數(shù)據(jù)和/或事件數(shù)據(jù),可能涉及所有已在具有同一 SQL語句標識符的存儲過程的內部和外部執(zhí)行的語句。另需注意,術語“將值相關聯(lián)”尤其可以意味著構建可用值的平均值。
[0016]具體說明
[0017]在本申請的上下文中,遵循以下約定:
[0018]數(shù)據(jù)庫管理系統(tǒng)一數(shù)據(jù)庫管理系統(tǒng)可表示任何適合于存儲和訪問數(shù)據(jù)的數(shù)據(jù)庫管理系統(tǒng)。它可以是其中以行和列組織數(shù)據(jù)的關系數(shù)據(jù)庫管理系統(tǒng)、分層數(shù)據(jù)庫管理系統(tǒng)或網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng)。
[0019]存儲過程——存儲過程可表示用戶編寫的可實現(xiàn)業(yè)務邏輯并且可被應用程序使用例如“CALL”語句調用的程序。一般而言,存儲過程可作為數(shù)據(jù)庫管理系統(tǒng)或數(shù)據(jù)庫引擎的一部分被編譯和存儲。在通過使用模塊化改進應用開發(fā)之外,存儲過程還可具有提高應用安全性的優(yōu)點,因為應用邏輯可在數(shù)據(jù)庫服務器的控制下運行,并且可以支持應用集成解決方案。此外,它們可被用于強制執(zhí)行業(yè)務邏輯。換言之,術語“存儲過程”可表示可被訪問數(shù)據(jù)庫系統(tǒng)(尤其是關系數(shù)據(jù)庫系統(tǒng))的軟件應用使用的子例程。存儲過程實際可存儲在與數(shù)據(jù)庫管理系統(tǒng)相關的數(shù)據(jù)庫數(shù)據(jù)詞典中。存儲過程可用于加強和集中最初在軟件應用中實現(xiàn)的應用邏輯。可將需要執(zhí)行多個SQL語句的廣泛或復雜處理移入存儲過程,并且所有軟件應用可調用這些程序。人們可通過從一個存儲過程中執(zhí)行另一存儲過程來使用嵌套式存儲過程。
[0020]存儲過程標識——特定數(shù)據(jù)庫管理系統(tǒng)中的特定存儲過程可以具有與特定存儲過程相關的唯一標識符。與特定存儲過程相關的所有活動因此可使用存儲過程標識進行跟蹤。該標識符可以是唯一的編號。
[0021]第一時間一術語“第一時間”可表示具有特定時間戳的第一時間實例。第一時間可表示存儲過程的開始。每當存儲過程可被調用時,便可記錄第一時間以供將來分析。
[0022]第二時間一術語“第二時間”可表示具有另一特定時間戳的第二時間實例。第二時間可表示存儲過程的結束。每當存儲過程可被終止時,便可記錄第二時間以供將來分析。
[0023]定期的數(shù)據(jù)庫監(jiān)視信息——一般而言,數(shù)據(jù)庫管理系統(tǒng)定期存儲有關其內部功能的統(tǒng)計數(shù)據(jù)。語句的執(zhí)行時間只是一個例子。其它數(shù)據(jù)可包括頁面缺失以及下面提及的很多其它統(tǒng)計數(shù)據(jù)。定期的數(shù)據(jù)庫監(jiān)視信息還可包括同步收集的快照數(shù)據(jù)和/或異步收集的事件數(shù)據(jù)。[0024]參數(shù)——術語“參數(shù)”可表示一個數(shù)據(jù)庫性能統(tǒng)計信息的特定度量。每個參數(shù)可包含特定的值。這些值可隨時間發(fā)生變化。
[0025]SQL語句一術語“SQL語句”可表示數(shù)據(jù)庫管理系統(tǒng)的語句??蓪⑵淅斫鉃橛糜谠陉P系數(shù)據(jù)庫管理系統(tǒng)中管理數(shù)據(jù)的標準“結構化查詢語言”語句。現(xiàn)在已知有多種方言:SQL-86、SQL-89、SQL-92、SQL: 1999、SQL:2003 或 SQL: 2008。SQL 語言可以具有本領域的技術人員熟知的預定的語言構建集。
[0026]SQL語句標識符——特定數(shù)據(jù)庫管理系統(tǒng)中的特定SQL語句可以具有與特定SQL語句相關的唯一標識符。與特定SQL語句相關的所有活動因此可通過SQL語句的標識跟蹤。該標識符可以是唯一的編號。
[0027]上述用于監(jiān)視在數(shù)據(jù)庫管理系統(tǒng)中執(zhí)行的存儲過程的方法可提供若干優(yōu)點。
[0028]本發(fā)明的方法和監(jiān)視系統(tǒng)可允許與已知的技術相比更優(yōu)雅得多的存儲過程監(jiān)視,從而能實現(xiàn)更佳的數(shù)據(jù)庫管理系統(tǒng)性能調節(jié)??蓪崿F(xiàn)該目的,而沒有根據(jù)現(xiàn)有技術緊密監(jiān)視在存儲過程內執(zhí)行的語句的負擔。每個執(zhí)行語句不必收集被稱為快照數(shù)據(jù)的、定期的數(shù)據(jù)庫監(jiān)視信息。而是,為了監(jiān)視存儲過程的“內部操作”,可僅收集非常有限的數(shù)據(jù)量。不是去收集存儲過程內每個執(zhí)行語句的全局快照數(shù)據(jù),而是可使用在數(shù)據(jù)庫管理系統(tǒng)中畢竟可用的信息(特定SQL語句的執(zhí)行時間)來監(jiān)視存儲過程。
[0029]在此方法的一個實施例中,此方法可以額外地包括使用至少一個參數(shù)的值計算至少一個參數(shù)的平均參數(shù)值。如上所述,這可允許監(jiān)視存儲過程,而無需收集作為存儲過程的一部分執(zhí)行的每個SQL語句的快照數(shù)據(jù)。所述參數(shù)之一可以是特定SQL語句的執(zhí)行時間。在抽象形式中,這樣的SQL語句可以是“READ ACCOUNT-BALANCE OF PERS0N_A”。存儲過程內部迎外部的所有這些讀取語句可用于生成語句的平均執(zhí)行時間。語句可通過例如標識符編號“129”來識別。需要注意,此類性能數(shù)據(jù)畢竟可針對每個SQL語句從DBMS收集。這樣,無需執(zhí)行額外的數(shù)據(jù)收集便可生成參數(shù)的平均值。
[0030]在此方法的另一實施例中,所述相關聯(lián)可對應于用至少一個參數(shù)的平均參數(shù)值乘以標識的SQL語句的執(zhí)行次數(shù),其中表示具有平均參數(shù)值的SQL語句的SQL語句標識符等于與執(zhí)行次數(shù)相關的SQL語句標識符。通過這樣做,在計算方面“便宜的”方法可用于測量存儲過程內的性能。此乘法運算可針對具有特定SQL語句標識符(其作為存儲過程的一部分被執(zhí)行)的每個SQL語句類型、并且針對所有允許計算平均值的可用參數(shù)(B卩,例如不是字符串變量)而執(zhí)行。通過將存儲過程開始與結束之間的所有這些相乘數(shù)據(jù)求和,可提供非常好的詳細的存儲過程內部操作性能數(shù)據(jù)。
[0031]在此方法的又一實施例中,定期的數(shù)據(jù)庫監(jiān)視信息可僅包括與已執(zhí)行SQL語句相關的參數(shù)值,所述已執(zhí)行SQL語句可通過已作為存儲過程的一部分執(zhí)行的那些SQL語句的SQL語句標識符識別。該實施例可被稱為“精確方法”??墒褂煤Y選的快照數(shù)據(jù),其中篩選過程僅提供存儲過程內已執(zhí)行SQL語句的參數(shù)值。不會收集其它可代表大多數(shù)全局快照數(shù)據(jù)的參數(shù)。這樣,不會出現(xiàn)由用于存儲過程內的性能管理操作的大型全局快照文件所產生的開銷。
[0032]在此方法的再一實施例中,已執(zhí)行SQL語句的每個參數(shù)為以下各項構成的組中的至少一項:執(zhí)行次數(shù)、已檢查的行數(shù)、已處理的行數(shù)、索引掃描數(shù)、表空間掃描數(shù)、緩沖寫入數(shù)、累積數(shù)據(jù)庫時間、累積處理器時間(CPU時間)、累積鎖定時間、以及用于同步I/O、或用于同步執(zhí)行單元切換、或用于全局鎖、或用于另一線程完成的讀取活動、或用于另一線程完成的寫入活動、或用于閂鎖(latch)、或用于頁閂鎖、或用于放棄鎖(drain lock)、或用于針對待釋放聲明(claim)的放棄鎖的累積等待時間、或者用于日志寫入器的累積等待時間。其它選項可包括獲取頁(getpages)數(shù)量、同步緩沖區(qū)讀取數(shù)量、數(shù)據(jù)庫排序操作數(shù)量、已創(chuàng)建的并列組數(shù)量、由于超過限制導致不使用記錄ID列表的次數(shù),或由于沒有足夠內存保存列表導致不使用記錄ID列表的次數(shù)。
[0033]在此方法的又一實施例中,用于存儲定期的數(shù)據(jù)庫監(jiān)視信息的第一緩沖區(qū)和用于存儲事件數(shù)據(jù)的第二緩沖區(qū)相互獨立地進行操作。這尤其意味著可使用兩個不同的緩沖區(qū)/存儲區(qū)域保存快照數(shù)據(jù)和事件數(shù)據(jù)。從實現(xiàn)的角度來看,這意味著與快照數(shù)據(jù)相關的數(shù)據(jù)庫邏輯可保持不變,而只是必須將事件數(shù)據(jù)收集添加到數(shù)據(jù)庫管理系統(tǒng)的內部邏輯以執(zhí)行本發(fā)明的方法。
[0034]在此方法的又一實施例中,可使用組合的緩沖區(qū)存儲定期的數(shù)據(jù)庫監(jiān)視信息和事件數(shù)據(jù)。此實現(xiàn)可具有將快照數(shù)據(jù)和事件數(shù)據(jù)存儲在一個數(shù)據(jù)庫管理緩沖區(qū)從而可加速對這些數(shù)據(jù)的訪問的優(yōu)點。
[0035]在此方法的另一優(yōu)選實施例中,此方法可額外地包括提供用于使監(jiān)視存儲過程的數(shù)據(jù)可用于運行數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫服務器以外的系統(tǒng)的第一接口。具體而言,這可意味著用于生成性能管理數(shù)據(jù)的計算可在服務器上執(zhí)行,并且只有存儲過程性能數(shù)據(jù)的視覺化可在包括圖形用戶界面的客戶端系統(tǒng)上執(zhí)行。
[0036]在此方法的另一優(yōu)選實施例中,此方法可額外地包括用于使所述事件數(shù)據(jù)和所述定期的數(shù)據(jù)庫監(jiān)視信息可用于運行所述數(shù)據(jù)庫管理系統(tǒng)的所述數(shù)據(jù)庫服務器以外的系統(tǒng)的第二接口。具體而言,這可意味著所有計算可以在與運行數(shù)據(jù)庫管理系統(tǒng)的系統(tǒng)分離的客戶端系統(tǒng)上執(zhí)行。在這種情況下,有關存儲過程性能數(shù)據(jù)的所有計算可作為圖形用戶環(huán)境的一部分執(zhí)行。
[0037]此外,計算機或計算機系統(tǒng)可包括用于監(jiān)視在數(shù)據(jù)庫管理系統(tǒng)中執(zhí)行的存儲過程的監(jiān)視系統(tǒng)。該監(jiān)視系統(tǒng)還可作為數(shù)據(jù)庫系統(tǒng)的一個組件實現(xiàn),該數(shù)據(jù)庫系統(tǒng)可以是計算機系統(tǒng)的一部分。
[0038]應該注意,實施例可以采取完全硬件實施例、完全軟件實施例或包含硬件和軟件元素兩者的實施例的形式。在優(yōu)選實施例中,本發(fā)明在軟件中實現(xiàn),所述軟件包括但不限于固件、駐留軟件和微代碼。
[0039]在另一實施例中,提供了用于在數(shù)據(jù)處理系統(tǒng)中執(zhí)行的數(shù)據(jù)處理程序,該數(shù)據(jù)處理程序包括當該程序在數(shù)據(jù)處理系統(tǒng)上運行時,用于執(zhí)行上述方法的軟件代碼部分。該數(shù)據(jù)處理系統(tǒng)可以是計算機或計算機系統(tǒng)。
[0040]此外,實施例可以采取可從計算機可用或計算機可讀介質訪問的計算機程序產品的形式,所述計算機可用或計算機可讀介質提供了可以被計算機或任何指令執(zhí)行系統(tǒng)使用或與計算機或任何指令執(zhí)行系統(tǒng)結合的程序代碼。出于此描述的目的,計算機可用或計算機可讀介質可以是任何這樣的裝置,其包含用于存儲、傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設備使用或與所述指令執(zhí)行系統(tǒng)、裝置或設備結合使用的程序的裝置。
[0041]所述介質可以是電、磁、光、電磁、紅外線或半導體系統(tǒng)或傳播介質。計算機可讀介質的例子可包括半導體或固態(tài)存儲器、磁帶、可移動計算機軟盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、硬磁盤和光盤。光盤的當前例子包括壓縮盤-只讀存儲器(CD-ROM)、壓縮盤-讀/寫(CR-R/W)、DVD和藍光光盤。
[0042]應該注意,本發(fā)明的實施例已參考不同的主題進行描述。具體而言,某些實施例已參考方法類型權利要求進行描述,而其它實施例已參考裝置類型權利要求進行描述。但是,本領域的技術人員可根據(jù)上面和下面的描述中理解,除非另有說明,否則除了屬于一種主題類型的特征的任何組合之外,與不同主題相關的特征之間——尤其是方法類型權利要求的特征與裝置類型權利要求的特征之間一的任何組合均被視為在本文獻中公開。
[0043]通過下文描述的實施例示例,上面定義的各方面以及本發(fā)明的進一步方面將變得顯而易見,這些方面參考實施例示例進行解釋,但是本發(fā)明并不限于這些實施例示例。
【專利附圖】

【附圖說明】
[0044]將參考下圖,僅借助實例描述本發(fā)明的優(yōu)選實施例:
[0045]圖1示出用于監(jiān)視存儲過程的方法的實施例的框圖。
[0046]圖2示出用于監(jiān)視存儲過程的方法的實施例所需的組件的框圖。
[0047]圖3示出“精確方法”實施例的流程圖的框圖。
[0048]圖4示出要在數(shù)據(jù)庫管理系統(tǒng)的后端系統(tǒng)中執(zhí)行的方法部分的實施例的流程圖的框圖。
[0049]圖5示出要在數(shù)據(jù)庫管理系統(tǒng)的處理端執(zhí)行的流程圖的框圖實例,該流程圖用于執(zhí)行用于監(jiān)視存儲過程的方法。
[0050]圖6示出用于監(jiān)視存儲過程的監(jiān)視系統(tǒng)的實施例的框圖。
[0051]圖7示出根據(jù)一個實施例包括監(jiān)視系統(tǒng)的計算機系統(tǒng)的框圖。
【具體實施方式】
[0052]在下文中,將給出附圖的詳細描述。各圖中的所有圖示均為示意性的。首先,將描述用于監(jiān)視存儲過程的方法的實施例的框圖。之后,將描述用于存儲過程的方法和監(jiān)視系統(tǒng)的實施例。
[0053]圖1示出用于監(jiān)視存儲過程的方法的實施例的框圖100。此方法可包括針對存儲過程之一提供102以下事件數(shù)據(jù)以及所述存儲過程的標識:指示存儲過程的執(zhí)行開始的第一時間;指示存儲過程的執(zhí)行結束的第二時間;被分配給作為存儲過程的一部分執(zhí)行的SQL語句的至少一個SQL語句標識符;以及針對每個SQL語句標識符,指示相關SQL語句作為存儲過程的一部分在第一時間與第二時間之間執(zhí)行的執(zhí)行次數(shù)的計數(shù)器。此外,此方法可包括由數(shù)據(jù)庫管理系統(tǒng)提供104定期的數(shù)據(jù)庫監(jiān)視信息,尤其是全局快照數(shù)據(jù),其中定期的數(shù)據(jù)庫監(jiān)視信息可以包括可通過SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值。應該注意,具體而言,特定種類的所有語句(例如,可能已經在存儲過程的內部迎外部執(zhí)行的特定讀取語句)可通過唯一的SQL語句標識符識別。
[0054]此外,此方法可包括將可通過SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)的值(特別是平均值)與作為存儲過程的一部分在第一時間與第二時間之間執(zhí)行的相關SQL語句的執(zhí)行次數(shù)的計數(shù)器相關聯(lián)106。這可導致可通過存儲過程的標識識別的存儲過程的監(jiān)視數(shù)據(jù)。這意味著存儲過程的監(jiān)視數(shù)據(jù)可根據(jù)特定SQL語句的平均執(zhí)行時間信息推導出。[0055]圖2示出用于監(jiān)視存儲過程的方法的實施例所需的組件的框圖200。在數(shù)據(jù)庫管理系統(tǒng)202中,可執(zhí)行存儲數(shù)據(jù)208。存儲過程208可在存儲過程庫210中存儲和管理。數(shù)據(jù)庫管理監(jiān)視數(shù)據(jù)收集系統(tǒng)可由參考標號204表示。用戶界面或系統(tǒng)206可用于將監(jiān)視結果提供給數(shù)據(jù)庫管理員。應該注意,圖2被水平分為兩半。上半部分230可表示處理端,而圖2下半部分232可表示后端。后端更多地涉及數(shù)據(jù)的物理存儲,而處理端可更多地涉及控制與監(jiān)視系統(tǒng)相關的信息流。數(shù)據(jù)庫管理數(shù)據(jù)收集系統(tǒng)204可從數(shù)據(jù)庫202請求218快照數(shù)據(jù)一即,定期的數(shù)據(jù)庫監(jiān)視信息。此類快照可被寫入212快照數(shù)據(jù)緩沖區(qū)214。數(shù)據(jù)流箭頭216可表示將快照數(shù)據(jù)從快照數(shù)據(jù)緩沖區(qū)214讀入數(shù)據(jù)庫管理監(jiān)視數(shù)據(jù)收集系統(tǒng)204。另一方面,數(shù)據(jù)庫管理監(jiān)視數(shù)據(jù)收集系統(tǒng)204可請求226上面指定的事件數(shù)據(jù)。這些事件數(shù)據(jù)可被寫入220事件數(shù)據(jù)緩沖區(qū)222。數(shù)據(jù)流箭頭224可表示將事件數(shù)據(jù)從數(shù)據(jù)緩沖區(qū)222讀入數(shù)據(jù)庫監(jiān)視數(shù)據(jù)收集系統(tǒng)204。
[0056]作為示例,來自快照數(shù)據(jù)緩沖區(qū)214的快照數(shù)據(jù)可以包括可通過特定SQL語句標識符識別的特定SQL語句的執(zhí)行時間。此類特定SQL語句可以是從數(shù)據(jù)庫讀取特定數(shù)據(jù),例如,特定日期之間賬戶內的所有交易。另一方面,存儲在事件數(shù)據(jù)緩沖區(qū)222中的事件數(shù)據(jù)具體可包括存儲過程的開始時間、存儲過程的結束時間,以及用于計數(shù)作為存儲過程的一部分執(zhí)行的特定SQL語句的執(zhí)行次數(shù)的計數(shù)器。
[0057]數(shù)據(jù)庫管理監(jiān)視數(shù)據(jù)收集單元204還可將快照數(shù)據(jù)緩沖區(qū)的快照數(shù)據(jù)與來自事件數(shù)據(jù)緩沖區(qū)的事件數(shù)據(jù)進行組合和/或相關聯(lián)以進行所需的計算,具體是指執(zhí)行時間與次數(shù)相乘。結果可被發(fā)送228到用戶界面,具體是指可在其上將監(jiān)視數(shù)據(jù)提供給數(shù)據(jù)庫管理員的圖形用戶界面。
[0058]圖3可示出“精確方法”的實施例的流程圖的框圖。如果啟用了存儲過程監(jiān)視,則可以執(zhí)行根據(jù)流程圖300的以下指令。在302,可發(fā)起從數(shù)據(jù)庫管理系統(tǒng)對于存儲過程的“請求事件數(shù)據(jù)”。接下來,在304,可讀取數(shù)據(jù)庫管理系統(tǒng)提供的事件數(shù)據(jù)。在306,可檢查用于該特定存儲過程的新事件是否可用。如果答案為“否”,則可在循環(huán)中重復此檢查。如果答案為“是”,則可以在308檢查可存在哪個事件。如果是“開始SP”調用(SP=存儲過程),則可以在310發(fā)出從數(shù)據(jù)庫管理系統(tǒng)請求篩選的“開始全局快照數(shù)據(jù)”。之后,執(zhí)行可返回到循環(huán)以檢測用于該存儲過程的新事件數(shù)據(jù)。如果事件可以是“結束SP”調用,則可在312發(fā)起從數(shù)據(jù)庫管理系統(tǒng)請求最終的篩選的全局快照數(shù)據(jù)。之后,在316,可讀取來自數(shù)據(jù)庫管理系統(tǒng)的有關所跟蹤的SQL語句的事件數(shù)據(jù)。最后,可在318處理用于特定存儲過程的事件數(shù)據(jù)和快照數(shù)據(jù)。處理種類已在上文進行了描述。
[0059]如果在308檢測存在哪類事件期間,結果為需要跟蹤的SQL語句,則可以在314存儲跟蹤信息。之后,執(zhí)行返回到循環(huán)以檢測用于特定存儲過程的新事件數(shù)據(jù)是否可用。
[0060]與圖3的“精確方法”相比,圖4和5涉及“低成本方法”。圖4可能涉及可在后端(圖2,232)執(zhí)行的步驟400。如果打開存儲過程監(jiān)視,則可以在402連續(xù)收集數(shù)據(jù)庫管理系統(tǒng)提供的事件數(shù)據(jù)。之后,可以在404檢測可能存在哪類事件。如果它是“開始調用”存儲過程,則可在406處理“開始存儲過程數(shù)據(jù)”。之后,執(zhí)行可以返回到步驟402。如果檢測404產生結束SP調用可存在的事實,則可以在412檢測結束SP調用是否來自“頂部”存儲過程。如果在存儲過程內調用其它存儲過程可被視為“正常的” SQL語句,則所討論的方法還適用于嵌套式存儲過程。這也應該是一實施例中的情況。然后,另外還需要SP標識符,而非SQL語句標識符。在步驟412之后,可在414處理和存儲用于存儲過程的事件數(shù)據(jù)。如果在步驟404,結果為必須跟蹤SQL語句,則可執(zhí)行步驟410。在此,所跟蹤的存儲過程數(shù)據(jù)可被處理,具體而言,可計數(shù)SQL語句的執(zhí)行頻率。在步驟410之后,可以繼續(xù)從頭執(zhí)行步驟 402。
[0061]圖5可以是圖4的流程圖500的延續(xù),該圖示出將在數(shù)據(jù)庫管理系統(tǒng)的處理端執(zhí)行的流程圖的框圖,該流程圖用于執(zhí)行用于監(jiān)視存儲過程的方法。圖5所示的執(zhí)行步驟可涉及處理端(圖2,230)。首先,可在502檢查是否可顯示存儲過程監(jiān)視數(shù)據(jù)。如果答案為“是”,則可以在步驟504請求全局快照數(shù)據(jù)。此外,在506,可獲取用于特定存儲過程的存儲的事件數(shù)據(jù)。此外,在步驟508,可使用所跟蹤的SQL語句統(tǒng)計數(shù)據(jù)將所獲取的事件數(shù)據(jù)與全局快照數(shù)據(jù)相關聯(lián)。相關聯(lián)的種類已在上面進行說明。之后,在步驟510,可在用戶界面中顯示用于該特定存儲過程的監(jiān)視數(shù)據(jù)。然后,可在步驟512檢測是否可分析另一存儲過程。如果答案為“是”,則可繼續(xù)執(zhí)行步驟506以獲取用于該另一存儲過程的存儲的事件數(shù)據(jù)。如果沒有要分析的下一個存儲過程,則可以在步驟514結束這些步驟的執(zhí)行。
[0062]圖6可以示出用于監(jiān)視存儲過程的監(jiān)視系統(tǒng)的實施例的框圖。監(jiān)視系統(tǒng)600可以包括第一監(jiān)視單元602,其適合于為存儲過程之一提供以下事件數(shù)據(jù)以及存儲過程的標識:指示存儲過程的執(zhí)行開始的第一時間;指示存儲過程的執(zhí)行結束的第二時間;被分配給作為存儲過程的一部分執(zhí)行的SQL語句的至少一個SQL語句標識符;以及針對每個SQL語句標識符,指示相關SQL語句作為存儲過程的一部分在第一時間與第二時間之間執(zhí)行的執(zhí)行次數(shù)的計數(shù)器。
[0063]此外,監(jiān)視系統(tǒng)600可包括第二提供單元604,其適合于通過數(shù)據(jù)庫管理系統(tǒng)提供定期的數(shù)據(jù)庫監(jiān)視信息,具體是指快照數(shù)據(jù)。這樣,定期的數(shù)據(jù)庫監(jiān)視信息120可包括通過SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值。
[0064]此外,監(jiān)視系統(tǒng)600可包括相關聯(lián)單元606,其適合于將可通過SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值與作為存儲過程的一部分在第一時間與第二時間之間執(zhí)行的相關SQL語句的執(zhí)行次數(shù)的計數(shù)器相關聯(lián)。這可導致監(jiān)視可通過存儲過程的標識識別的存儲過程的數(shù)據(jù)。
[0065]本發(fā)明的實施例實際上可在任何類型的計算機上實現(xiàn),而不考慮所使用的適合于存儲和/或執(zhí)行程序代碼的平臺。例如,如圖7所示,計算機系統(tǒng)700可包括一個或多個處理器702,其中每個處理器帶有一個或多個核,另外還包括關聯(lián)的存儲元件704、內置存儲設備706 (例如,硬盤、諸如壓縮盤驅動器或數(shù)字視頻盤(DVD)驅動器的光盤、閃存記憶棒等)、多種當今的計算機典型具有的其它元件和功能(未示出)。存儲元件704可包括主存儲器,例如在程序代碼的實際執(zhí)行期間采用的隨機存取存儲器(RAM)、以及提供至少某些程序代碼的臨時存儲以減少必須從長期存儲介質或外置大容量存儲裝置716檢索用于執(zhí)行的代碼和/或數(shù)據(jù)的次數(shù)的高速緩沖存儲器。計算機700的內部元件可通過具有相應適配器的總線系統(tǒng)718鏈接在一起。此外,包括監(jiān)視系統(tǒng)600 (另請參閱圖6,600)數(shù)據(jù)庫管理系統(tǒng)720可與系統(tǒng)總線718相連。數(shù)據(jù)庫管理系統(tǒng)還可直接聯(lián)接到一個或多個硬盤706,如圖7的雙箭頭所示。
[0066]計算機系統(tǒng)700還可包括輸入裝置,例如鍵盤708、鼠標710或麥克風(未示出)。此外,計算機700可包括輸出裝置,例如監(jiān)視器712(例如,液晶顯示器(LCD)、等離子體顯示器、發(fā)光二極管顯示器(LED)或陰極射線管(CRT)監(jiān)視器)。計算機系統(tǒng)700可通過網(wǎng)絡接口連接714連接到網(wǎng)絡,例如,局域網(wǎng)(LAN)、廣域網(wǎng)(WAN),例如因特網(wǎng)或包括無線網(wǎng)絡的其它任何類似的網(wǎng)絡類型。這可允許耦接到其它計算機系統(tǒng)或存儲網(wǎng)絡或磁帶驅動器。本領域的技術人員將理解,存在許多不同類型的計算機系統(tǒng),并且上述輸入和輸出裝置可采取其它形式。一般而言,計算機系統(tǒng)700至少可包括實現(xiàn)本發(fā)明的實施例所需的最少的處理、輸入和/或輸出裝置。
[0067]進一步地,本領域的技術人員將理解,上述計算機系統(tǒng)700的一個或多個元件可位于遠端位置并通過網(wǎng)絡連接到其它元件。進一步地,本發(fā)明的實施例可在具有多個節(jié)點的分布式系統(tǒng)上實現(xiàn),其中本發(fā)明的每個部分可位于分布式系統(tǒng)內的不同節(jié)點上。在本發(fā)明的一個實施例中,節(jié)點對應于計算機系統(tǒng)。備選地,節(jié)點可對應于具有關聯(lián)物理存儲器的處理器。節(jié)點還可備選地對應于具有共享存儲器和/或資源的處理器或智能手機。
[0068]進一步地,執(zhí)行本發(fā)明的實施例的軟件指令可存儲在計算機可讀介質上,所述計算機可讀介質例如光盤(CD)、軟盤、磁帶或其它任何計算機可讀存儲器件。[0069]盡管參考有限數(shù)量的實施例描述了本發(fā)明,但是從本公開受益的本領域的技術人員將理解,可構想不偏離此處公開的發(fā)明范圍的其它實施例。因此,本發(fā)明的范圍應該僅被所附權利要求限制。
[0070]還應該注意,術語“包括”并不排除其它元件或步驟,并且“一”或“一個”不排除多個。另一方面,術語“包括”還可包括“由…構成”的情況。另外,結合不同實施例描述的元件可被組合起來。另外應該注意,權利要求中的參考標號不應被視為限定元件。
【權利要求】
1.用于監(jiān)視在數(shù)據(jù)庫管理系統(tǒng)中執(zhí)行的存儲過程的方法(100),所述方法包括: -針對所述存儲過程之一提供(102)以下事件數(shù)據(jù)以及所述存儲過程的標識: -指示所述存儲過程的執(zhí)行開始的第一時間, -指示所述存儲過程的所述執(zhí)行結束的第二時間, -被分配給作為所述存儲過程的一部分執(zhí)行的SQL語句的至少一個SQL語句標識符,以及 -針對每個SQL語句標識符,指示相關SQL語句作為所述存儲過程的一部分在所述第一時間與所述第二時間之間執(zhí)行的執(zhí)行次數(shù)的計數(shù)器, -通過所述數(shù)據(jù)庫管理系統(tǒng)提供(104)定期的數(shù)據(jù)庫監(jiān)視信息,其中所述定期的數(shù)據(jù)庫監(jiān)視信息包括可通過所述SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值, -將可通過所述SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值與作為所述存儲過程的一部分在所述第一時間與所述第二時間之間執(zhí)行的所述相關SQL語句的所述執(zhí)行次數(shù)的所述計數(shù)器相關聯(lián)(106),從而導致可通過所述存儲過程的所述標識識別的所述存儲過程的監(jiān)視數(shù)據(jù)。
2.根據(jù)權利要求1的方法,所述方法還包括使用至少一個參數(shù)的值計算所述至少一個參數(shù)的平均參數(shù)值。
3.根據(jù)權利要求2的方法,其中相關聯(lián)(106)對應于將所述至少一個參數(shù)的所述平均參數(shù)值乘以所述已識別SQL語句的執(zhí)行次數(shù),其中表示具有所述平均參數(shù)值的所述SQL語句的SQL語句標識符等于與所述執(zhí)行次數(shù)相關的SQL語句標識符。
4.根據(jù)權利要求1的方法,其中所述定期的數(shù)據(jù)庫監(jiān)視信息僅包括與可通過已作為所述存儲過程的一部分執(zhí)行的那些SQL語句的SQL語句標識符識別的已執(zhí)行SQL語句相關的參數(shù)值。
5.根據(jù)上述任一權利要求的方法,其中已執(zhí)行SQL語句的每個所述參數(shù)為由執(zhí)行次數(shù)、已檢查的行數(shù)、已處理的行數(shù)、索引掃描數(shù)、表空間掃描數(shù)、緩沖寫入數(shù)、累積數(shù)據(jù)庫時間、累積處理器時間、累積鎖定時間以及累積等待時間構成的組中的至少一個。
6.根據(jù)上述任一權利要求的方法,其中用于存儲所述定期的數(shù)據(jù)庫監(jiān)視信息的第一緩沖區(qū)(214)和用于存儲所述事件數(shù)據(jù)的第二緩沖區(qū)(222)相互獨立地被操作。
7.根據(jù)權利要求1至4中任一權利要求的方法,其中使用組合的緩沖區(qū)來存儲所述定期的數(shù)據(jù)庫監(jiān)視信息和所述事件數(shù)據(jù)。
8.根據(jù)上述任一權利要求的方法,所述方法還包括提供用于使所述存儲過程的所述監(jiān)視數(shù)據(jù)對于運行所述數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫服務器以外的系統(tǒng)(206)可用的第一接口。
9.根據(jù)上述任一權利要求的方法,還提供用于使所述事件數(shù)據(jù)和所述定期的數(shù)據(jù)庫監(jiān)視信息對于運行所述數(shù)據(jù)庫管理系統(tǒng)的所述數(shù)據(jù)庫服務器以外的系統(tǒng)可用的第二接口。
10.用于監(jiān)視在數(shù)據(jù)庫管理系統(tǒng)(202、720)中執(zhí)行的存儲過程的系統(tǒng)(600),所述監(jiān)視系統(tǒng)包括: -第一提供單元(602),其適合于針對所述存儲過程之一提供以下事件數(shù)據(jù)以及所述存儲過程的標識: -指示所述存儲過程的執(zhí)行開始的第一時間, -指示所述存儲過程的所述執(zhí)行結束的第二時間,-被分配給作為所述存儲過程的一部分執(zhí)行的SQL語句的至少一個SQL語句標識符,以及 -針對每個SQL語句標識符,指示相關SQL語句作為所述存儲過程的一部分在所述第一時間與所述第二時間之間執(zhí)行的執(zhí)行次數(shù)的計數(shù)器, -第二提供單元(604),其適合于通過所述數(shù)據(jù)庫管理系統(tǒng)提供定期的數(shù)據(jù)庫監(jiān)視信息,其中所述定期的數(shù)據(jù)庫監(jiān)視信息包括可通過所述SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值, -相關聯(lián)單元(606),其適合于將可通過所述SQL語句標識符識別的已執(zhí)行SQL語句的參數(shù)值與作為所述存儲過程的一部分在所述第一時間與所述第二時間之間執(zhí)行的所述相關SQL語句的所述執(zhí)行次數(shù)的所述計數(shù)器相關聯(lián),從而導致可通過所述存儲過程的所述標識識別所述存儲過程的監(jiān)視數(shù)據(jù)。
11.一種數(shù)據(jù)庫系統(tǒng)(202、720),其中包括根據(jù)權利要求10的所述監(jiān)視系統(tǒng)(600)。
12.—種計算機系統(tǒng)(700),包括根據(jù)權利要求10的監(jiān)視系統(tǒng)(600)。
13.一種用于在數(shù)據(jù)處理系統(tǒng)(700)中執(zhí)行的數(shù)據(jù)處理程序,其包括當所述程序在數(shù)據(jù)處理系統(tǒng)(700)上運行時,用于執(zhí)行根據(jù)上述權利要求1至9中任一項的方法(100)的軟件代碼部分。
14.一種存儲在計算機可用介質上的計算機程序產品,其包括當所述程序在計算機(700)上運行時,使所述計算機(700)執(zhí)行根據(jù)權利要求1至9中任一項的方法(100)的計算機可讀程序裝置。
【文檔編號】G06F12/00GK103842973SQ201280048469
【公開日】2014年6月4日 申請日期:2012年9月27日 優(yōu)先權日:2011年10月5日
【發(fā)明者】M·查弗勒, M·E·魏勞赫, J·B·托布勒, S·阿倫斯沃德, M·賴克特, A·利默 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1