專利名稱::聚合數(shù)據(jù)庫運行時信息和分析應用性能的方法及裝置的制作方法
技術領域:
:本發(fā)明涉及數(shù)據(jù)庫調優(yōu)的技術,具體地說,涉及對數(shù)據(jù)庫運行時信息進行聚合并對應用性能進行分析的方法及裝置.
背景技術:
:隨著數(shù)據(jù)庫應用需求的增加,應用中查詢的數(shù)量和復雜度顯著增加,這對于數(shù)據(jù)庫管理員和應用開發(fā)設計人員進行數(shù)據(jù)庫應用性能優(yōu)化、數(shù)據(jù)庫設計改進和數(shù)據(jù)庫維護是一個巨大挑戰(zhàn).通常,數(shù)據(jù)庫管理員需要根據(jù)統(tǒng)計信息和資源利用情況來調整數(shù)據(jù)庫應用的性能,基于在數(shù)據(jù)庫上實際運行的查詢改進數(shù)據(jù)庫設計例如索引等,并確定何時進行數(shù)據(jù)庫維護同時最小化對應用性能的影響。然而,數(shù)據(jù)庫管理員很難直接利用在數(shù)據(jù)庫系統(tǒng)上運行的成千上萬個查詢信息來進行這些工作.上述困難的一個主要原因是缺乏充足的相關查詢信息.為了進4亍應用性能調整,數(shù)據(jù)庫管理員和應用開發(fā)設計人員需要記錄一些查詢信息,例如查詢執(zhí)行的頻率,所涉及的表、歹'J、列組和索引等.這些信息有利于改進數(shù)據(jù)庫設計.為了確定何時進行數(shù)據(jù)庫維護,數(shù)據(jù)庫管理員需要獲得更詳細的信息,以使他們知道何時是進行數(shù)據(jù)庫維護的最佳時期.然而,簡單地收集和保存這些信息對于存儲空間和系統(tǒng)性能來說都是巨大的負荷.結果,數(shù)據(jù)庫管理員通常只收集少量查詢信息,而這又不能夠獲得充足的信息.下面列舉一些目前的數(shù)據(jù)庫的解決方案,例如Oracle,IBM(國際商業(yè)機器公司)的DB2,微軟公司的SQLServer(MicrosoftSQLServer)。OracleOracle可以聚合查詢運行時信息,并可選地保存訪問路徑.然而,它不具有歷史信息,并且當需要確定進行數(shù)據(jù)庫維護的最佳時期時它們不能提供詳細的信息用于進一步分析。IBMDB2IBMDB2的工具Cogito具有兩個產(chǎn)品EZ-Tracer和EZ-SQLWarehouse(倉庫),它們可以監(jiān)視查詢,捕獲查詢實例,聚合運行時信息并確定訪問路徑,并將這些信息加載到倉庫用于進一步分析.然而,與Oracle—樣,Cogito沒有充足的歷史信息來確定數(shù)據(jù)庫維護的最佳時期.MicrosoftSQLServerMicrosoftSQLServer的一些跟蹤工具可以監(jiān)視和捕獲服務器的活動,然而,獲得的查詢信息非常有限,沒有聚合查詢運行時信息和訪問路徑信息。此外,不是應用中的所有查詢都能被監(jiān)視。
發(fā)明內容為了解決上述現(xiàn)有技術中存在的問題,本發(fā)明提供了聚合數(shù)據(jù)庫運行時信息的方法,分析應用性能的方法,聚合數(shù)據(jù)庫運行時信息的裝置,以及分析應用性能的裝置.根據(jù)本發(fā)明的一個方面,提供了一種聚合數(shù)據(jù)庫運行時信息的方法,包括按照查詢(query)對上述數(shù)據(jù)庫運行時信息進行聚合;以及按照對象(object)對上述按照查詢聚合的數(shù)據(jù)庫運行時信息進行聚合.根據(jù)本發(fā)明的另一個方面,提供了一種分析應用性能的方法,其特征在于,根據(jù)利用上述聚合數(shù)據(jù)庫運行時信息的方法獲得的信息,分析應用性能.根據(jù)本發(fā)明的另一個方面,提供了一種聚合數(shù)據(jù)庫運行時信息的裝置,包括查詢聚合單元,按照查詢(query)對上述數(shù)據(jù)庫運行時信息進行聚合;以及對象聚合單元,按照對象(object)對上述按照查詢聚合的數(shù)據(jù)庫運行時信息進行聚合.根據(jù)本發(fā)明的另一個方面,提供了一種分析應用性能的裝置,其特征在于,包括分析單元,根據(jù)利用上述聚合數(shù)據(jù)庫運行時信息的裝置獲得的信息,分析應用性能。相信通過以下結合附圖對本發(fā)明具體實施方式的說明,能夠^f吏人們更好地了解本發(fā)明上述的特點、優(yōu)點和目的.圖1是根據(jù)本發(fā)明的一個實施例的聚合數(shù)據(jù)庫運行時信息的方法的流程圖2是根據(jù)本發(fā)明的另一個實施例的分析應用性能的方法的流程圖3是根據(jù)本發(fā)明的另一個實施例的聚合數(shù)據(jù)庫運行時信息的裝置的方才匡圖;以及圖4是根據(jù)本發(fā)明的另一個實施例的分析應用性能的裝置的方才匡圖.具體實施例方式下面就結合附圖對本發(fā)明的各個優(yōu)選實施例進行詳細的說明。聚合數(shù)據(jù)庫運行時信息的方法圖1是根據(jù)本發(fā)明的一個實施例的聚合數(shù)據(jù)庫運行時信息的方法的流程圖.如圖1所示,首先,在步驟101,按照查詢對上述數(shù)據(jù)庫運行時信息進行聚合。具體地,本實施例涉及的數(shù)據(jù)庫可以是本領域的技術人員公知的任何數(shù)據(jù)庫,例如Oracle,IBMDB2,MicrosoftSQLServer,也可以是未來開發(fā)的任何數(shù)據(jù)庫,本發(fā)明對此沒有任何限制.此外,數(shù)據(jù)庫的基本元素包括例如表、索引等等.在本實施例中,數(shù)據(jù)庫運行時信息是指在數(shù)據(jù)庫的運行過程中涉及到的信息,例如數(shù)據(jù)庫執(zhí)行每個查詢實例,及其相應的運行信息.需要指出,在本實施例中,"查詢(query)"是指廣義的查詢,例如,所有利用數(shù)據(jù)庫操作語言(DML)進行的數(shù)據(jù)庫操作.具體地,在步驟101,首先從上述數(shù)據(jù)庫運行時信息中提取每個查詢實例(queryinstance)的查詢語句(querystatement)和相關元信息(metainformation)。在本實施例中,將查詢語句和相關元信息的組合作為一個查詢.下面對查詢語句和相關元信息進行詳細描述。在本實施例中,查詢語句包括結構化查詢語言(StructuredQueryLanguage,SQL)中的基本查詢語句,具體地,包括數(shù)據(jù)操作語言(DataManipulationLanguage,DML)中的基本查詢語句,例如在數(shù)據(jù)庫中插入(insert)數(shù)據(jù)、修改Update)數(shù)據(jù)庫中的數(shù)據(jù)、刪除(delete)數(shù)據(jù)庫中的數(shù)據(jù)、查詢(select)數(shù)據(jù)庫中的數(shù)據(jù)等,本發(fā)明對此沒有任何限制。在本實施例中,相關元信息是指與該查詢的解釋、執(zhí)行、優(yōu)化、編譯等相關的元信息.具體地,模式用于指定執(zhí)行一條語句時所涉及的數(shù)據(jù)庫對象;安全選項用于限定執(zhí)行一條語句使用的權限;優(yōu)化選項用于輔助執(zhí)行路徑的選擇.例如,通常的數(shù)據(jù)庫中的模式(schema),安全選項,優(yōu)化選項.例如,模式是指,對于相同的查詢語句,由于用戶不同,得到的結果也不同,因此對應不同的查詢。具體地,例如才緣本發(fā)明的一個實施例,在IBMDB2中,相關元信息也可以是指綁定選項(BindOption),其包括執(zhí)行選項和編譯選項,有關綁定選項的詳細內容參見IBMDB2UniversalDatabaseforz/OS,Version8,CommandReferenceChapter15,在此通過參考S1入其整個內容并省略其說明。在步驟101,在從上述數(shù)據(jù)庫運行時信息中提取每個查詢實例的查詢語句和相關元信息之后,按照每個查詢即查詢語句和相關元信息的組合,以最小時間單位,對上述數(shù)據(jù)庫運行時信息進行聚合。在本實施例中,最小時間單位可以4艮據(jù)需要設定,例如1小時,1天等,本發(fā)明對此沒有任何限制。具體地,在本步驟,對于每個查詢,在每個最小時間單位內,計算與該查詢對應的查詢實例的運行信息。在本實施例中,運行信息包括但不限于CPU占用時間,運4亍時間(elapsetime),執(zhí)4亍次數(shù)(executioncount),同步I/O次數(shù)(numberofsynchronousIO),申請頁的次數(shù)(numberofgetpageoperations),同步緩沖區(qū)讀次數(shù)(numberofsynchronousbufferreadoperationsperformed),同步緩沖區(qū)寫次數(shù)(numberofbuffersynchronouswriteoperationsperformed),處理的行數(shù)(numberofrowsprocessed),排序次數(shù)(numberofsortsperformed),索引訪問次數(shù)(numberofindexscansperformed),表查詢次數(shù)(numberoftablespacescansperformed),并行組數(shù)(numberofparallelgroupscreated),等待鎖的時間(waittimeforlockandlatchrequest),等待全局鎖的時間(waittimeforgloballocks),為讀等待其他線程的時間(waittimeforreadactivitydonebyanotherthread),為寫等待其他線禾呈的時間(waittimeforwriteactivitydonebyanotherthread)等,本發(fā)明并不限于此.在本實施例中,運行時間是指數(shù)據(jù)庫引擎完成與該查詢對應的查詢實例所花費的時間,如果在該最小時間單位中與該查詢對應的查詢實例包括多個,則將多個查詢實例花費的總時間作為這里的與該查詢對應的查詢實例的運行時間。此外,在每個最小時間單位內,提取與該查詢對應的查詢實例的訪問路徑(accesspath)。在本實施例中,訪問路徑是指當一個查詢涉及多個對象時,查詢多個數(shù)據(jù)庫對象的先后順序以及對不同對象的訪問方式,例如對于一個查詢i吾句SELECT*FROMTABLE1,TABLE2,TABLE3WHEREAGE-12如果先查詢TABLE2,接著查詢TABLE1,最后查詢TABLE3,則與該查詢對應的查詢實例的訪問順序為[TABLE2,TABLE1,TABLE3.應該理解,這里列舉的訪問路徑只是為了說明目的,本發(fā)明涉及的訪問路徑可以是本領域的技術人員公知的任何訪問路徑.可選地,在本實施例中,可以對查詢語句和相關元信息的語義相同的多個查詢進行合并(consolidating).在本實施例中,語義相同的查詢是指例如僅僅字面上或變量參數(shù)不同的查詢.例如對于下面兩個查詢i吾句SELECT*FROMTABLE1,TABLE2,TABLE3WHEREAGE-12SELECT*FROMTABLE1,TABLE2,TABLE3WHEREAGE-13二者僅僅是書寫方式不同,如果對應的查詢具有相同的相關元信息,則實際執(zhí)行這兩個查詢的結果和過程沒有任何區(qū)別,從而可以將這兩個查詢合并為一個查詢。此外,可選地,在本實施例中,可以刪除同一個查詢下的在同一個時間單位中重復的訪問路徑.眾所周知,在一定時期內,訪問路徑是不會變化的,從而可以將同一個查詢的重復的訪問路徑刪除.最后,在步驟105,按照對象對上述在步驟101中按照查詢聚合的數(shù)據(jù)庫運行時信息進行聚合。具體地,首先,提取上述訪問路徑中包含的全部對象,并接著按照每個提取的對象,以最小時間單位,對上述按照查詢聚合后的數(shù)據(jù)庫運行時信息進行聚合.在此處,最小時間單位與上述最小時間單位相同,可以才艮據(jù)需要"^殳定,例如1小時,l天等。在本實施例中,從上述訪問路徑中提出的對象包括本領域的技術人員公知的任何對象,例如表、歹'j、列組、索引等,本發(fā)明對此沒有任何限制。具體地,在步驟105,對于每個對象,在每個最小時間單位內,計算訪問路徑中包含該對象的查詢實例的運行信息,例如包括但不限于CPU占用時間,運行時間,執(zhí)行次數(shù),同步I/0次數(shù),申請頁的次數(shù),同步緩沖區(qū)讀次數(shù),同步緩沖區(qū)寫次數(shù),處理的行數(shù),排序次數(shù),索引訪問次數(shù),表查詢次數(shù),并行組數(shù),等待鎖的時間,等待全局鎖的時間,為讀等待其他線程的時間,為寫等待其他線程的時間等,本發(fā)明并不限于此。在本實施例中,運行時間是指數(shù)據(jù)庫引擎完成訪問路徑中包含該對象的查詢實例所花費的時間,如果訪問路徑中包含該對象的查詢實例包括多個,則將多個查詢實例花費的總時間作為這里的訪問路徑中包含該對象的查詢實例的運4亍時間.通過使用本實施例的聚合數(shù)據(jù)庫運行時信息的方法,能夠為應用性能調整、數(shù)據(jù)庫設計改進和數(shù)據(jù)庫維護提供充足并有用的信息.這些信息包括關于查詢和對象的信息,從而為數(shù)據(jù)庫管理員進行上述工作提供了方便.此外,通過使用本實施例的聚合數(shù)據(jù)庫運行時信息的方法,可以有效地聚合數(shù)據(jù)庫運行時信息以降低空間負荷并提高分析效率.具體地,將原始數(shù)據(jù)聚合成對于分析有用的信息,合并類似數(shù)據(jù),并刪除重復數(shù)據(jù),從而降低了空間負荷,同時降低了進行分析花費的時間。分析應用性能的方法在同一發(fā)明構思下,圖2是根據(jù)本發(fā)明的另一個實施例的分析應用性能的方法的流程圖。下面就結合該圖,對本實施例進行描述。對于那些與前面實施例相同的部分,適當省略其說明.如圖2所示,首先,在步驟201,利用聚合數(shù)據(jù)庫運行時信息的方法對數(shù)據(jù)庫運行時信息進行聚合,獲得聚合后的方法.具體地,本實施例涉及的數(shù)據(jù)庫可以是本領域的技術人員公知的任何數(shù)據(jù)庫,例如Oracle,IBMDB2,MicrosoftSQLServer,也可以是未來開發(fā)的任何數(shù)據(jù)庫,本發(fā)明對此沒有任何限制。此外,在本實施例中,數(shù)據(jù)庫運行時信息是指在數(shù)據(jù)庫的運行過程中涉及到的任何信息,例如對數(shù)據(jù)庫進行的各種操作,本發(fā)明對此沒有任何限制。此外,在本實施例中,聚合數(shù)據(jù)庫運行時信息的方法可以是上述參考圖l的實施例的方法,也可以是本領域的技術人員乂^知的任何其它方法.最后,在步驟205,根據(jù)在步驟201中利用聚合數(shù)據(jù)庫運行時信息的方法獲得的信息,分析應用性能.具體地,對應用性能的分析包括提煉數(shù)據(jù)庫查詢和數(shù)據(jù)庫對象隨時間變化的的柱狀圖,為數(shù)據(jù)庫系統(tǒng)調優(yōu)提供系統(tǒng)化、有效的數(shù)據(jù)支持,以及本領域的技術人員公知的對數(shù)據(jù)庫進行的各種調優(yōu),本發(fā)明對此沒有任何限制.通過使用本實施例的分析應用性能的方法,能夠為應用性能調整、數(shù)據(jù)庫設計改進和數(shù)據(jù)庫維護提供充足并有用的信息.這些信息包括關于查詢和對象的信息,從而為數(shù)據(jù)庫管理員進行上述工作提供了方便。此外,通過使用本實施例的分析應用性能的方法,可以有效地聚合數(shù)據(jù)庫運行時信息以降低空間負荷并提高分析效率.具體地,將原始數(shù)據(jù)聚合成對于分析有用的信息,合并類似數(shù)據(jù),并刪除重復數(shù)據(jù),從而降低了空間負荷,同時降低了進行分析花費的時間.聚合數(shù)據(jù)庫運行時信息的裝置在同一發(fā)明構思下,圖3是根據(jù)本發(fā)明的另一個實施例的聚合數(shù)據(jù)庫運行時信息的裝置的方框圖。下面就結合該圖,對本實施例進行描述。對于那些與前面實施例相同的部分,適當省略其說明.如圖3所示,本實施例的聚合數(shù)據(jù)庫運行時信息的裝置300包括查詢聚合單元301,按照查詢對上述數(shù)據(jù)庫運行時信息進行聚合;以及對象聚合單元305,按照對象對上述按照查詢聚合的數(shù)據(jù)庫運行時信息進行聚合。具體地,本實施例涉及的數(shù)據(jù)庫可以是本領域的技術人員公知的任何數(shù)據(jù)庫,例如Oracle,IBMDB2,MicrosoftSQLServer,也可以是未來開發(fā)的任何數(shù)據(jù)庫,本發(fā)明對此沒有任何限制.此外,數(shù)據(jù)庫的基本元素包括例如表、索引等等.在本實施例中,數(shù)據(jù)庫運行時信息是指在數(shù)據(jù)庫的運行過程中涉及到的信息,例如對數(shù)據(jù)庫進行的各種操作,以及數(shù)據(jù)庫執(zhí)行每個查詢實例的信息.需要指出,在本實施例中,"查詢(query)"是指廣義的查詢,例如,所有利用數(shù)據(jù)庫操作語言(DML)進行的數(shù)據(jù)庫操作.具體地,查詢聚合單元301包括提取單元,用于從上述數(shù)據(jù)庫運行時信息中提取每個查詢實例(queryinstance)的查詢語句(querystatement)和相關元信息(metainformation).在本實施例中,將查詢語句和相關元信息的組合作為一個查詢.下面對查詢語句和相關元信息進行詳細描述.在本實施例中,查詢語句包括結構化查詢語言(StructuredQueryLanguage,SQL)中的基本查詢語句,具體地,包括數(shù)據(jù)操作語言(DataManipulationLanguage,DML)中的基本查詢語句,例如在數(shù)據(jù)庫中插入(insert)數(shù)據(jù)、修改(叩date)數(shù)據(jù)庫中的數(shù)據(jù)、刪除(delete)數(shù)據(jù)庫中的數(shù)據(jù)、查詢(select)數(shù)據(jù)庫中的數(shù)據(jù)等,本發(fā)明對此沒有任何限制.在本實施例中,相關元信息是指與該查詢的解釋、執(zhí)行、優(yōu)化、編譯等相關的元信息。具體地,模式用于指定執(zhí)行一條語句時所涉及的數(shù)據(jù)庫對象;安全選項用于限定執(zhí)行一條語句使用的權限;優(yōu)化選項用于輔助執(zhí)行路徑的選擇。例如,通常的數(shù)據(jù)庫中的模式(schema),安全選項,優(yōu)化選項。例如,模式是指,對于相同的查詢語句,由于用戶不同,得到的結果也不同,因此對應不同的查詢。具體地,例如根據(jù)本發(fā)明的一個實施例,在IBMDB2中,相關元信息也可以是指綁定選項(BindOption),其包括執(zhí)行選項和編譯選項,有關綁定選項的詳細內容參見IBMDB2UniversalDatabaseforz/OS,Version8,CommandReferenceChapter15,在此通過參考$j入其整個內容并省略其說明.在本實施例中,在查詢聚合單元301的提取單先從上述數(shù)據(jù)庫運行時信息中提取每個查詢實例的查詢語句和相關元信息之后,查詢聚合單元301按照每個查詢即查詢語句和相關元信息的組合,以最小時間單位,對上述數(shù)據(jù)庫運行時信息進行聚合。在本實施例中,最小時間單位可以根據(jù)需要設定,例如l小時,l天等,本發(fā)明對此沒有任何限制。具體地,在本步驟,查詢聚合單元301還包括時間計算單元,對于每個查詢,在每個最小時間單位內,該時間計算單元計算與該查詢對應的查詢實例的運行信息。在本實施例中,運行信息包括但不限于CPU占用時間,運4亍時間(elapsetime),執(zhí)4亍次數(shù)(executioncount),同步I/O次數(shù)(numberofsynchronousIO),申請頁的次數(shù)(numberofgetpageoperations),同步緩沖區(qū)讀次數(shù)(numberofsynchronousbufferreadoperationsperformed),同步緩沖區(qū)寫次數(shù)(numberofbuffersynchronouswriteoperationsperformed),處理的行數(shù)(numberofrowsprocessed),4^序次數(shù)(numberofsortsperformed),索引"^方問次數(shù)(numberofindexscansperformed),表查詢次數(shù)(numberoftablespacescansperformed),并行組數(shù)(numberofparallelgroupscreated),等待鎖的時間(waittimeforlockandlatchrequest),等待全局鎖的時間(waittimeforgloballocks),為讀等待其他線禾呈的時間(waittimeforreadactivitydonebyanotherthread),為寫等待其他線程的時間(waittimeforwriteactivitydonebyanotherthread)等,本發(fā)明并不限于此。在本實施例中,運行時間是指數(shù)據(jù)庫引擎完成與該查詢對應的查詢實例所花費的時間,如果在該最小時間單位中與該查詢對應的查詢實例包括多個,則將多個查詢實例花費的總時間作為這里的與該查詢對應的查詢實例的運^f亍時間.此外,查詢聚合單元301還包括路徑提取單元,在每個最小時間單位內,該路徑提取單元提取與該查詢對應的查詢實例的訪問路徑.在本實施例中,訪問路徑是指當一個查詢涉及多個對象時,查詢多個對象的先后順序,例如對于一個查詢語句SELECT*FROMTABLE1,TABLE2,TABLE3WHEREAGE=12如果先查詢TABLE2,接著查詢TABLEl,最后查詢TABLE3,則與該查詢對應的查詢實例的訪問順序為[TABLE2,TABLE1,TABLE3。應該理解,這里列舉的訪問路徑只是為了說明目的,本發(fā)明涉及的訪問路徑可以是本領域的技術人員公知的任何訪問路徑??蛇x地,在本實施例中,查詢聚合單元301還包括合并單元,用于對查詢語句和相關元信息的語義相同的多個查詢進4亍合并.在本實施例中,語義相同的查詢是指例如僅僅字面上或變量參數(shù)不同的查詢.例如對于下面兩個查詢i吾句SELECT*FROMTABLE1,TABLE2,TABLE3WHEREAGE-12SELECT*FROMTABLE1,TABLE2,TABLE3WHEREAGE=13二者僅僅是書寫方式不同,如果對應的查詢具有相同的相關元4言息,則實際執(zhí)行這兩個查詢的結果和過程沒有任何區(qū)別,從而可以將這兩個查詢合并為一個查詢.此外,可選地,在本實施例中,查詢聚合單元301還包括刪除單元,用于刪除同一個查詢下的在同一個時間單位中重復的訪問路徑。眾所周知,在一定時期內,訪問路徑是不會變化的,從而可以將同一個查詢的重復的訪問路徑刪除.在本實施例中,對象聚合單元305按照對象對上述查詢聚合單元301按照查詢聚合的數(shù)據(jù)庫運行時信息進行聚合.具體地,對象聚合單元305包括提取單元,用于提取上述訪問路徑中包含的全部對象。在提取單元提取出上述訪問路徑中包含的全部對象后,對象聚合單元305按照每個提取的對象,以最小時間單位,對上述按照查詢聚合后的數(shù)據(jù)庫運行時信息進行聚合。在此處,最小時間單位與上述最小時間單位相同,可以根據(jù)需要設定,例如l小時,l天等.在本實施例中,從上述訪問路徑中提出的對象包括本領域的技術人員公知的任何對象,例如表、列、列組、索引等,本發(fā)明對此沒有任何限制。具體地,對象聚合單元305還包括時間計算單元,對于每個對象,在每個最小時間單位內,該時間計算單元計算訪問路徑中包含該對象的查詢實例的運行信息,例如包括但不限于CPU占用時間,運行時間,執(zhí)行次數(shù),同步I/0次數(shù),申請頁的次數(shù),同步緩沖區(qū)讀次數(shù),同步緩沖區(qū)寫次數(shù),處理的行數(shù),排序次數(shù),索引訪問次數(shù),表查詢次數(shù),并行組數(shù),等待鎖的時間,等待全局鎖的時間,為讀等待其他線程的時間,為寫等待其他線程的時間等,本發(fā)明并不限于此.在本實施例中,運行時間是指數(shù)據(jù)庫引擎完成訪問路徑中包含該對象的查詢實例所花費的時間,如果訪問路徑中包含該對象的查詢實例包括多個,則將多個查詢實例花費的總時間作為這里的訪問路徑中包含該對象的查詢實例的運4亍時間。通過使用本實施例的聚合數(shù)據(jù)庫運行時信息的裝置300,能夠為應用性能調整、數(shù)據(jù)庫設計改進和數(shù)據(jù)庫維護提供充足并有用的信息。這些信息包括關于查詢和對象的信息,從而為數(shù)據(jù)庫管理員進行上述工作提供了方便。此外,通過使用本實施例的聚合數(shù)據(jù)庫運行時信息的裝置300,可以有效地聚合數(shù)據(jù)庫運行時信息以降低空間負荷并提高分析效率。具體地,將原始數(shù)據(jù)聚合成對于分析有用的信息,合并類似數(shù)據(jù),并刪除重復數(shù)據(jù),從而降低了空間負荷,同時降低了進行分析花費的時間。分析應用性能的裝置在同一發(fā)明構思下,圖4是根據(jù)本發(fā)明的另一個實施例的分析應用性能的裝置的方框圖。下面就結合該圖,對本實施例進行描述。對于那些與前面實施例相同的部分,適當省略其說明。如圖4所示,本實施例的分析應用性能的裝置400包括聚合數(shù)據(jù)庫運行時信息的裝置,用于獲得聚合的信息;以及分析單元405,用于分析應用性能。具體地,本實施例涉及的數(shù)據(jù)庫可以是本領域的技術人員公知的任何數(shù)據(jù)庫,例如Oracle,IBMDB2,MicrosoftSQLServer,也可以是未來開發(fā)的任何數(shù)據(jù)庫,本發(fā)明對此沒有任何限制.此外,在本實施例中,數(shù)據(jù)庫運行時信息是指在數(shù)據(jù)庫的運行過程中涉及到的任何信息,例如對數(shù)據(jù)庫進行的各種操作,本發(fā)明對此沒有任何限制.此外,在本實施例中,聚合數(shù)據(jù)庫運行時信息的裝置可以是上述參考圖3的實施例的聚合數(shù)據(jù)庫運行時信息的裝置300,也可以是本領域的技術人員公知的任何其它裝置.在本實施例中,分析單元405利用聚合數(shù)據(jù)庫運行時信息的裝置獲得的信息,分析應用性能。具體地,對應用性能的分析包括提煉數(shù)據(jù)庫查詢和數(shù)據(jù)庫對象隨時間變化的的柱狀圖,為數(shù)據(jù)庫系統(tǒng)調優(yōu)提供系統(tǒng)化、有效的數(shù)據(jù)支持,以及本領域的技術人員公知的對數(shù)據(jù)庫進行的各種調優(yōu),本發(fā)明對此沒有任何限制。通過使用本實施例的分析應用性能的裝置400,能夠為應用性能調整、數(shù)據(jù)庫設計改進和數(shù)據(jù)庫維護提供充足并有用的信息.這些信息包括關于查詢和對象的信息,從而為數(shù)據(jù)庫管理員進行上述工作提供了方便.此外,通過使用本實施例的分析應用性能的裝置400,可以有效地聚合數(shù)據(jù)庫運行時信息以降低空間負荷并提高分析效率.具體地,將原始數(shù)據(jù)聚合成對于分析有用的信息,合并類似數(shù)據(jù),并刪除重復數(shù)據(jù),從而降低了空間負荷,同時降低了進行分析花費的時間.以上雖然通過一些示例性的實施例詳細描述了本發(fā)明的聚合數(shù)據(jù)庫運行時信息的方法,分析應用性能的方法,聚合數(shù)據(jù)庫運行時信息的裝置,以及分析應用性能的裝置,但是以上這些實施例并不是窮舉的,本領域技術人員可以在本發(fā)明的精神和范圍內實現(xiàn)各種變化和修改。因此,本發(fā)明并不限于這些實施例,本發(fā)明的范圍僅由所附的權利要求限定。權利要求1.一種聚合數(shù)據(jù)庫運行時信息的方法(methodforaggregatingdatabaseruntimeinformation),包括按照查詢(query)對上述數(shù)據(jù)庫運行時信息進行聚合;以及按照對象(object)對上述按照查詢聚合的數(shù)據(jù)庫運行時信息進行聚合。2.根據(jù)權利要求1所述的聚合數(shù)據(jù)庫運行時信息的方法,其中,按照查詢對上述數(shù)據(jù)庫運行時信息進行聚合的步驟包括從上述數(shù)據(jù)庫運行時信息中提取每個查詢實例(queryinstance)的查詢語句(querystatement)和相關元信息(metainformation);以及按照每個上述查詢語句和相關元信息的組合,以最小時間單位,對上述數(shù)據(jù)庫運行時信息進行聚合.3.根據(jù)權利要求2所述的聚合數(shù)據(jù)庫運行時信息的方法,其中,按照每個上述查詢語句和相關元信息的組合對上述數(shù)據(jù)庫運行時信息進行聚合的步驟包括計算在每個上述最小時間單位內與該查詢語句和相關元信息的組合對應的查詢實例的運行信息;以及提取在每個上述最小時間單位內與該查詢語句和相關元信息的組合對應的查詢實例的i方問路徑(accesspath)。4.根據(jù)權利要求3所述的聚合數(shù)據(jù)庫運行時信息的方法,其中,上述運,行信息包括CPU占用時間,運行時間,執(zhí)行次數(shù),同步i/o次數(shù),申請頁的次數(shù),同步緩沖區(qū)讀次數(shù),同步緩沖區(qū)寫次數(shù),處理的行數(shù),排序次數(shù),索引訪問次數(shù),表查詢次數(shù),并行組數(shù),等待鎖的時間,等待全局鎖的時間,為讀等待其他線程的時間,為寫等待其他線程的時間中的一種或多種。5.根據(jù)權利要求4所述的聚合數(shù)據(jù)庫運行時信息的方法,其中,按照對象對上述按照查詢聚合的數(shù)據(jù)庫運行時信息進行聚合的步驟包括提取上述訪問路徑中包含的全部對象;以及按照每個上述對象,以最小時間單位,對上述按照查詢聚合后的數(shù)據(jù)庫運行時信息進行聚合.6.根據(jù)權利要求5所述的聚合數(shù)據(jù)庫運行時信息的方法,其中,按照每個上述對象以最小時間單位對上述按照查詢聚合后的數(shù)據(jù)庫運行時信息進行聚合的步驟包括計算在每個上述最小時間單位內訪問路徑中包含該對象的查詢實例的運行信息.7.根據(jù)權利要求6所述的聚合數(shù)據(jù)庫運行時信息的方法,其中,上述運行信息包括CPU占用時間,運行時間,執(zhí)行次數(shù),同步i/o次數(shù),申請頁的次數(shù),同步緩沖區(qū)讀次數(shù),同步緩沖區(qū)寫次數(shù),處理的行數(shù),排序次數(shù),索引訪問次數(shù),表查詢次數(shù),并行組數(shù),等待鎖的時間,等待全局鎖的時間,為讀等待其他線程的時間,為寫等待其他線程的時間中的一種或多種。8.根據(jù)權利要求2-7的任意一項所述的聚合數(shù)據(jù)庫運行時信息的方法,其中,按照查詢對上述數(shù)據(jù)庫運行時信息進行聚合的步驟還包括對查詢語句和相關元信息的語義相同的多個查詢進行合并(consolidating).9.根據(jù)權利要求8所述的聚合數(shù)據(jù)庫運行時信息的方法,其中,按照查詢對上述數(shù)據(jù)庫運行時信息進行聚合的步驟還包括刪除同一個查詢下的在同一個時間單位中重復的訪問路徑.10.根據(jù)權利要求2-7的任意一項所述的聚合數(shù)據(jù)庫運行時信息的方法,其中,上述相關元信息包括模式(schema),安全選項,優(yōu)化選項,綁定選項,執(zhí)行選項和編譯選項的一個或多個.11.一種聚合數(shù)據(jù)庫運行時信息的裝置(apparatusforaggregatingdatabaseruntimeinformation),包括查詢聚合單元,按照查詢(query)對上述數(shù)據(jù)庫運行時信息進行聚合;以及對象聚合單元,按照對象(object)對上述按照查詢聚合的數(shù)據(jù)庫運行時信息進行聚合.12.根據(jù)權利要求11所述的聚合數(shù)據(jù)庫運行時信息的裝置,其中,上述查詢聚合單元包括提取單元,從上述數(shù)據(jù)庫運行時信息中提取每個查詢實例(queryinstance)的查詢語句(querystatement)和相關元信息(metainformation);以及其中,上述查詢聚合單元按照每個上述查詢語句和相關元信息的組合,以最小時間單位,對上述數(shù)據(jù)庫運行時信息進行聚合。13.根據(jù)權利要求12所述的聚合數(shù)據(jù)庫運行時信息的裝置,其中,上述查詢聚合單元包括時間計算單元,用于計算在每個上述最小時間單位內與該查詢語句和相關元信息的組合對應的查詢實例的運行信息;以及路徑提取單元,用于提取在每個上述最小時間單位內與該查詢語句和相關元信息的組合對應的查詢實例的訪問路徑(accesspath).14.根據(jù)權利要求13所述的聚合數(shù)據(jù)庫運行時信息的裝置,其中,上述運行信息包括CPU占用時間,運行時間,執(zhí)行次數(shù),同步i/o次數(shù),申請頁的次數(shù),同步緩沖區(qū)讀次數(shù),同步緩沖區(qū)寫次數(shù),處理的行數(shù),排序次數(shù),索引訪問次數(shù),表查詢次數(shù),并行組數(shù),等待鎖的時間,等待全局鎖的時間,為讀等待其他線程的時間,為寫等待其他線程的時間中的一種或多種。15.根據(jù)權利要求14所述的聚合數(shù)據(jù)庫運行時信息的裝置,其中,上述對象聚合單元包括提取單元,用于提取上述訪問路徑中包含的全部對象;以及其中,上述對象聚合單元按照每個上述對象,以最小時間單位,對上述按照查詢聚合后的數(shù)據(jù)庫運行時信息進行聚合.16.根據(jù)權利要求15所述的聚合數(shù)據(jù)庫運行時信息的裝置,其中,上述對象聚合單元包括時間計算單元,用于計算在每個上述最小時間單位內訪問路徑中包含該對象的查詢實例的運4亍信息.17.根據(jù)權利要求16所述的聚合數(shù)據(jù)庫運行時信息的裝置,其中,上述運行信息包括CPU占用時間,運行時間,執(zhí)行次數(shù),同步i/o次數(shù),申請頁的次數(shù),同步緩沖區(qū)讀次數(shù),同步緩沖區(qū)寫次數(shù),處理的行數(shù),排序次數(shù),索引訪問次數(shù),表查詢次數(shù),并行組數(shù),等待鎖的時間,等待全局鎖的時間,為讀等待其他線程的時間,為寫等待其他線程的時間中的一種或多種.18.根據(jù)權利要求12-17的任意一項所述的聚合數(shù)據(jù)庫運行時信息的裝置,其中,上述查詢聚合單元還包括合并單元,用于對查詢語句和相關元信息的語義相同的多個查詢進行合并(consolidating).19.根據(jù)權利要求18所述的聚合數(shù)據(jù)庫運行時信息的裝置,其中,上述查詢聚合單元還包括刪除單元,用于刪除同一個查詢下的在同一個時間單位中重復的訪問路徑.20.根據(jù)權利要求12-17的任意一項所述的聚合數(shù)據(jù)庫運行時信息的裝置,其中,上述相關元信息包括模式(schema),安全選項,優(yōu)化選項,綁定選項,執(zhí)行選項和編譯選項的一個或多個.全文摘要本發(fā)明提供了聚合數(shù)據(jù)庫運行時信息的方法,分析應用性能的方法。根據(jù)本發(fā)明的一個方面,提供了一種聚合數(shù)據(jù)庫運行時信息的方法,包括按照查詢(query)對上述數(shù)據(jù)庫運行時信息進行聚合;以及按照對象(object)對上述按照查詢聚合的數(shù)據(jù)庫運行時信息進行聚合。文檔編號G06F17/30GK101196890SQ200610164589公開日2008年6月11日申請日期2006年12月8日優(yōu)先權日2006年12月8日發(fā)明者P·D·博斯曼,任鯤鵬,傅毓勤,劉展華,孫冰江,芳邢申請人:國際商業(yè)機器公司