專利名稱:分析查詢優(yōu)化器性能的設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字?jǐn)?shù)據(jù)處理。更具體地,本發(fā)明涉及分析查詢優(yōu)化器的性能。
背景技術(shù):
查詢優(yōu)化包括將數(shù)據(jù)庫(kù)查詢轉(zhuǎn)化為在存儲(chǔ)于數(shù)據(jù)庫(kù)中的數(shù)據(jù)上執(zhí)行的高效的程序或者查詢方案。數(shù)據(jù)庫(kù)查詢通常以查詢語(yǔ)言表述,如結(jié)構(gòu)化查詢語(yǔ)言(SQL)、通用查詢語(yǔ)言(CQL)或者多維表達(dá)式(MDX)等等,數(shù)據(jù)庫(kù)查詢被轉(zhuǎn)化為ー種或多種可行的查詢方案。查詢方案列明了一組步驟,用來(lái)訪問(wèn)或者修改與查詢·有關(guān)的數(shù)據(jù)。諸如如何訪問(wèn)給定的數(shù)據(jù)關(guān)系、以何種順序連接數(shù)據(jù)關(guān)系、排序順序等詳情都有可能形成查詢方案的一部分。對(duì)于給定的查詢,查詢方案的各個(gè)不同的組成部分,如訪問(wèn)路徑、連接方法和排序順序,可以產(chǎn)生很多查詢方案。典型的數(shù)據(jù)倉(cāng)庫(kù)查詢可以形成數(shù)億種可行的方案??梢愿鶕?jù)不同的參數(shù),包括例如訪問(wèn)磁盤(pán)的次數(shù)和取回?cái)?shù)據(jù)所需的響應(yīng)時(shí)間,來(lái)建立查詢方案的成本模型。查詢優(yōu)化器可估計(jì)已給定查詢的所有可行的查詢方案的成本,并確定最佳方案,也就是執(zhí)行該查詢的最有效的方案。一般來(lái)說(shuō),用戶不能直接訪問(wèn)查詢優(yōu)化器。因此,用戶看不到優(yōu)化過(guò)程。然而,用戶能識(shí)別任意多個(gè)的情形中的次優(yōu)性能,包括優(yōu)化器進(jìn)程崩潰、優(yōu)化器產(chǎn)生的查詢方案產(chǎn)生錯(cuò)誤的結(jié)果、低效率的查詢方案或者相較于系統(tǒng)改造前的系統(tǒng)操作的次等方案。不能訪問(wèn)查詢優(yōu)化器限制了用戶對(duì)在不同情況下方案在何處產(chǎn)生的假設(shè)分析能力。評(píng)估查詢優(yōu)化器的性能包括對(duì)多個(gè)參數(shù)的理解。通常,查詢優(yōu)化器的用戶不愿意讓查詢優(yōu)化器的供應(yīng)商看見(jiàn)自己的系統(tǒng),尤其是用戶的數(shù)據(jù)。即使能夠訪問(wèn)數(shù)據(jù),獲取正確的數(shù)據(jù)也很難。此外,用戶通常也不愿允許任何形式的評(píng)估干擾正在進(jìn)行的業(yè)務(wù)流程。所以,盡管需要了解所使用的系統(tǒng)中查詢優(yōu)化器的性能,但是這么做的機(jī)會(huì)很有限。因此,就需要提供技術(shù)來(lái)評(píng)估所部署的查詢優(yōu)化器的性能。
發(fā)明內(nèi)容
分析查詢優(yōu)化器的性能的方法包括識(shí)別事件觸發(fā)。構(gòu)造表征事件觸發(fā)時(shí)用戶計(jì)算機(jī)的運(yùn)行參數(shù)的再現(xiàn)對(duì)象。將該再現(xiàn)對(duì)象從用戶計(jì)算機(jī)傳輸?shù)綔y(cè)試計(jì)算機(jī)。在測(cè)試計(jì)算機(jī)中分析該再現(xiàn)對(duì)象以表征查詢優(yōu)化器的性能。用戶計(jì)算機(jī)具有連接到處理器的存儲(chǔ)器。該存儲(chǔ)器存儲(chǔ)采集模塊,該采集模塊包括指令,該指令使處理器識(shí)別事件觸發(fā),構(gòu)造表征事件觸發(fā)時(shí)用戶計(jì)算機(jī)的運(yùn)行參數(shù)的再現(xiàn)對(duì)象,并將再現(xiàn)對(duì)象從用戶計(jì)算機(jī)傳輸?shù)綔y(cè)試計(jì)算機(jī)。測(cè)試計(jì)算機(jī)具有連接到處理器的存儲(chǔ)器。該存儲(chǔ)器存儲(chǔ)包括指令的分析模塊,以使處理器分析表征事件觸發(fā)時(shí)用戶計(jì)算機(jī)的運(yùn)行參數(shù)的再現(xiàn)對(duì)象,以表征查詢優(yōu)化器的性倉(cāng)^:。
通過(guò)以下結(jié)合附圖的詳細(xì)描述能夠更充分地理解本發(fā)明,其中圖I示出根據(jù)本發(fā)明一實(shí)施例配置的計(jì)算機(jī)系統(tǒng)。圖2示出根據(jù)本發(fā)明一實(shí)施例配置的再現(xiàn)對(duì)象。圖3示出與本發(fā)明ー實(shí)施例相關(guān)的運(yùn)行過(guò)程。在所有圖中相同的參考標(biāo)號(hào)表不對(duì)應(yīng)的部分。
具體實(shí)施例方式圖I示出根據(jù)本發(fā)明一實(shí)施例配置的系統(tǒng)100。系統(tǒng)100包括用通信信道106連接起來(lái)的用戶計(jì)算機(jī)102-1和測(cè)試計(jì)算機(jī)104-1,該通信信道可以是有線或者無(wú)線信道。用戶計(jì)算機(jī)102-1包括標(biāo)準(zhǔn)構(gòu)件,例如通過(guò)總線114連接的中央處理單元110和輸入/輸出設(shè)備112。所述輸入/輸出設(shè)備可以包括鍵盤(pán)、鼠標(biāo)、顯示器和打印機(jī)等等??偩€114還連接到網(wǎng)絡(luò)接ロ卡116,網(wǎng)絡(luò)接ロ卡116提供與其他計(jì)算機(jī)如計(jì)算機(jī)104-1的連接。存儲(chǔ)器120也連接到總線114。該存儲(chǔ)器存儲(chǔ)數(shù)據(jù)和可執(zhí)行模塊,以執(zhí)行本發(fā)明的操作。特別地,存儲(chǔ)器120存儲(chǔ)數(shù)據(jù)庫(kù)122和一組相關(guān)的數(shù)據(jù)庫(kù)應(yīng)用程序或者工具124。數(shù)據(jù)庫(kù)應(yīng)用程序或者工具124用于構(gòu)建數(shù)據(jù)庫(kù)查詢。每個(gè)數(shù)據(jù)庫(kù)查詢被施加到查詢優(yōu)化器126,所述查詢優(yōu)化器生成查詢方案,該查詢方案被施加到數(shù)據(jù)庫(kù)122以產(chǎn)生數(shù)據(jù)結(jié)果。這些構(gòu)件是現(xiàn)有技術(shù)中已知的。本發(fā)明集中在采集模塊128和再現(xiàn)對(duì)象130上。采集模塊128包括可執(zhí)行指令,用于在預(yù)定情形下采集查詢、數(shù)據(jù)庫(kù)和系統(tǒng)信息。所述預(yù)定情形可以包括優(yōu)化過(guò)程崩潰、被跟蹤的優(yōu)化過(guò)程和假設(shè)分析等等。采集模塊128將該查詢、數(shù)據(jù)庫(kù)和系統(tǒng)信息加載到再現(xiàn)對(duì)象130中。然后再現(xiàn)對(duì)象130會(huì)被傳送到測(cè)試計(jì)算機(jī)104-1。所以,采集模塊128可以包括用來(lái)加載和傳送再現(xiàn)對(duì)象130的可執(zhí)行的指令。圖I示出用戶計(jì)算機(jī)102-1至102-N。在典型的實(shí)施例中,存儲(chǔ)器120中的數(shù)據(jù)庫(kù)122和其他模塊分布在多個(gè)機(jī)器中。類似地,測(cè)試計(jì)算機(jī)104-1可以是單個(gè)機(jī)器或者它的功能可以分布在多個(gè)機(jī)器104-1至104-N中。測(cè)試計(jì)算機(jī)104-1包括標(biāo)準(zhǔn)構(gòu)件,該標(biāo)準(zhǔn)構(gòu)件包括通過(guò)總線162連接到輸入/輸 出設(shè)備164和中央處理單元160的網(wǎng)絡(luò)接ロ卡166。存儲(chǔ)器170也連接到總線162。存儲(chǔ)器170存儲(chǔ)從用戶計(jì)算機(jī)102-1接收到的再現(xiàn)對(duì)象130。此外,存儲(chǔ)器170還存儲(chǔ)分析模塊174,該分析模塊包括用來(lái)分析再現(xiàn)對(duì)象130的可執(zhí)行指令。可以將任意數(shù)目的分析編碼為分析模塊174,下面提供其例子。因此,本發(fā)明提供ー種分析查詢優(yōu)化器性能的技術(shù)。優(yōu)勢(shì)在于,所述分析的執(zhí)行是與用戶計(jì)算機(jī)分開(kāi)的,因此不會(huì)中斷所使用的用戶計(jì)算機(jī)的運(yùn)行。此外,配置再現(xiàn)對(duì)象來(lái)提供用戶愿意分享的系統(tǒng)信息。另有優(yōu)點(diǎn)是,再現(xiàn)對(duì)象不需要包含實(shí)際用戶數(shù)據(jù)。再現(xiàn)對(duì)象的分析與所使用的用戶系統(tǒng)分開(kāi)執(zhí)行。分析的結(jié)果可以和推薦的軟件修復(fù)一起發(fā)送給用戶。特別地,分析模塊174可將查詢優(yōu)化器報(bào)告反饋給用戶。在某些情況下,分析模塊174提供軟件補(bǔ)丁和/或推薦的設(shè)置以提高系統(tǒng)性能。圖2示出再現(xiàn)對(duì)象130的一個(gè)實(shí)施例。再現(xiàn)對(duì)象130包括輸入查詢202,其是查詢優(yōu)化處理的主體。輸入查詢用于從數(shù)據(jù)源中檢索數(shù)據(jù)的正式表達(dá)。再現(xiàn)對(duì)象130還包括查詢方案對(duì)象204,所述查詢方案對(duì)象是應(yīng)用于數(shù)據(jù)庫(kù)122以執(zhí)行指定的輸入查詢202的查詢方案。也就是說(shuō),該查詢方案是針對(duì)數(shù)據(jù)庫(kù)的輸入查詢的最佳執(zhí)行的ー組操作。再現(xiàn)對(duì)象130還包括數(shù)據(jù)庫(kù)模式信息206。數(shù)據(jù)庫(kù)模式至少包括關(guān)系數(shù)據(jù)庫(kù)的各個(gè)表的描述。再現(xiàn)對(duì)象130還包括數(shù)據(jù)庫(kù)統(tǒng)計(jì)208。數(shù)據(jù)庫(kù)統(tǒng)計(jì)是表征數(shù)據(jù)庫(kù)內(nèi)的條目的指標(biāo)。最后,再現(xiàn)對(duì)象130包括系統(tǒng)數(shù)據(jù)210。系統(tǒng)數(shù)據(jù)210包括表征處理查詢方案對(duì)象的物理機(jī)器和物理機(jī)器的性能的指標(biāo)。所述數(shù)據(jù)可以包括機(jī)器的數(shù)目、可用的存儲(chǔ)器和散列集合等
坐寸ο 圖3示出與本發(fā)明ー實(shí)施例相關(guān)的運(yùn)行過(guò)程。在300,監(jiān)視事件觸發(fā)。特別地,采集模塊128監(jiān)視事件觸發(fā)。事件觸發(fā)可能是指定的查詢、假設(shè)情景分析、系統(tǒng)崩潰、對(duì)再現(xiàn)對(duì)象的請(qǐng)求或任何其他預(yù)定事件的提交。在302,響應(yīng)于該事件觸發(fā),構(gòu)造再現(xiàn)對(duì)象。然后在304,傳送該再現(xiàn)對(duì)象。例如,將再現(xiàn)對(duì)象130從用戶計(jì)算機(jī)102-1傳送到測(cè)試計(jì)算機(jī)104-1。然后在306,分析再現(xiàn)對(duì)象。例如,測(cè)試計(jì)算機(jī)104-1的分析模塊174可以被用于分析再現(xiàn)對(duì)象130。在一個(gè)實(shí)施例中,再現(xiàn)對(duì)象130是根據(jù)稱為數(shù)據(jù)交換語(yǔ)言(DXL)的語(yǔ)法定義的以可擴(kuò)展標(biāo)記語(yǔ)言(XML)編碼的對(duì)象。在附錄中提供了此種再現(xiàn)對(duì)象的標(biāo)有注釋的例子。根據(jù)本發(fā)明的實(shí)施例也可以使用其他編碼。除了圖2中所示的構(gòu)件以外,再現(xiàn)對(duì)象還可包括上下文信息,比如配置參數(shù)、與內(nèi)部?jī)?yōu)化步驟的順序和結(jié)果有關(guān)的追蹤信息(如定時(shí)信息)和相關(guān)信息。優(yōu)選地,針對(duì)可擴(kuò)展性優(yōu)化該再現(xiàn)對(duì)象以發(fā)展多個(gè)版本。非常可取的格式是詳細(xì)的、人可讀的,并且支持標(biāo)準(zhǔn)查詢語(yǔ)言,如Xpath或者Xquery,以便于統(tǒng)計(jì)分析。再現(xiàn)對(duì)象格式的優(yōu)選性能包括版本控制,以明確識(shí)別軟件和協(xié)議的版本;壓縮,以通過(guò)郵件或其他介質(zhì)傳送;加密;人可讀;適于利用標(biāo)準(zhǔn)XML編輯器分析;適于通過(guò)標(biāo)準(zhǔn)XML查詢工具查詢;以及易于在支持存儲(chǔ)XML的任何數(shù)據(jù)庫(kù)中歸檔。一旦觸發(fā),采集模塊128將詢問(wèn)優(yōu)化器的所有軟件構(gòu)件,并請(qǐng)求將所有相關(guān)數(shù)據(jù)序列化。例如,查詢優(yōu)化器126可包括優(yōu)化上下文信息、元數(shù)據(jù)緩存、語(yǔ)法分析程序和捜索模塊,詢問(wèn)每個(gè)構(gòu)件均的信息。在一個(gè)實(shí)施例中,所有組件使用標(biāo)準(zhǔn)抽象API連接在一起;每個(gè)構(gòu)件獨(dú)立地判定什么信息是相關(guān)的。理想地,任何新加的構(gòu)件都提供回調(diào)函數(shù)。優(yōu)選地,采集模塊128不干擾實(shí)際查詢的執(zhí)行,也就是說(shuō),好像采集模塊沒(méi)有運(yùn)行ー樣執(zhí)行或中斷查詢。在一個(gè)實(shí)施例中,通過(guò)例如作為數(shù)據(jù)訪問(wèn)協(xié)議的一部分的SQL或者其他通用配置機(jī)制來(lái)顯示用于生成再現(xiàn)對(duì)象的句法。例如,作為ー種開(kāi)放源碼的對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的PostgreSQL(Postges)支持通過(guò)如下句法改變配置SET EXPLAIN_DXL = on這中開(kāi)啟所有后續(xù)語(yǔ)句的再現(xiàn)對(duì)象,直到配置改變?yōu)镾ET EXPLAIN_DXL = off該配置改變獨(dú)立于工作負(fù)載,也就是說(shuō),實(shí)際工作負(fù)載的句法不需要被改變。由內(nèi)部事件(例如崩潰)觸發(fā)的再現(xiàn)對(duì)象的產(chǎn)生可以被下列語(yǔ)句調(diào)用SET EXPLAIN_DXL = on
〈offending statement〉SET EXPLAIN_DXL = off.該再現(xiàn)對(duì)象格式便于將最后得到的結(jié)構(gòu)存儲(chǔ)/記錄在標(biāo)準(zhǔn)記錄設(shè)施中,例如數(shù)據(jù)中心監(jiān)控基礎(chǔ)設(shè)施。使用這些外部設(shè)施、額外的后處理如將再現(xiàn)對(duì)象自動(dòng)發(fā)送到測(cè)試計(jì)算機(jī)104-1 (如供應(yīng)商的支持部門(mén))變得可能。分析模塊174可以作為匹配或相似軟件版本的獨(dú)立優(yōu)化過(guò)程來(lái)實(shí)現(xiàn)。載入機(jī)構(gòu)讀取再現(xiàn)對(duì)象并從再現(xiàn)對(duì)象獲取的地方開(kāi)始重演優(yōu)化。通過(guò)向語(yǔ)法分析程序發(fā)送原始查詢表達(dá)來(lái)開(kāi)始該重演。可選地,可以利用來(lái)自再現(xiàn)對(duì)象的信息,例如優(yōu)化上下文和元數(shù)據(jù)緩存信息,來(lái)準(zhǔn)備優(yōu)化器中的構(gòu)件。在優(yōu)化重演期間,不同的優(yōu)化器構(gòu)件可使用標(biāo)準(zhǔn)回調(diào)機(jī)制來(lái) 請(qǐng)求額外的信息,標(biāo)準(zhǔn)回調(diào)機(jī)制能夠從其它數(shù)據(jù)庫(kù)處理導(dǎo)入該信息,如優(yōu)化上下文信息或元數(shù)據(jù)。載入器截取這些請(qǐng)求并以從再現(xiàn)對(duì)象提取的信息來(lái)響應(yīng)。該截取機(jī)制將正在重演的優(yōu)化與其它數(shù)據(jù)庫(kù)處理斷開(kāi)。這就使得不需要訪問(wèn)數(shù)據(jù)庫(kù)系統(tǒng)就可以孤立地重演優(yōu)化,包括在不同硬件平臺(tái)上重演(不同硬件配置、不同的操作系統(tǒng)等等)。分析模塊174可包括用于支持許多再現(xiàn)對(duì)象分析的可執(zhí)行指令。例如,分析模塊174可以包括分析查詢優(yōu)化器崩潰的可執(zhí)行指令。在這種情況下,優(yōu)化器在SQL語(yǔ)句優(yōu)化期間由于軟件缺陷而崩潰。內(nèi)部錯(cuò)誤處理機(jī)制開(kāi)始運(yùn)行并自動(dòng)激活再現(xiàn)對(duì)象的采集和導(dǎo)出。再現(xiàn)對(duì)象被發(fā)送至測(cè)試計(jì)算機(jī)104_1。最終得到的再現(xiàn)對(duì)象可被用于在相同軟件版本的優(yōu)化器的単獨(dú)副本上再現(xiàn)該事件。該問(wèn)題能夠被解決而不需要工程師訪問(wèn)生產(chǎn)系統(tǒng),也不需要停機(jī)時(shí)間。工程部門(mén)開(kāi)發(fā)出修復(fù),并且在最終傳送給客戶之前檢驗(yàn)該修復(fù)。在一個(gè)實(shí)施例中,再現(xiàn)對(duì)象提供一種完整的并且完全自主的退化測(cè)試,該退化測(cè)試能夠被編入工程部門(mén)的日常退化測(cè)試中。分析模塊174還可以被編碼用來(lái)評(píng)定次優(yōu)的查詢方案。在這種情形下,用戶注意意外的查詢行為,例如,意外地執(zhí)行緩慢,這可能因?yàn)槭谴蝺?yōu)方案。理解這種行為變化是非瑣細(xì)的并且通常不表明是軟件缺陷,而僅是由于用戶數(shù)據(jù)中的重大變化。用戶使用句法擴(kuò)展生成再現(xiàn)對(duì)象。該再現(xiàn)對(duì)象被傳送至測(cè)試計(jì)算機(jī)104-1中的分析模塊174。分析模塊174能夠評(píng)估感知到的缺陷。分析模塊174也能夠用可執(zhí)行指令編碼來(lái)評(píng)估不正確的方案。在這種情形下,用戶在執(zhí)行特定查詢時(shí)候注意到錯(cuò)誤結(jié)果。用戶使用句法擴(kuò)展來(lái)明確地請(qǐng)求再現(xiàn)對(duì)象。該再現(xiàn)對(duì)象被傳送至測(cè)試計(jì)算機(jī)104-1中的分析模塊174。分析模塊174研究原因并辨別是優(yōu)化器存在缺陷還是由于正確的查詢方案的執(zhí)行錯(cuò)誤導(dǎo)致錯(cuò)誤結(jié)果。在優(yōu)化器存在缺陷的情況下,可以調(diào)用上面討論的優(yōu)化器崩潰工作流。在執(zhí)行錯(cuò)誤的情況下,可以應(yīng)用傳統(tǒng)的故障排除技木。分析模塊174也可被執(zhí)行用于支持工作流監(jiān)視和記錄。典型的工作流由每隔一段時(shí)間運(yùn)行的幾百個(gè)查詢組成。通常認(rèn)為“重要”查詢的ー個(gè)小子集是性能關(guān)鍵。在調(diào)整該系統(tǒng)之后,用戶為該關(guān)鍵查詢生成再現(xiàn)對(duì)象并將其歸檔(例如,將它們存儲(chǔ)到數(shù)據(jù)庫(kù)中)。在數(shù)據(jù)庫(kù)軟件升級(jí)之后發(fā)生方案退化(查詢的性能降低)的情況下,用戶可以將一新的再現(xiàn)對(duì)象和歸檔的再現(xiàn)對(duì)象進(jìn)行比較,并確定性能降低是否歸因于軟件退化。分析模塊174也可被執(zhí)行來(lái)支持假設(shè)分析。為了調(diào)整的目的,理解哪個(gè)數(shù)據(jù)庫(kù)對(duì)象以何種方式和頻率使用是非常有幫助的。原始的查詢文本包含對(duì)數(shù)據(jù)庫(kù)對(duì)象如表格的引用,但是優(yōu)化器根據(jù)附加的對(duì)象引用如索引來(lái)做決定。為了正確調(diào)整系統(tǒng),需要理解對(duì)這些對(duì)象的準(zhǔn)確應(yīng)用。用戶可以記錄工作流并將最終得到的再現(xiàn)對(duì)象歸檔到數(shù)據(jù)庫(kù)中。之后,數(shù)據(jù)可被查詢來(lái)確定對(duì)象的某些特征。實(shí)例包括根據(jù)索引的有用性將索引分級(jí),確定等同性謂詞中那些列被頻繁使用以產(chǎn)生它們的索引,以及基于在記錄的工作流上的查詢識(shí)別調(diào)整機(jī)會(huì)。也可通過(guò)改變環(huán)境設(shè)置,比如添加存儲(chǔ)器、添加機(jī)器等,來(lái)執(zhí)行假設(shè)情景分析。本領(lǐng)域技術(shù)人員能夠得知本發(fā)明的很多相關(guān)優(yōu)點(diǎn)。再現(xiàn)對(duì)象允許“重演”問(wèn)題并對(duì)其分析。例如,當(dāng)識(shí)別出軟件缺陷時(shí),再現(xiàn)對(duì)象能夠被用來(lái)開(kāi)發(fā)工作區(qū)作為臨時(shí)措施或者被用來(lái)幫助開(kāi)發(fā)優(yōu)化器代碼的修復(fù)并且在發(fā)布給客戶之前驗(yàn)證該修復(fù)。一旦開(kāi)發(fā)出修復(fù),再現(xiàn)對(duì)象就獲取關(guān)鍵測(cè)試案例用于退化測(cè)試。再現(xiàn)對(duì)象是自主的,并且在沒(méi)有人工干預(yù)的情況下生成,因而消除了管理上的錯(cuò)誤。如果優(yōu)化器為系統(tǒng)請(qǐng)求額外的元數(shù)據(jù),那么在優(yōu)化期間再現(xiàn)對(duì)象可能増大。盡管再現(xiàn)對(duì)象一般是響應(yīng)于觸發(fā)的事件而產(chǎn)生的,但是也可以綜合生成再現(xiàn)對(duì)象與產(chǎn)生測(cè)試案例。再現(xiàn)對(duì)象可被存儲(chǔ)和分析以用于統(tǒng)計(jì)目的,例如,用于檢測(cè)查詢或模式特性與崩潰或次優(yōu)結(jié)果之間的相互關(guān)系。錯(cuò)誤報(bào)告提供當(dāng)系統(tǒng)故障或者崩潰時(shí)的瞬態(tài)信息。這種報(bào)告可以滿足簡(jiǎn)單處理的需要,例如在單個(gè)機(jī)器上運(yùn)行的單個(gè)應(yīng)用程序。另ー方面,這種工具對(duì)復(fù)雜的應(yīng)用程序或者在多個(gè)機(jī)器上運(yùn)行的應(yīng)用程序沒(méi)有太大幫助。在這種情境下,需要隨時(shí)跟蹤各種系統(tǒng)參數(shù)。如下所示的示例性的再現(xiàn)對(duì)象,不僅僅是在系統(tǒng)崩潰吋,而是隨時(shí)跟蹤系統(tǒng)參數(shù)。因此,該再現(xiàn)對(duì)象不僅用于故障檢測(cè),也適用于優(yōu)化運(yùn)行(也就是不包含系統(tǒng)崩潰,而是結(jié)果似乎是次優(yōu)的)。本發(fā)明的ー實(shí)施例涉及具有計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的計(jì)算機(jī)存儲(chǔ)產(chǎn)品,該介質(zhì)上具有用于進(jìn)行各種計(jì)算機(jī)執(zhí)行的操作的計(jì)算機(jī)代碼。該媒介和計(jì)算機(jī)代碼可以是特別為本發(fā)明的目的設(shè)計(jì)和構(gòu)造的,或者可以是在計(jì)算機(jī)軟件領(lǐng)域的技術(shù)人員廣泛知曉和可用的。例如計(jì)算機(jī)可讀介質(zhì)的例子包括但不限于磁性介質(zhì),如硬盤(pán)、軟盤(pán)和磁帶;光學(xué)介質(zhì),如CD-ROM、DVD和全息裝置;磁光介質(zhì);專門(mén)配置用來(lái)存儲(chǔ)和執(zhí)行程序代碼的硬件裝置,如專用集成電路(“ASIC”)、可編程邏輯器件(“PLD”)、R0M和RAM裝置。計(jì)算機(jī)代碼的例子包括機(jī)器代碼,如由編譯器產(chǎn)生的,以及由計(jì)算機(jī)使用解釋器來(lái)執(zhí)行的包含高級(jí)代碼的文件。例如,本發(fā)明ー實(shí)施例可用JAVA 、C++、其他面向?qū)ο缶幊陶Z(yǔ)言和開(kāi)發(fā)工具來(lái)實(shí)現(xiàn)。本發(fā)明的另ー實(shí)施例可以使用硬連線電路代替或者結(jié)合機(jī)器可執(zhí)行的軟件指令來(lái)實(shí)現(xiàn)。為了解釋的目的,前面的描述使用了特定的術(shù)語(yǔ)以提供對(duì)本發(fā)明的全面理解。然而,對(duì)于本領(lǐng)域技術(shù)人員來(lái)講很明顯,不需要具體的細(xì)節(jié)就能夠?qū)崿F(xiàn)本發(fā)明。因此,前面對(duì)本發(fā)明的具體實(shí)施例的描述是為了說(shuō)明和描述的目的而給出的。它們不意圖是詳盡的或者將本發(fā)明限制于所公開(kāi)的精確形式;顯然,鑒于上述教導(dǎo),很多修改和變化都是可能的。這些實(shí)施例被選定和描述是為了最好地解釋本發(fā)明的原理及其實(shí)際應(yīng)用,因此它們使本領(lǐng)域技術(shù)人員能夠最好地應(yīng)用本發(fā)明以及具有各種修改的各種實(shí)施例,以適合于特定的預(yù)期應(yīng)用。所附權(quán)利要求及其等價(jià)定義意圖限定出本發(fā)明的范圍。附錄
權(quán)利要求
1.ー種分析查詢優(yōu)化器性能的方法,包括 識(shí)別事件觸發(fā); 在用戶計(jì)算機(jī)上構(gòu)造表征所述事件觸發(fā)時(shí)所述用戶計(jì)算機(jī)的運(yùn)行參數(shù)的再現(xiàn)對(duì)象; 將所述再現(xiàn)對(duì)象從所述用戶計(jì)算機(jī)傳送到測(cè)試計(jì)算機(jī);以及 在所述測(cè)試計(jì)算機(jī)上分析所述再現(xiàn)對(duì)象以表征查詢優(yōu)化器的性能。
2.根據(jù)權(quán)利要求I所述的方法,其中所述識(shí)別包括識(shí)別從查詢優(yōu)化器崩潰、特定查詢的提交和對(duì)再現(xiàn)對(duì)象的請(qǐng)求當(dāng)中選擇的事件觸發(fā)。
3.根據(jù)權(quán)利要求I所述的方法,其中所述運(yùn)行參數(shù)包括輸入查詢、查詢方案對(duì)象、數(shù)據(jù)庫(kù)模式信息、數(shù)據(jù)庫(kù)統(tǒng)計(jì)和物理系統(tǒng)數(shù)據(jù)。
4.根據(jù)權(quán)利要求I所述的方法,其中所述分析包括分析查詢優(yōu)化器崩潰。
5.根據(jù)權(quán)利要求I所述的方法,其中所述分析包括分析次優(yōu)查詢方案。
6.根據(jù)權(quán)利要求I所述的方法,其中所述分析包括分析不正確的查詢方案。
7.根據(jù)權(quán)利要求I所述的方法,其中所述分析包括分析工作流。
8.根據(jù)權(quán)利要求I所述的方法,其中所述分析包括執(zhí)行假設(shè)情景分析。
9.ー種用戶計(jì)算機(jī),包括 處理器;及 連接到所述處理器的存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)采集模塊,所述采集模塊包括指令,所述指令用于使所述處理器 識(shí)別事件觸發(fā); 構(gòu)造表征所述事件觸發(fā)時(shí)所述用戶計(jì)算機(jī)的運(yùn)行參數(shù)的再現(xiàn)對(duì)象;以及 將所述再現(xiàn)對(duì)象從所述用戶計(jì)算機(jī)傳送到測(cè)試計(jì)算機(jī)。
10.根據(jù)權(quán)利要求9所述的用戶計(jì)算機(jī),其中用于識(shí)別事件觸發(fā)的可執(zhí)行指令包括用于識(shí)別從查詢優(yōu)化器崩潰、特定查詢的提交和對(duì)再現(xiàn)對(duì)象的請(qǐng)求當(dāng)中選擇的事件觸發(fā)的可執(zhí)行指令。
11.根據(jù)權(quán)利要求9所述的用戶計(jì)算機(jī),其中所述運(yùn)行參數(shù)包括輸入查詢、查詢方案對(duì)象、數(shù)據(jù)庫(kù)模式信息、數(shù)據(jù)庫(kù)統(tǒng)計(jì)和物理系統(tǒng)數(shù)據(jù)。
12.—種測(cè)試計(jì)算機(jī),包括 處理器; 連接到所述處理器的存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)分析模塊,所述分析模塊包括指令,所述指令使所述處理器 分析表征事件觸發(fā)時(shí)用戶計(jì)算機(jī)的運(yùn)行參數(shù)的再現(xiàn)對(duì)象,以表征所述用戶計(jì)算機(jī)的查詢優(yōu)化器的性能。
13.根據(jù)權(quán)利要求12所述的測(cè)試計(jì)算機(jī),其中所述運(yùn)行參數(shù)包括輸入查詢、查詢方案對(duì)象、數(shù)據(jù)庫(kù)模式信息、數(shù)據(jù)庫(kù)統(tǒng)計(jì)和物理系統(tǒng)數(shù)據(jù)。
14.根據(jù)權(quán)利要求12所述的測(cè)試計(jì)算機(jī),其中用于分析的可執(zhí)行指令包括用于分析查詢優(yōu)化器崩潰的可執(zhí)行指令。
15.根據(jù)權(quán)利要求12所述的測(cè)試計(jì)算機(jī),其中用于分析的可執(zhí)行指令包括用于分析次優(yōu)查詢方案的可執(zhí)行指令。
16.根據(jù)權(quán)利要求12所述的測(cè)試計(jì)算機(jī),其中用于分析的可執(zhí)行指令包括用于分析不正確的查詢方案的可執(zhí)行指令。
17.根據(jù)權(quán)利要求12所述的測(cè)試計(jì)算機(jī),其中用于分析的可執(zhí)行指令包括用于分析エ作流的可執(zhí)行指令。
18.根據(jù)權(quán)利要求12所述的測(cè)試計(jì)算機(jī),其中用于分析的可執(zhí)行指令包括用于分析假設(shè)情景的可執(zhí)行指令。
全文摘要
一種分析查詢優(yōu)化器性能的方法包括識(shí)別事件觸發(fā)。構(gòu)造表征事件觸發(fā)時(shí)用戶計(jì)算機(jī)的運(yùn)行參數(shù)的再現(xiàn)對(duì)象。將該再現(xiàn)對(duì)象從用戶計(jì)算機(jī)傳送到測(cè)試計(jì)算機(jī)。在測(cè)試計(jì)算機(jī)上分析該再現(xiàn)對(duì)象來(lái)表征查詢優(yōu)化器的性能。
文檔編號(hào)G06F11/30GK102687124SQ201080059390
公開(kāi)日2012年9月19日 申請(qǐng)日期2010年12月13日 優(yōu)先權(quán)日2009年12月23日
發(fā)明者威廉·C·惠普奇, 布萊恩·哈根布赫, 弗洛里安·瓦斯, 西瓦拉姆克里斯南·納拉亞南 申請(qǐng)人:伊姆西公司