專利名稱:使用語句執(zhí)行計(jì)劃獲取依賴性元數(shù)據(jù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫系統(tǒng),尤其涉及數(shù)據(jù)庫語句執(zhí)行計(jì)劃的使用。
背景技術(shù):
數(shù)據(jù)庫可在其系統(tǒng)目錄和/或視圖中,或使用某一其它機(jī)制來存儲(chǔ)其對(duì)象的依賴性信息。這種依賴性信息可被用于沖突分析、數(shù)據(jù)世系(lineage)、和/或其它功能。
發(fā)明內(nèi)容
此處所述的工具和技術(shù)涉及使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃以獲得依賴性元數(shù)據(jù)(例如,表示對(duì)象之間的依賴性的元數(shù)據(jù))。在一個(gè)實(shí)施例中,該工具和技術(shù)可包括從數(shù)據(jù)庫服務(wù)器獲取數(shù)據(jù)庫語句的執(zhí)行計(jì)劃。如此處所使用的,數(shù)據(jù)庫語句是在數(shù)據(jù)庫上執(zhí)行操作的請(qǐng)求,或是對(duì)該請(qǐng)求的引用。例如,該請(qǐng)求可為修改數(shù)據(jù)庫的至少一部分的請(qǐng)求、在數(shù)據(jù)庫上執(zhí)行查詢的請(qǐng)求等。數(shù)據(jù)庫語句可為特定語言,例如結(jié)構(gòu)化查詢語言(SQL)專業(yè)用語。執(zhí)行計(jì)劃是列出在完成數(shù)據(jù)庫語句所請(qǐng)求的總體操作時(shí)要執(zhí)行的子操作的數(shù)據(jù)結(jié)構(gòu)。對(duì)對(duì)象的引用可在執(zhí)行計(jì)劃中被標(biāo)識(shí),來自引用的元數(shù)據(jù)(即使用引用提取的元數(shù)據(jù))可被組合在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的數(shù)據(jù)結(jié)構(gòu)中。元數(shù)據(jù)可反映對(duì)對(duì)象的依賴性。在另一個(gè)實(shí)施例中,該工具和技術(shù)可包括在軟件制品中標(biāo)識(shí)數(shù)據(jù)庫語句。軟件制品涉及一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上的軟件組件,其中該軟件組件可使用數(shù)據(jù)庫語句。 軟件制品可以是多種形式的任一種,例如程序或程序的一部分、被程序執(zhí)行的指令、SQL Server⑧集成服務(wù)包,等等。在執(zhí)行計(jì)劃中,可檢索到用于數(shù)據(jù)庫語句的執(zhí)行計(jì)劃,且可標(biāo)識(shí)對(duì)對(duì)象的引用。來自引用的元數(shù)據(jù)可被組合在數(shù)據(jù)結(jié)構(gòu)中,其中元數(shù)據(jù)可反映軟件制品對(duì)對(duì)象的依賴性。在又一個(gè)實(shí)施例中,該工具和技術(shù)可包括檢索數(shù)據(jù)庫語句的執(zhí)行計(jì)劃并標(biāo)識(shí)該執(zhí)行計(jì)劃中到對(duì)象的引用。來自引用的元數(shù)據(jù)可被組合在數(shù)據(jù)結(jié)構(gòu)中。元數(shù)據(jù)可反映對(duì)對(duì)象的依賴性。另外,可用來自引用的元數(shù)據(jù)來擴(kuò)展(augment)其它依賴性元數(shù)據(jù)。提供本發(fā)明內(nèi)容是為了以簡化的形式介紹一些概念。這些概念將在以下具體實(shí)施方式
中進(jìn)一步描述。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。類似地,本發(fā)明不限于解決在背景技術(shù)具體實(shí)施方式
、或附圖中討論的特定技術(shù)、工具、環(huán)境、缺點(diǎn)、或優(yōu)點(diǎn)的實(shí)現(xiàn)。
圖1是其中可實(shí)現(xiàn)所描述的各實(shí)施例中的一個(gè)或多個(gè)實(shí)施例的合適的計(jì)算環(huán)境的框圖。圖2是依賴性元數(shù)據(jù)環(huán)境的示意圖。圖3是用于使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃獲得依賴性元數(shù)據(jù)的技術(shù)的流程圖。
4
圖4是用于使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃獲得依賴性元數(shù)據(jù)的另一技術(shù)的流程圖。圖5是用于使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃獲得依賴性元數(shù)據(jù)的又一技術(shù)的流程圖。
具體實(shí)施例方式此處所述的實(shí)施例涉及用于通過使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃的改進(jìn)的依賴性元數(shù)據(jù)檢索和組合的技術(shù)和工具。這樣的改進(jìn)可源于分開或組合地使用各種技術(shù)和工具。這種技術(shù)和工具可包括通過發(fā)送語句到數(shù)據(jù)庫服務(wù)器并請(qǐng)求該語句的執(zhí)行計(jì)劃以獲得該數(shù)據(jù)庫語句的依賴性信息。執(zhí)行計(jì)劃中的信息可被用于標(biāo)識(shí)服務(wù)器中語句對(duì)對(duì)象的依賴性。例如,可在軟件制品中標(biāo)識(shí)數(shù)據(jù)庫語句,且可從數(shù)據(jù)庫服務(wù)器檢索該數(shù)據(jù)庫語句的執(zhí)行計(jì)劃。所檢索的執(zhí)行計(jì)劃可被解析,該執(zhí)行計(jì)劃中對(duì)對(duì)象的引用可被標(biāo)識(shí)。使用這些引用,可組合依賴性元數(shù)據(jù)。這些依賴性元數(shù)據(jù)可反映軟件制品對(duì)執(zhí)行計(jì)劃中所引用的對(duì)象的依賴性。這些依賴性元數(shù)據(jù)可以通過以下方式被處理使其相關(guān)(即,通過比較元數(shù)據(jù)的不同部分,例如以標(biāo)識(shí)重復(fù)條目)、移除可能找到的重復(fù)條目、組合元數(shù)據(jù)、并使用該元數(shù)據(jù)以擴(kuò)展其它依賴性元數(shù)據(jù)(例如,使用相同技術(shù)為其它數(shù)據(jù)庫語句提取的元數(shù)據(jù),和/ 或使用可能不使用執(zhí)行計(jì)劃的其它技術(shù)所提取的元數(shù)據(jù))。由此,從此處描述的工具和技術(shù)中可以實(shí)現(xiàn)一個(gè)或多個(gè)實(shí)質(zhì)的益處。例如,在數(shù)據(jù)庫服務(wù)器所生成的執(zhí)行計(jì)劃中可用的信息可被用于提取對(duì)應(yīng)于該計(jì)劃的數(shù)據(jù)庫語句的依賴性元數(shù)據(jù)。因此,可為被配置為發(fā)出該語句的軟件制品提取依賴性數(shù)據(jù)。因此,用于軟件制品的依賴性元數(shù)據(jù)甚至可在用戶不標(biāo)識(shí)對(duì)象名以提供給數(shù)據(jù)庫服務(wù)器的情況下被標(biāo)識(shí)和組合。然而,所附權(quán)利要求中定義的主題不必限于本文描述的益處。本發(fā)明的特定實(shí)現(xiàn)可提供本文描述的益處的全部、一些、或未提供本文描述的益處。盡管本文出于呈現(xiàn)的目的以特定的順序次序描述了用于各種技術(shù)的操作,但應(yīng)理解除非要求特定的排序,否則這種描述方式涵蓋了操作順序上的重新安排。例如,在某些情況下,可以重新安排或并發(fā)執(zhí)行順序地描述的操作。本文參照流程圖描述的技術(shù)可被用于本文描述的一個(gè)或多個(gè)系統(tǒng)和/或用于一個(gè)或多個(gè)其他系統(tǒng)。例如,本文描述的各種過程可用硬件或軟件、或兩者的組合來實(shí)現(xiàn)。此外,為了簡單起見,流程圖可能未示出可結(jié)合其他技術(shù)來使用特定技術(shù)的各種方式。I.示例性計(jì)算環(huán)境圖1示出其中可實(shí)現(xiàn)所描述的各實(shí)施例中的一個(gè)或多個(gè)實(shí)施例的合適的計(jì)算環(huán)境(100)的一般化示例。例如,一個(gè)或多個(gè)此種計(jì)算環(huán)境可被用作數(shù)據(jù)庫服務(wù)器和/或用于使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃以獲取依賴性元數(shù)據(jù)的環(huán)境。一般而言,可使用各種不同的通用或?qū)S糜?jì)算系統(tǒng)配置。適用于此處所描述的工具和技術(shù)的公知計(jì)算系統(tǒng)配置的示例包括, 但不限于,服務(wù)器場和服務(wù)器群集、個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型計(jì)算機(jī)、包括上述系統(tǒng)或設(shè)備中的任一個(gè)的分布式計(jì)算環(huán)境等。計(jì)算環(huán)境(100)不旨在對(duì)本發(fā)明的使用范圍或功能提出任何限制,因?yàn)楸景l(fā)明可以在完全不同的通用或?qū)S糜?jì)算環(huán)境中實(shí)現(xiàn)。參考圖1,計(jì)算環(huán)境(100)包括至少一個(gè)處理單元(110)和存儲(chǔ)器(120)。在圖1 中,這一最基本的配置(130)被包括在虛線內(nèi)。處理單元(110)執(zhí)行計(jì)算機(jī)可執(zhí)行指令,并且可以是真實(shí)或虛擬處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令以提高處理能力。存儲(chǔ)器(120)可以是易失性存儲(chǔ)器(例如,寄存器、高速緩存、RAM)、非易失性存儲(chǔ)器(例如,R0M、EEPR0M、閃存)、或兩者的某種組合。存儲(chǔ)器(120)存儲(chǔ)軟件(180),軟件可包括一個(gè)或多個(gè)實(shí)現(xiàn)使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃獲取依賴性元數(shù)據(jù)的軟件應(yīng)用程序。盡管為了清楚起見用線條示出了圖1的各框,但是,實(shí)際上,描繪各組件并不是那樣清楚,并且用比喻方法,圖1以及下文討論的其他附圖的線條更精確地將是灰色的和模糊的。例如,可以將諸如顯示設(shè)備的呈現(xiàn)組件認(rèn)為是I/O組件。而且,處理器具有存儲(chǔ)器。 發(fā)明人關(guān)于此點(diǎn)認(rèn)識(shí)到,這是本領(lǐng)域的特性,并且重申,圖1的圖示只是例示可結(jié)合本發(fā)明的一個(gè)或多個(gè)實(shí)施例來使用的示例性計(jì)算設(shè)備。諸如“工作站”、“服務(wù)器”、“膝上型計(jì)算機(jī)”、“手持式設(shè)備”等分類之間沒有區(qū)別,它們?nèi)慷急徽J(rèn)為是在圖1的范圍之內(nèi)的并且被稱為“計(jì)算機(jī)”、“計(jì)算環(huán)境”、或“計(jì)算設(shè)備”。計(jì)算環(huán)境(100)可具有附加特征。在圖1中,計(jì)算環(huán)境(100)包括存儲(chǔ)(140)、一個(gè)或多個(gè)輸入設(shè)備(150)、一個(gè)或多個(gè)輸出設(shè)備(160)以及一個(gè)或多個(gè)通信連接(170)。諸如總線、控制器或網(wǎng)絡(luò)等互連機(jī)制(未示出)將計(jì)算環(huán)境(100)的各組件互連。通常,操作系統(tǒng)軟件(未示出)為在計(jì)算環(huán)境(100)中執(zhí)行的其它軟件提供操作環(huán)境,并協(xié)調(diào)計(jì)算環(huán)境(100)的各組件的活動(dòng)。存儲(chǔ)(140)可以是可移動(dòng)或不可移動(dòng)的,并可包括諸如磁盤、磁帶或磁帶盒、 CD-R0M、CD-RW、DVD之類的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),或者可用于儲(chǔ)存信息并可在計(jì)算環(huán)境(100)內(nèi)訪問的任何其它介質(zhì)。存儲(chǔ)(140)儲(chǔ)存用于軟件(180)的指令。輸入設(shè)備(150)可以是諸如鍵盤、鼠標(biāo)、筆或跟蹤球等觸摸輸入設(shè)備;語音輸入設(shè)備;掃描設(shè)備;網(wǎng)絡(luò)適配器;CD/DVD讀取器;或可向計(jì)算環(huán)境(100)提供輸入的另一設(shè)備。 輸出設(shè)備(160)可以是顯示器、打印機(jī)、揚(yáng)聲器、CD/DVD刻錄機(jī)、網(wǎng)絡(luò)適配器、或從計(jì)算環(huán)境 (100)提供輸出的另一設(shè)備。通信連接(170)允許通過通信介質(zhì)與另一計(jì)算實(shí)體進(jìn)行通信。因此,計(jì)算環(huán)境 (100)可使用通往諸如個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或另一常見網(wǎng)絡(luò)節(jié)點(diǎn)等一個(gè)或多個(gè)遠(yuǎn)程計(jì)算設(shè)備的邏輯連接而工作在聯(lián)網(wǎng)環(huán)境中。通信介質(zhì)以已調(diào)制數(shù)據(jù)信號(hào)的形式傳達(dá)諸如數(shù)據(jù)或計(jì)算機(jī)可執(zhí)行指令或請(qǐng)求等信息。已調(diào)制數(shù)據(jù)信號(hào)是以在信號(hào)中編碼信息的方式來設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例而非限制,通信介質(zhì)包括利用電、光、射頻(RF)、紅外線、聲音或其他載體實(shí)現(xiàn)的有線或無線技術(shù)。各種工具和技術(shù)可以在計(jì)算機(jī)可讀介質(zhì)的一般上下文中描述。計(jì)算機(jī)可讀介質(zhì)是可以在計(jì)算環(huán)境內(nèi)被訪問的任何可用介質(zhì)。作為示例而非局限,對(duì)于計(jì)算環(huán)境(100),計(jì)算機(jī)可讀介質(zhì)包括存儲(chǔ)器(120)、存儲(chǔ)(140)、和以上的組合。這些工具和技術(shù)可在諸如程序模塊中所包括的在目標(biāo)真實(shí)或虛擬處理器上的計(jì)算環(huán)境中執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、對(duì)象、類、組件、數(shù)據(jù)結(jié)構(gòu)等等。程序模塊的功能可以按需在各個(gè)實(shí)施例中進(jìn)行組合或在程序模塊之間拆分。程序模塊的計(jì)算機(jī)可執(zhí)行指令可以在本地或分布式計(jì)算環(huán)境內(nèi)執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。出于表示的目的,詳細(xì)描述使用了如“確定”、“選擇”、“調(diào)整”和“操作”等術(shù)語來描述計(jì)算環(huán)境中的計(jì)算機(jī)操作。這些以及其他類似術(shù)語是對(duì)計(jì)算機(jī)執(zhí)行的操作的高層抽象, 并且不應(yīng)混淆于人類執(zhí)行的動(dòng)作,除非明確指出人類(諸如“用戶”)的動(dòng)作執(zhí)行。對(duì)應(yīng)于這些術(shù)語的實(shí)際的計(jì)算機(jī)操作取決于實(shí)現(xiàn)而不同。II.用于使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃獲取元數(shù)據(jù)的系統(tǒng)和環(huán)境圖2是結(jié)合使用其可實(shí)現(xiàn)所描述的各實(shí)施例中的一個(gè)或多個(gè)實(shí)施例的依賴性元數(shù)據(jù)環(huán)境O00)的框圖。依賴性元數(shù)據(jù)環(huán)境(200)可包括軟件制品010),軟件制品(210) 可包括數(shù)據(jù)庫語句,或者換言之,軟件制品(210)可包括發(fā)出一個(gè)或多個(gè)數(shù)據(jù)庫語句(例如通過向一個(gè)或多個(gè)數(shù)據(jù)庫服務(wù)器發(fā)出所述語句)的指令。圖2中所例示的軟件制品(210) 可包括兩個(gè)數(shù)據(jù)庫語句語句1(21 和語句2 016)。數(shù)據(jù)庫語句1(21 可發(fā)至數(shù)據(jù)庫服務(wù)器1 (220),而數(shù)據(jù)庫服務(wù)器1 (220)對(duì)語句1 012)的處理可依賴于可被數(shù)據(jù)庫服務(wù)器 1 (220)本地或遠(yuǎn)程訪問的一個(gè)或多個(gè)對(duì)象022)。因此,語句1(21 的處理和軟件制品 (210)的處理依賴于對(duì)象(22 的狀態(tài)和可用性。數(shù)據(jù)庫語句2(216)可被發(fā)至另一個(gè)數(shù)據(jù)庫服務(wù)器,即數(shù)據(jù)庫服務(wù)器2 030),而數(shù)據(jù)庫服務(wù)器2 (230)對(duì)語句2 (216)的處理可依賴于可被數(shù)據(jù)庫服務(wù)器2 (230)本地和/或遠(yuǎn)程訪問的一個(gè)或多個(gè)對(duì)象032)。例如,數(shù)據(jù)庫服務(wù)器Q20和230)可為關(guān)系數(shù)據(jù)庫的服務(wù)器,其它們可響應(yīng)于SQL語言數(shù)據(jù)庫語句。在處理數(shù)據(jù)庫語句1 (21 時(shí),數(shù)據(jù)庫服務(wù)器1 (220)可遵循一個(gè)執(zhí)行計(jì)劃,即執(zhí)行計(jì)劃1 040)。執(zhí)行計(jì)劃I(MO)可由數(shù)據(jù)庫服務(wù)器1 (220)在接收到數(shù)據(jù)庫語句1(212)時(shí)生成??蛇x地,計(jì)劃I(MO)可為預(yù)先存在的計(jì)劃。例如,數(shù)據(jù)庫服務(wù)器1 (220)可高速緩沖所生成的執(zhí)行計(jì)劃,從而當(dāng)以后再次收到相同數(shù)據(jù)庫語句時(shí),所述計(jì)劃可被再使用。類似地,數(shù)據(jù)庫服務(wù)器2 (230)在處理數(shù)據(jù)庫語句2 (216)時(shí)可遵循另一個(gè)執(zhí)行計(jì)劃,即執(zhí)行計(jì)劃 2(250)。還是參考附圖2,依賴性元數(shù)據(jù)環(huán)境(200)還可包括元數(shù)據(jù)提取環(huán)境(沈0)。例如,元數(shù)據(jù)提取環(huán)境O60)可包括一個(gè)或多個(gè)數(shù)據(jù)庫服務(wù)器和/或數(shù)據(jù)庫客戶機(jī),或者其可在一個(gè)分立的系統(tǒng)中,例如專用于依賴性元數(shù)據(jù)提取和/或沖突分析和世系評(píng)估的分立系統(tǒng)。元數(shù)據(jù)提取環(huán)境(沈0)可執(zhí)行標(biāo)識(shí)語句操作062)以標(biāo)識(shí)來自軟件制品(210)的語句 012和216)??赏ㄟ^解析軟件制品(210)并提取所標(biāo)識(shí)的語句012和216)來執(zhí)行標(biāo)識(shí)語句操作062)。可選地,可以某些其它方式執(zhí)行標(biāo)識(shí)語句操作062),例如通過執(zhí)行軟件制品(210)并在該軟件制品執(zhí)行時(shí)分析其所發(fā)出的語句012和216)來執(zhí)行標(biāo)識(shí)語句操作 (262)。元數(shù)據(jù)提取環(huán)境(沈0)還可執(zhí)行獲取計(jì)劃操作(沈4),獲取計(jì)劃操作可包括從數(shù)據(jù)庫服務(wù)器O20和230)檢索所標(biāo)識(shí)語句012和216)的執(zhí)行計(jì)劃Q40和250)。這可包括為每個(gè)數(shù)據(jù)庫語句檢索超過一個(gè)執(zhí)行計(jì)劃,例如在一個(gè)數(shù)據(jù)庫語句在多個(gè)批次中被處理時(shí),其中為每個(gè)批次生成一個(gè)執(zhí)行計(jì)劃。元數(shù)據(jù)提取環(huán)境(沈0)還可對(duì)所檢索的執(zhí)行計(jì)劃O40和250)執(zhí)行解析和引用標(biāo)識(shí)操作066)以標(biāo)識(shí)計(jì)劃Q40和250)中的對(duì)象引用。執(zhí)行計(jì)劃O40或250)中的這種對(duì)象引用可展示對(duì)應(yīng)語句012和216)的處理所依賴的對(duì)象022或23幻。因此,對(duì)執(zhí)行計(jì)劃 O40或250)中的對(duì)象的引用可顯示對(duì)應(yīng)語句012或216)的處理依賴于那些對(duì)象,且因此顯示可能發(fā)出對(duì)應(yīng)語句012或216)的軟件制品(210)也依賴于那些對(duì)象。執(zhí)行解析和引用標(biāo)識(shí)操作(266)可包括調(diào)用用于特定語言專用術(shù)語(例如,特定的SQL專用術(shù)語)或用
7于特定數(shù)據(jù)庫服務(wù)器類型的解析模塊。例如,一個(gè)解析器可用于來自微軟SQL krver· 數(shù)據(jù)庫服務(wù)器的執(zhí)行計(jì)劃,另一個(gè)解析器可用于來自O(shè)racle數(shù)據(jù)庫服務(wù)器的執(zhí)行計(jì)劃,其它解析器可用于其它類型的數(shù)據(jù)庫服務(wù)器。對(duì)應(yīng)的解析器可解析執(zhí)行計(jì)劃,將結(jié)果轉(zhuǎn)化成可由元數(shù)據(jù)提取環(huán)境O60)的其它組件所使用的形式。使用在計(jì)劃Q40和250)中所標(biāo)識(shí)的那些引用,元數(shù)據(jù)提取環(huán)境Q60)可對(duì)所得的依賴性數(shù)據(jù)(270)執(zhí)行相關(guān)、組合、以及擴(kuò)展操作072)。相關(guān)可包括比較和確定依賴性元數(shù)據(jù)Q70)中不同條目之間的相關(guān)性,這可包括確定在依賴性元數(shù)據(jù)O70)中是否有任何重復(fù)的條目。這可使用已知的分類和/或匹配技術(shù)來完成。例如可通過將兩個(gè)重復(fù)引用中的一個(gè)刪除來消除這種重復(fù)條目。組合可包括可能在轉(zhuǎn)化、存儲(chǔ)、或以其他方式處理引用和/或數(shù)據(jù)結(jié)構(gòu)之后,將執(zhí)行計(jì)劃O40或250)中所標(biāo)識(shí)的引用組合到數(shù)據(jù)結(jié)構(gòu)中的依賴性元數(shù)據(jù)O70)中。類似地,擴(kuò)展可包括使用依賴性元數(shù)據(jù)(270)來擴(kuò)展其它依賴性元數(shù)據(jù)(可能在將使用執(zhí)行計(jì)劃O40或250)所提取的依賴性元數(shù)據(jù)和其它依賴性元數(shù)據(jù)相關(guān))例如,所述其它依賴性元數(shù)據(jù)可包括從其它執(zhí)行計(jì)劃所提取的元數(shù)據(jù)(例如,擴(kuò)展使用計(jì)劃1 (MO)提取的依賴性元數(shù)據(jù)和使用計(jì)劃2 (250)所提取的元數(shù)據(jù))和/或由某些其它技術(shù)(例如并不涉及使用執(zhí)行計(jì)劃提取元數(shù)據(jù)的技術(shù))所獲得的依賴性元數(shù)據(jù)。例如,可通過向一個(gè)或多個(gè)數(shù)據(jù)庫服務(wù)器發(fā)送對(duì)于特定對(duì)象的依賴性元數(shù)據(jù)的請(qǐng)求來獲得其它元數(shù)據(jù)。元數(shù)據(jù)提取環(huán)境(沈0)還可執(zhí)行元數(shù)據(jù)公布和使用操作(274),其可包括在元數(shù)據(jù)儲(chǔ)存庫(觀0)中公布依賴性元數(shù)據(jù)(270)并例如在沖突分析和世系操作中使用該依賴性元數(shù)據(jù)070)。例如,這可包括使用在元數(shù)據(jù)儲(chǔ)存庫(觀0)中的依賴性元數(shù)據(jù)以供沖突分析和確定軟件制品(210)、語句(212和216)、和/或?qū)ο?222和232)的數(shù)據(jù)世系。這種沖突分析和世系操作可使用現(xiàn)有操作、例如現(xiàn)有的數(shù)據(jù)世系查詢和現(xiàn)有的沖突分析技術(shù)來執(zhí)行。盡管已經(jīng)描述了操作(沈2、沈4、沈6、272、和274)在一個(gè)元數(shù)據(jù)提取環(huán)境(沈0)中執(zhí)行,這些操作可以在不同環(huán)境下執(zhí)行。例如,對(duì)所公布的元數(shù)據(jù)的使用可在不同環(huán)境中執(zhí)行。又例如,標(biāo)識(shí)語句操作(262)可以在不同于獲取計(jì)劃操作064)以及解析和引用標(biāo)識(shí)操作(沈6)的環(huán)境中執(zhí)行?,F(xiàn)在將討論用于使用來自軟件制品的特定數(shù)據(jù)庫語句的執(zhí)行計(jì)劃來提取元數(shù)據(jù)的示例。軟件制品可包括以下SQL數(shù)據(jù)庫語句“SELECT*FROMABC”。該語句請(qǐng)求選擇來自名為ABC的對(duì)象的所有列(通過使用“*”來表明)。例如,ABC可為名為DB的數(shù)據(jù)庫中的一個(gè)數(shù)據(jù)庫表的名字,該ABC數(shù)據(jù)庫表可有六個(gè)列,名為COLl、C0L2、C0L3、C0L4、C0L5、以及 C0L6。提取環(huán)境可解析該軟件制品并標(biāo)識(shí)該制品內(nèi)的“SELECT*FROM ABC”數(shù)據(jù)庫語句。提取環(huán)境還可請(qǐng)求該數(shù)據(jù)庫語句的執(zhí)行計(jì)劃。該請(qǐng)求可被送至軟件制品執(zhí)行時(shí)數(shù)據(jù)庫語句將被送至的相同數(shù)據(jù)庫服務(wù)器。執(zhí)行計(jì)劃可以多種不同格式被檢索,這取決于將提供該計(jì)劃的數(shù)據(jù)庫服務(wù)器的類型。例如,計(jì)劃可是可在不實(shí)際處理數(shù)據(jù)庫語句的情況下生成的估計(jì)的執(zhí)行計(jì)劃,或者可是當(dāng)數(shù)據(jù)庫語句實(shí)際被處理時(shí)所生成的實(shí)際執(zhí)行計(jì)劃。可能期望所檢索的執(zhí)行計(jì)劃是估計(jì)的計(jì)劃,從而資源不被用于實(shí)際處理數(shù)據(jù)庫語句。此外,執(zhí)行計(jì)劃可以不同格式提供,例如XML格式或純文本格式。作為一個(gè)示例,在SQL Sever 中,以下命令可用于檢索“SELECT*FROM ABC”數(shù)據(jù)庫語句的估計(jì)的執(zhí)行計(jì)劃的XML版本
GOSET SH0WPLAN_XML ON ;GOSELECT*FROM ABC ;GOSET SHOWPLAN_XML OFF ;GO所返回的執(zhí)行計(jì)劃可被加載和解析。在此情況下,解析將展示該執(zhí)行計(jì)劃引用數(shù)據(jù)庫DB、數(shù)據(jù)庫表ABC、以及列C0L1、C0L2、C0L3、C0L4、C0L5、和C0L6。這又展示了包括 “SELECT*FR0M ABC”語句的軟件制品依賴于這些對(duì)象。因此,對(duì)這些對(duì)象的引用可被組合到依賴性元數(shù)據(jù)中并被相關(guān),且依賴性元數(shù)據(jù)可被用于擴(kuò)展軟件制品的其它元數(shù)據(jù)。依賴性元數(shù)據(jù)可在元數(shù)據(jù)儲(chǔ)存庫中公布,從而其可在例如執(zhí)行沖突分析和世系操作時(shí)被使用。III.用于使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃獲取依賴性元數(shù)據(jù)的技術(shù)現(xiàn)在將討論用于使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃獲取依賴性元數(shù)據(jù)的技術(shù)。這些技術(shù)中的每一個(gè)可以在計(jì)算環(huán)境中執(zhí)行。例如,每種技術(shù)可在包括至少一個(gè)處理器和存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)中執(zhí)行,該存儲(chǔ)器包括存儲(chǔ)于其上的、在由該至少一個(gè)處理器執(zhí)行時(shí)使該至少一個(gè)處理器執(zhí)行該技術(shù)的指令(存儲(chǔ)器存儲(chǔ)指令(例如,對(duì)象代碼),并且當(dāng)處理器執(zhí)行這些指令時(shí),處理器執(zhí)行該技術(shù))。類似地,一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可具有收錄于其上的計(jì)算機(jī)可執(zhí)行指令,該些指令在由至少一個(gè)處理器執(zhí)行時(shí)使該至少一個(gè)處理器執(zhí)行該技術(shù)。參考附圖3,將討論用于使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃獲取依賴性元數(shù)據(jù)的技術(shù)。該技術(shù)可包括從數(shù)據(jù)庫服務(wù)器檢索(310)用于數(shù)據(jù)庫語句的至少一個(gè)執(zhí)行計(jì)劃。例如,數(shù)據(jù)庫語句可為SQL語句。同樣,該數(shù)據(jù)庫語句可為在軟件制品中標(biāo)識(shí)的語句??稍趫?zhí)行計(jì)劃中標(biāo)識(shí)(320)對(duì)一個(gè)或多個(gè)對(duì)象的一個(gè)或多個(gè)引用。來自所述引用的元數(shù)據(jù)可被組合(330) 在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)媒介上的數(shù)據(jù)結(jié)構(gòu)中。同樣,所述元數(shù)據(jù)可反映對(duì)所述對(duì)象的一個(gè)或多個(gè)依賴性,例如軟件制品對(duì)所述對(duì)象的依賴性。另外,可用來自引用的元數(shù)據(jù)來擴(kuò)展其它依賴性元數(shù)據(jù)。其它依賴性元數(shù)據(jù)可包括在一個(gè)或多個(gè)其它數(shù)據(jù)庫語句的一個(gè)或多個(gè)其它執(zhí)行計(jì)劃中所標(biāo)識(shí)的元數(shù)據(jù)。同樣,其它元數(shù)據(jù)可包括在不標(biāo)識(shí)數(shù)據(jù)庫語句執(zhí)行計(jì)劃中的引用的情況下所提取的元數(shù)據(jù)。來自引用的元數(shù)據(jù)可包括多個(gè)條目,且該計(jì)劃可包括對(duì)元數(shù)據(jù)進(jìn)行相關(guān)(340)。此外,相關(guān)(340)可包括確定(350)元數(shù)據(jù)是否包括一個(gè)或多個(gè)重復(fù)條目。如果是,則該技術(shù)可包括消除(360)該一個(gè)或多個(gè)重復(fù)條目。所述至少一個(gè)執(zhí)行計(jì)劃可包括多個(gè)執(zhí)行計(jì)劃。 例如,如上所述地,可能每個(gè)數(shù)據(jù)庫語句有超過一個(gè)執(zhí)行計(jì)劃(例如,每個(gè)批次一個(gè)執(zhí)行計(jì)劃)。此外,在軟件制品中可能有多個(gè)數(shù)據(jù)庫語句,每個(gè)數(shù)據(jù)庫語句有一個(gè)或多個(gè)執(zhí)行計(jì)劃。 此外,所述一個(gè)或多個(gè)引用可包括在多個(gè)執(zhí)行計(jì)劃的兩個(gè)或更多的每一個(gè)中的至少一個(gè)引用?,F(xiàn)在參考附圖4,將討論用于使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃獲取依賴性元數(shù)據(jù)的另一技術(shù)。在該技術(shù)中,可在軟件制品中標(biāo)識(shí)(410)例如SQL語句的數(shù)據(jù)庫語句??蓹z索(420)
9該數(shù)據(jù)庫語句的至少一個(gè)執(zhí)行計(jì)劃,且可在所述執(zhí)行計(jì)劃中標(biāo)識(shí)(430)對(duì)一個(gè)或多個(gè)對(duì)象的一個(gè)或多個(gè)引用。來自所述引用的元數(shù)據(jù)可被組合(440)在數(shù)據(jù)結(jié)構(gòu)中。所述元數(shù)據(jù)可反映軟件制品對(duì)所述對(duì)象的一個(gè)或多個(gè)依賴性。所述引用可包括多個(gè)引用,且該技術(shù)可包括對(duì)元數(shù)據(jù)進(jìn)行相關(guān)。相關(guān)可包括確定元數(shù)據(jù)是否包括一個(gè)或多個(gè)重復(fù)條目。如果是,在該技術(shù)進(jìn)一步包括消除所述一個(gè)或多個(gè)重復(fù)條目。該技術(shù)還可包括用來自引用的元數(shù)據(jù)擴(kuò)展其它依賴性元數(shù)據(jù)。例如,其它依賴性元數(shù)據(jù)可包括在一個(gè)或多個(gè)其它數(shù)據(jù)庫語句的一個(gè)或多個(gè)其它執(zhí)行計(jì)劃中所標(biāo)識(shí)的元數(shù)據(jù)和/或在不標(biāo)識(shí)數(shù)據(jù)庫語句執(zhí)行計(jì)劃中的語句的情況下提取的依賴性元數(shù)據(jù)。現(xiàn)在參考附圖5,將討論用于使用數(shù)據(jù)庫語句執(zhí)行計(jì)劃獲取依賴性元數(shù)據(jù)的又一技術(shù)。該技術(shù)可包括檢索(510)例如SQL語句的數(shù)據(jù)庫語句的至少一個(gè)執(zhí)行計(jì)劃。該數(shù)據(jù)庫語句可為在軟件制品中標(biāo)識(shí)的語句。可在執(zhí)行計(jì)劃中標(biāo)識(shí)(520)對(duì)一個(gè)或多個(gè)對(duì)象的一個(gè)或多個(gè)引用。此外,來自所述引用的元數(shù)據(jù)可被組合(530)在數(shù)據(jù)結(jié)構(gòu)中。所述元數(shù)據(jù)可反映對(duì)所述對(duì)象的一個(gè)或多個(gè)依賴性。所述一個(gè)或多個(gè)依賴性可為軟件制品對(duì)所述對(duì)象的一個(gè)或多個(gè)依賴性。該技術(shù)還可包括用來自引用的元數(shù)據(jù)擴(kuò)展640)其它依賴性元數(shù)據(jù)。其它依賴性元數(shù)據(jù)可包括在不標(biāo)識(shí)執(zhí)行計(jì)劃中的語句的情況下提取的元數(shù)據(jù)和/或在一個(gè)或多個(gè)其它數(shù)據(jù)庫語句的一個(gè)或多個(gè)其它執(zhí)行計(jì)劃中所標(biāo)識(shí)的元數(shù)據(jù)。該技術(shù)還可包括對(duì)元數(shù)據(jù)進(jìn)行相關(guān)并消除在對(duì)元數(shù)據(jù)相關(guān)時(shí)所標(biāo)識(shí)的一個(gè)或多個(gè)重復(fù)條目。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述具體特征或動(dòng)作。更確切而言,上述具體特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式公開的。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括從數(shù)據(jù)庫服務(wù)器O20或230)檢索數(shù)據(jù)庫語句012或216)的至少一個(gè)執(zhí)行計(jì)劃Q40 或 250);在所述至少一個(gè)執(zhí)行計(jì)劃O40或250)中標(biāo)識(shí)對(duì)一個(gè)或多個(gè)對(duì)象022或23 的一個(gè)或多個(gè)引用;以及將來自所述一個(gè)或多個(gè)引用的元數(shù)據(jù)(270)組合到一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的數(shù)據(jù)結(jié)構(gòu)中,所述元數(shù)據(jù)O70)反映對(duì)所述一個(gè)或多個(gè)對(duì)象的一個(gè)或多個(gè)依賴性。
2.如權(quán)利要求1所述的方法,其特征在于,還包括用來自所述一個(gè)或多個(gè)引用的所述元數(shù)據(jù)擴(kuò)展其它依賴性元數(shù)據(jù),其中所述其它依賴性元數(shù)據(jù)包括在一個(gè)或多個(gè)其它數(shù)據(jù)庫語句的一個(gè)或多個(gè)其它執(zhí)行計(jì)劃中所標(biāo)識(shí)的元數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于,還包括用來自所述一個(gè)或多個(gè)引用的所述元數(shù)據(jù)擴(kuò)展其它依賴性元數(shù)據(jù),其中所述其它依賴性元數(shù)據(jù)是在不標(biāo)識(shí)數(shù)據(jù)庫語句執(zhí)行計(jì)劃中的引用的情況下提取的元數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,還包括標(biāo)識(shí)軟件制品中的數(shù)據(jù)庫語句,其中所述依賴性是所述軟件制品對(duì)所述一個(gè)或多個(gè)對(duì)象的依賴性。
5.如權(quán)利要求1所述的方法,其特征在于,還包括對(duì)所述元數(shù)據(jù)進(jìn)行相關(guān)。
6.如權(quán)利要求5所述的方法,其特征在于,所述相關(guān)還包括確定所述元數(shù)據(jù)是否包括一個(gè)或多個(gè)重復(fù)元數(shù)據(jù)條目,并且如果所述元數(shù)據(jù)確實(shí)包括一個(gè)或多個(gè)重復(fù)條目,在所述方法還包括消除所述一個(gè)或多個(gè)重復(fù)條目。
7.如權(quán)利要求1所述的方法,其特征在于 所述數(shù)據(jù)庫語句是SQL語句;所述依賴性是軟件制品對(duì)所述一個(gè)或多個(gè)對(duì)象的依賴性; 所述元數(shù)據(jù)包括多個(gè)條目;并且所述方法還包括在所述軟件制品中標(biāo)識(shí)數(shù)據(jù)庫語句; 對(duì)所述元數(shù)據(jù)進(jìn)行相關(guān);消除在對(duì)所述元數(shù)據(jù)進(jìn)行相關(guān)時(shí)找到的所述元數(shù)據(jù)中的一個(gè)或多個(gè)重復(fù)條目;以及用來自所述一個(gè)或多個(gè)引用的所述元數(shù)據(jù)擴(kuò)展其它依賴性元數(shù)據(jù),其中所述其它依賴性元數(shù)據(jù)是在不標(biāo)識(shí)數(shù)據(jù)庫語句執(zhí)行計(jì)劃中的引用的情況下提取的元數(shù)據(jù)。
8.一個(gè)或多個(gè)具有收錄于其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)媒介,所述指令在由至少一個(gè)處理器執(zhí)行時(shí)使所述至少一個(gè)處理器執(zhí)行以下動(dòng)作檢索數(shù)據(jù)庫語句012或216)的至少一個(gè)執(zhí)行計(jì)劃O40或250); 在所述至少一個(gè)執(zhí)行計(jì)劃O40或250)中標(biāo)識(shí)對(duì)一個(gè)或多個(gè)對(duì)象022或23 的一個(gè)或多個(gè)引用;將來自所述引一個(gè)或多個(gè)用的元數(shù)據(jù)(270)組合到數(shù)據(jù)結(jié)構(gòu)中,所述元數(shù)據(jù)O70)反映對(duì)所述一個(gè)或多個(gè)對(duì)象022或23 的一個(gè)或多個(gè)依賴性;以及用來自所述一個(gè)或多個(gè)引用的所述元數(shù)據(jù)(270)擴(kuò)展其它依賴性元數(shù)據(jù)。
9.如權(quán)利要求8所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀媒介,其特征在于,還包括標(biāo)識(shí)軟件制品中的數(shù)據(jù)庫語句,其中所述一個(gè)或多個(gè)依賴性是所述軟件制品對(duì)所述一個(gè)或多個(gè)對(duì)象的一個(gè)或多個(gè)依賴性。
10.如權(quán)利要求9所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)媒介,其特征在于,所述數(shù)據(jù)庫語句是SQL語句。
11.如權(quán)利要求10所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀媒介,其特征在于,所述其它依賴性元數(shù)據(jù)包括在不標(biāo)識(shí)執(zhí)行計(jì)劃中的引用的情況下所提取的元數(shù)據(jù)。
12.如權(quán)利要求11所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)媒介,其特征在于,所述其它依賴性元數(shù)據(jù)包括在一個(gè)或多個(gè)其它數(shù)據(jù)庫語句的一個(gè)或多個(gè)其它執(zhí)行計(jì)劃中所標(biāo)識(shí)的元數(shù)據(jù)。
13.如權(quán)利要求12所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)媒介,其特征在于,所述動(dòng)作還包括對(duì)所述元數(shù)據(jù)進(jìn)行相關(guān)。
14.如權(quán)利要求13所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)媒介,其特征在于,所述相關(guān)包括確定所述元數(shù)據(jù)是否包括一個(gè)或多個(gè)重復(fù)條目,并且如果所述元數(shù)據(jù)確實(shí)包括一個(gè)或多個(gè)重復(fù)條目,則所述動(dòng)作還包括消除所述一個(gè)或多個(gè)重復(fù)條目。
全文摘要
本發(fā)明涉及使用語句執(zhí)行計(jì)劃獲取依賴性元數(shù)據(jù)。可從數(shù)據(jù)庫服務(wù)器檢索用于數(shù)據(jù)庫語句的執(zhí)行計(jì)劃。對(duì)對(duì)象的引用可在所述執(zhí)行計(jì)劃中被標(biāo)識(shí),來自所述引用的元數(shù)據(jù)可被組合在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的數(shù)據(jù)結(jié)構(gòu)中。元數(shù)據(jù)可反映對(duì)對(duì)象的依賴性。另外,可用來自引用的元數(shù)據(jù)來擴(kuò)展其它依賴性元數(shù)據(jù)。
文檔編號(hào)G06F17/30GK102243646SQ201110128830
公開日2011年11月16日 申請(qǐng)日期2011年5月11日 優(yōu)先權(quán)日2010年5月12日
發(fā)明者D·I·諾爾, K·斯瓦沙恩穆更 申請(qǐng)人:微軟公司