亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于部署sql進程的系統(tǒng)和方法

文檔序號:6570022閱讀:202來源:國知局
專利名稱:用于部署sql進程的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及由計算機所執(zhí)行的數(shù)據(jù)庫管理系統(tǒng),具體地說, 涉及將包括SQL語句(statement)的SQL進程(procedure)從源數(shù) 據(jù)庫管理系統(tǒng)傳送到目標(biāo)數(shù)據(jù)庫管理系統(tǒng)。
背景技術(shù)
數(shù)據(jù)庫管理系統(tǒng)(DBMS)的使用是本領(lǐng)域公知的,數(shù)據(jù)庫管理 系統(tǒng)的數(shù)據(jù)庫被組織為表,所述表包括多行和多列數(shù)據(jù),其中,行是 元組(tuple),列是屬性。所述表典型地被存儲在直接存取存儲設(shè)備 (例如磁盤驅(qū)動器或光盤驅(qū)動器)上,以用于半永久存儲。使用結(jié)構(gòu)化查詢語言(SQL )接口在關(guān)系型數(shù)據(jù)庫管理系統(tǒng)中存 取數(shù)據(jù)也是本領(lǐng)域所公知的。SQL接口已經(jīng)演進為數(shù)據(jù)庫管理系統(tǒng)軟 件的標(biāo)準(zhǔn)語言,并且已經(jīng)由美國國家標(biāo)準(zhǔn)機構(gòu)(ANSI)和國際標(biāo)準(zhǔn)組 織(ISO)采用。SQL接口允許用戶要么在批處理文件中以交互的方 式在表上對關(guān)系運算進行格式化,要么在主機語言(例如C和 COBOL)中所嵌入的表上對關(guān)系運算進行格式化。通過SQL CREATE PROCEDURE語句來創(chuàng)建(或者定義) DBMS中的SQL進程。與外部存儲的進程不同的是,SQL進程定義 包括所存儲的進程的源代碼。用戶可以通過例如執(zhí)行ALTER PROCEDURE語句來改變進程選項,修改進程定義,并且添加SQL 進程定義的版本或者放棄SQL進程定義的版本。SQL進程存儲在數(shù) 據(jù)庫中,并且由DBMS來維護所述SQL進程。以與規(guī)則應(yīng)用程序相 似的方式,SQL進程具有程序生命周期,其包括設(shè)計階段、實現(xiàn)階段 和維護階段。在可以將SQL進程部署到產(chǎn)品系統(tǒng)以用于執(zhí)行之前, SQL進程開發(fā)人員一次或多次采用以下過程寫代碼、測試代碼、定位缺陷等。典型地,SQL進程的內(nèi)部實現(xiàn)方式包括進程邏輯部分和數(shù) 據(jù)庫請求部分。進程邏輯部分包括循環(huán)語句、條件語句和其它控制語 句??梢詫⑦M程邏輯部分編譯為進程邏輯部分的內(nèi)部表示,以用于在 運行時間期間的解釋和執(zhí)行。否則,可以將進程邏輯部分編譯為本地 代碼,以用于直接執(zhí)行。數(shù)據(jù)庫請求部分包括SQL語句。典型地由 DBMS經(jīng)由通過數(shù)據(jù)庫請求的SQL編譯器和優(yōu)化器所構(gòu)建的運行時 間指令來實現(xiàn)數(shù)據(jù)庫請求部分。在很多情況下,用戶希望保證部署到產(chǎn)品系統(tǒng)的SQL進程的性 能復(fù)制測試系統(tǒng)上的SQL進程的行為和性能。在部署了 SQL進程之 后,用戶不能在進程邏輯部分中提供任何微小的行為改變。然而,在 產(chǎn)品系統(tǒng)上重新創(chuàng)建SQL進程并且生成SQL進程的新的內(nèi)部表示產(chǎn) 生了行為改變的可能性。進程邏輯部分中的微小改變可能影響進程的 主邏輯流,從而對于SQL查詢導(dǎo)致不精確的結(jié)果。不存在一種用于保證從源DBMS到目標(biāo)DBMS所部署的SQL進 程的相容(consistent)行為和性能的傳統(tǒng)方法。已經(jīng)通過外部存儲的 進程的DBMS用戶實現(xiàn)了一種有關(guān)的傳統(tǒng)技術(shù)。該傳統(tǒng)方法將在測試 系統(tǒng)上所編譯的進程加載模塊或DLL(動態(tài)加載庫)拷貝到產(chǎn)品系統(tǒng)。 然而,這種傳統(tǒng)技術(shù)僅可應(yīng)用于外部存儲的進程,其中,進程的進程 邏輯部分與數(shù)據(jù)庫請求部分分離,并且加栽模塊或DLL可用于DBMS外部的用戶。SQL進程沒有關(guān)聯(lián)的外部加載模塊;因此,這種傳統(tǒng)技 術(shù)是不適用的。因此,所需的是一種用于部署SQL進程的系統(tǒng)、計算機程序產(chǎn) 品以及關(guān)聯(lián)的方法。對這種方案的需要迄今仍然未得到滿足。發(fā)明內(nèi)容本發(fā)明滿足該需要,并且提出一種系統(tǒng)、服務(wù)、計算機程序產(chǎn)品 以及關(guān)聯(lián)的方法(在此共同地稱為"系統(tǒng)"或"本系統(tǒng)"),以用于 從源系統(tǒng)到目標(biāo)系統(tǒng)部署SQL進程,所述SQL進程包括進程邏輯部 分和數(shù)據(jù)庫請求部分。在生成所述SQL進程時,本系統(tǒng)生成SQL進程源代碼、符號表,生成所述符號表和封裝的優(yōu)化結(jié)果,以重新生成 用于所述數(shù)據(jù)庫請求部分的查詢語句的運行時間指令,并且使得所述 查詢語句與所部署的進程邏輯部分的內(nèi)部表示一起運作。本系統(tǒng)在部署期間維護所述進程邏輯部分與所述數(shù)據(jù)庫請求部 分之間的關(guān)聯(lián)。本系統(tǒng)將所述進程邏輯部分的內(nèi)部表示拷貝到所迷目 標(biāo)系統(tǒng),而不進行重新生成。本系統(tǒng)重新生成數(shù)據(jù)庫請求部分,以在 所述目標(biāo)系統(tǒng)上重新創(chuàng)建查詢進程,并且維護所述進程邏輯部分與數(shù) 據(jù)庫請求部分之間的相容接口 。為了將所述進程邏輯部分的內(nèi)部表示拷貝到所述目標(biāo)系統(tǒng),所述源系統(tǒng)接收用于將SQL進程部署到目標(biāo)系統(tǒng)的請求。本系統(tǒng)將SQL 進程部署集合連接到鄰近塊,所述SQL進程部署集合包括SQL進 程源代碼、符號表、封裝的優(yōu)化結(jié)果、以及進程邏輯部分的內(nèi)部表示。 本系統(tǒng)驅(qū)動用于包括部署標(biāo)記的SQL進程部署集合的綁定包處理,并 且在目標(biāo)系統(tǒng)上重新生成數(shù)據(jù)庫請求部分。為了將所述SQL進程部署到目標(biāo)系統(tǒng),所述目標(biāo)系統(tǒng)接收鄰近 塊,所述鄰近塊包括所述SQL進程部署集合。所述目標(biāo)系統(tǒng)更新目標(biāo) 系統(tǒng)的目標(biāo)目錄中的一個或多個表,以注冊所部署的SQL進程。目標(biāo) 系統(tǒng)將所述SQL進程部署集合保存到盤,并且接收數(shù)據(jù)庫請求部分。 對于所述數(shù)據(jù)庫請求部分中的一個或多個SQL語句中的每一個,本系 統(tǒng)綁定SQL語句;并且使用所述封裝的結(jié)果來將多個運行時間指令與 進程邏輯部分的內(nèi)部表示同步??梢酝ㄟ^實用程序(utility program )(例如SQL進程部署實用 程序)來實施本系統(tǒng)。本系統(tǒng)還提供一種方法,用于用戶例如通過以 下步驟在源系統(tǒng)選擇SQL進程以用于部署對于所選擇的SQL進程 指定包名稱;通過例如對于目標(biāo)系統(tǒng)選擇位置名稱而選擇目標(biāo)系統(tǒng); 以及其后,調(diào)用SQL進程部署實用程序來將所選擇的SQL進程部署 到所選擇的目標(biāo)系統(tǒng)。在一個實施例中,本系統(tǒng)提供一種方法,其用 于用戶通過例如指定版本ID來指定所選擇的SQL進程的版本。本系 統(tǒng)進一步提供一種方法,其用于用戶指定所選擇的SQL進程在所述目標(biāo)系統(tǒng)上是添加新的版本還是替換現(xiàn)有版本。


將參照以下描述、權(quán)利要求和附圖來更加詳細地描述本發(fā)明的各 種特征及實現(xiàn)這些特征的方式,其中,在適當(dāng)?shù)那闆r下,標(biāo)號被重復(fù)使用,以指示所參考的項目之間的對應(yīng)關(guān)系,并且其中圖1是其中可以使用本發(fā)明的SQL進程部署系統(tǒng)的示例性操作 環(huán)境的示意圖;圖2是圖1的SQL進程部署系統(tǒng)的高級別等級結(jié)構(gòu)的示意圖; 圖3是示出在從源系統(tǒng)到目標(biāo)系統(tǒng)部署SQL進程中圖1和圖2的SQL進程部署系統(tǒng)的操作的方法的處理流程圖;圖4包括圖4A和圖4B,并且表示示出在將SQL進程從源系統(tǒng)發(fā)送到目標(biāo)系統(tǒng)中圖1和圖2的SQL進程部署系統(tǒng)的操作的方法的處理流程圖;圖5是示出在目標(biāo)數(shù)據(jù)庫管理系統(tǒng)處接收SQL進程中圖l和圖2 的SQL進程部署系統(tǒng)的操作的方法的處理流程圖;以及圖6包括圖6A和圖6B,并且表示示出在目標(biāo)數(shù)據(jù)庫管理系統(tǒng)處 接收SQL進程的版本中圖1和圖2的SQL進程部署系統(tǒng)的實施例的 操作的方法的處理流程圖。
具體實施方式
圖l描述了示例性整體環(huán)境,其中,可以使用系統(tǒng)、計算機程序 產(chǎn)品和關(guān)聯(lián)方法(SQL進程部署系統(tǒng)10或"系統(tǒng)IO),以用于部署 根據(jù)本發(fā)明的查詢進程。系統(tǒng)10從源系統(tǒng)20到目標(biāo)系統(tǒng)25部署一個 或多個SQL進程(例如SQL進程15 )。源系統(tǒng)20上的系統(tǒng)10將SQL 進程15部署給目標(biāo)系統(tǒng)25。目標(biāo)系統(tǒng)25上的系統(tǒng)10綁定所部署的 SQL進程15,以由目標(biāo)系統(tǒng)25使用。雖然僅為了示例性目的而結(jié)合 結(jié)構(gòu)化查詢語言(SQL)描述系統(tǒng)10,但應(yīng)理解,本發(fā)明還可以應(yīng)用 于其它查詢語言。源系統(tǒng)20包括源數(shù)據(jù)庫管理系統(tǒng)(DBMS) 30,其-皮安裝在 計算機系統(tǒng)(例如源服務(wù)器35)上。源系統(tǒng)20進一步包括源數(shù)據(jù) 庫(DB)40。源DB40包括源目錄45,其又包括SQL進程15。目標(biāo)系統(tǒng)25包括目標(biāo)數(shù)據(jù)庫管理系統(tǒng)(DBMS) 50,其被安 裝在計算機系統(tǒng)(例如目標(biāo)服務(wù)器55)上。目標(biāo)系統(tǒng)25進一步包括 目標(biāo)數(shù)據(jù)庫(DB)60。目標(biāo)DB60包括目標(biāo)目錄65,其又包括SQL 進程15。系統(tǒng)10經(jīng)由網(wǎng)絡(luò)70從源系統(tǒng)20到目標(biāo)系統(tǒng)25部署SQL進程 15。目標(biāo)系統(tǒng)30可以關(guān)于源系統(tǒng)而被遠程地放置,或者被放置在本地。 網(wǎng)絡(luò)70可以是遠程網(wǎng)絡(luò)(例如互聯(lián)網(wǎng))、或本地網(wǎng)絡(luò)(例如局域網(wǎng))。 在一個實施例中,源系統(tǒng)20和目標(biāo)系統(tǒng)30是相同的。系統(tǒng)10包括被典型地嵌入或者被安裝在計算機(例如源服務(wù)器 35或目標(biāo)服務(wù)器55)上的軟件編程代碼或計算機程序產(chǎn)品??蛇x地, 可以將系統(tǒng)10至少部分地保存在合適的存儲介質(zhì)上。所述介質(zhì)可以是 電子的、磁的、光的、電磁的、紅外的、或半導(dǎo)體系統(tǒng)(或裝置或設(shè) 備)或傳輸介質(zhì)。計算機可讀介質(zhì)的示例包括半導(dǎo)體存儲器或固態(tài)存 儲器、磁帶、可拆卸計算機盤、隨機存取存儲器(RAM)、只讀存儲 器(ROM)、剛性磁盤和光盤。光盤的當(dāng)前示例包括致密盤-只讀存 儲器(CD-ROM)、致密盤-讀/寫(CD-R/W)和DVD。圖2示出系統(tǒng)10的高級別等級結(jié)構(gòu)。系統(tǒng)10通常包括拷貝模 塊202;源部署命令模塊205,其在源系統(tǒng)20上操作,以從源系統(tǒng)20 到目標(biāo)系統(tǒng)25部署SQL進程15。系統(tǒng)10還包括目標(biāo)綁定包模塊 210,其在目標(biāo)系統(tǒng)25上操作,以驅(qū)動用于由源部署命令模塊205所 部署的SQL進程15的綁定包處理。系統(tǒng)10進一步包括存儲在目錄230(例如源目錄40)上的SQL 進程源代碼215、符號表220、以及封裝的優(yōu)化結(jié)果225,其與SQL 進程15中的一個或多個關(guān)聯(lián)。SQL進程15中的每一個包括進程邏輯 部分235和數(shù)據(jù)庫請求部分240。 SQL進程部署集合245包括SQL 進程源代碼215、符號表220、封裝的優(yōu)化結(jié)果225、以及進程邏輯部分235的內(nèi)部表示。當(dāng)在源系統(tǒng)20上創(chuàng)建SQL進程15時,系統(tǒng)10對于所創(chuàng)建的 SQL進程15保留SQL進程源代碼215、符號表220和進程邏輯部分 的內(nèi)部表示、封裝的優(yōu)化結(jié)果225。 SQL進程源代碼215是SQL進程 15的定義(即,CREATE PROCEDURE語句)。符號表220包括在SQL進程15以及其它內(nèi)部生成的數(shù)據(jù)緩沖器 中的SQL變量的信息。符號表220提供目標(biāo)系統(tǒng)25上重新生成的數(shù) 據(jù)庫請求部分與進程邏輯部分235的原始內(nèi)部表示之間的鏈接,使得 能夠使用由源系統(tǒng)25的編譯器所生成的優(yōu)化結(jié)果。封裝的優(yōu)化結(jié)果225關(guān)于進程邏輯部分235和進程邏輯部分235 與數(shù)據(jù)庫請求部分240之間的接口封裝由編譯器所生成的優(yōu)化結(jié)果。 通過采用封裝的優(yōu)化結(jié)果225的信息,當(dāng)SQL進程15被部署給目標(biāo) 系統(tǒng)25時,系統(tǒng)10保留優(yōu)化結(jié)果,因此避免了所部署的SQL進程 15損失性能。在重新生成運行時間指令以用于數(shù)據(jù)庫請求部分240中的SQL 語句的同時,SQL進程源代碼215、符號表220和封裝的優(yōu)化結(jié)果225 使得目標(biāo)綁定包模塊210能夠保持進程邏輯部分235的內(nèi)部表示完好。 當(dāng)部署SQL進程15時,SQL進程源代碼215、符號表220和封裝的 優(yōu)化結(jié)果225被傳送到目標(biāo)系統(tǒng)25。使用SQL進程源代碼215、符號 表220和封裝的優(yōu)化結(jié)果225來重新生成運行時間指令,以用于由數(shù) 據(jù)庫請求部分240所表示的SQL語句,并且使得SQL語句與進程邏 輯部分235的未改變的內(nèi)部表示一起運作??截惸K202將進程邏輯部分的內(nèi)部表示拷貝到目標(biāo)系統(tǒng)25,而 不是重新生成。源部署命令模塊205捎帶確認(piggyback)綁定包命 令上的部署命令。包是包括已經(jīng)靜態(tài)被綁定并且可用于處理的SQL語 句的集合的對象。對于SQL進程15,數(shù)據(jù)庫請求部分240被存儲在 包中。在一個實施例中,SQL進程15包括不同版本。在該實施例中, 相同SQL進程15的不同版本具有不同的包。為了部署的目的,源部 署命令模塊205包括綁定命令選項DEPLOY。源部署命令模塊205使得用戶能夠為目標(biāo)系統(tǒng)25指定位置名稱。 源部署命令模塊205進一步使得用戶能夠為將要部署的SQL進程15 指定包名稱。在一個實施例中,源部署命令模塊205使得用戶能夠?qū)?于將要部署的SQL進程15指定版本ID。在該實施例中,源部署命令 模塊205使得用戶能夠指定在SQL進程15被部署之后部署命令是添 加新版本還是替換目標(biāo)系統(tǒng)25上的現(xiàn)有版本。圖3示出在從源系統(tǒng)20到目標(biāo)系統(tǒng)25部署SQL進程15中系統(tǒng) 10的方法300。在創(chuàng)建SQL進程15時,系統(tǒng)10生成SQL進程源代 碼215、符號表220和封裝的優(yōu)化結(jié)果225 (步驟305 )。系統(tǒng)10在 部署期間維護進程邏輯部分235與數(shù)據(jù)庫請求部分240之間的關(guān)聯(lián)(步 驟310 )。源部署命令模塊205將進程邏輯部分235的內(nèi)部表示拷貝 到目標(biāo)系統(tǒng)25,而不是重新生成(步驟400,圖4中進一步描述)。 目標(biāo)綁定包模塊210重新生成數(shù)據(jù)庫請求部分240,以在目標(biāo)系統(tǒng)25 上重新創(chuàng)建SQL進程15,并且維護進程邏輯部分235與數(shù)據(jù)庫請求 部分240之間的相容接口 (步驟500,圖5中進一步描述)。圖4 (圖4A和圖4B )示出在將SQL進程15發(fā)送到目標(biāo)系統(tǒng)25 中系統(tǒng)10的方法400。用戶選擇SQL進程15以用于部署(步驟405 )。 源DBMS 30接收部署命令,以用于所選擇的SQL進程15(步驟410 )。 源DBMS 30獲得所選擇的SQL進程15上的鎖定(步驟415 )。源DBMS 30從源目錄45讀取(步驟420 ) SQL進程部署集合 245, SQL進程部署集合245包括SQL進程源代碼215、符號表220、 封裝的優(yōu)化結(jié)果225以及進程邏輯部分235的內(nèi)部表示。源DBMS 30 將SQL進程部署集合245連接到鄰近塊(步驟425 )。系統(tǒng)確定目標(biāo)系統(tǒng)25是否位于遠程(判斷步驟430 )。如果"是", 則系統(tǒng)IO調(diào)用分布式部分,以使SQL進程部署集合245流到目標(biāo)系 統(tǒng)25 (步驟435)。源DBMS30經(jīng)由目標(biāo)系統(tǒng)25上的目標(biāo)綁定包模 塊210來驅(qū)動具有部署標(biāo)記集合的遠程綁定包,以指示綁定包用于部 署(步驟440 )。如果在判斷步驟430,目標(biāo)系統(tǒng)25沒有位于遠程,則目標(biāo)系統(tǒng)25位于本地。源DBMS 30經(jīng)由目標(biāo)系統(tǒng)25上的目標(biāo)綁定包模塊210 來驅(qū)動具有部署標(biāo)記集合的綁定包,以指示綁定包用于部署(步驟 445)。目標(biāo)系統(tǒng)25上的目標(biāo)綁定包模塊210重新生成所選擇的SQL 進程的數(shù)據(jù)庫請求部分240 (步驟450 )。源DBMS 30釋放所選擇的 SQL進程上的鎖定(步驟455 )。圖5示出在目標(biāo)系統(tǒng)25接收SQL進程中系統(tǒng)10的操作。目標(biāo) DBMS 50接收具有部署標(biāo)記集合的綁定包請求,以用于SQL進程15 的部署(步驟505)。如果源系統(tǒng)20遠離目標(biāo)系統(tǒng)25,則目標(biāo)DBMS 50接收遠程綁定包請求。目標(biāo)DBMS 50通過目標(biāo)系統(tǒng)25上的目標(biāo)綁 定包模塊210發(fā)起綁定包處理(步驟510)。如果源系統(tǒng)20遠離目標(biāo) 系統(tǒng)25,則目標(biāo)DBMS 50發(fā)起遠程綁定包處理。目標(biāo)DBMS 50接收 鄰近塊,所述鄰近塊包括SQL進程部署集合(步驟515)。目標(biāo)DBMS 50更新目標(biāo)目錄65中的表,以注冊所選擇的SQL進程15(步驟520 )。 目標(biāo)DBMS 50將SQL進程部署集合保存到盤(步驟525 )。目標(biāo)DBMS 50接收所配置的SQL進程15的數(shù)據(jù)庫請求部分240 (步驟530)。對于數(shù)據(jù)庫請求部分240中的每一SQL語句,目標(biāo)綁 定包模塊210綁定SQL語句(步驟535)。目標(biāo)綁定包模塊210使用 所部署的SQL進程15的符號表220以及封裝的優(yōu)化結(jié)果225,以將 運行時間指令與進程邏輯部分235的內(nèi)部表示同步。目標(biāo)DBMS完成 所部署的SQL進程15的部署(步驟540 )。圖6 (圖6A和圖6B)示出在目標(biāo)數(shù)據(jù)庫管理系統(tǒng)處接收SQL 進程的版本中系統(tǒng)10的實施例的方法600。目標(biāo)DBMS 50執(zhí)行先前 所描述的步驟505至步驟515。目標(biāo)綁定包模塊210確定是否為所部 署的SQL進程15指定版本(判斷步驟605 )。如果"否",則目標(biāo) DBMS 50和目標(biāo)綁定包模塊210執(zhí)行先前所描述的步驟520至步驟 540。如果指定了版本(判斷步驟605),則目標(biāo)綁定包模塊210確定 是否存在所指定的版本(判斷步驟610)。如果"否",則目標(biāo)DBMS 50和目標(biāo)綁定包模塊210執(zhí)行先前所描述的步驟520至步驟540。如果存在所指定的版本,則目標(biāo)綁定包模塊210檢查所部署的SQL進程 15的版本制作中的一個或多個不相容性錯誤(判斷步驟615)。如果 發(fā)現(xiàn)不相容性錯誤,則目標(biāo)綁定包模塊210退出部署進程,并且報告 錯誤(步驟620 )。如果沒有發(fā)現(xiàn)不相容性錯誤,則目標(biāo)綁定包模塊210以所部署的 SQL進程15來替換現(xiàn)有版本(步驟625 )。目標(biāo)DBMS 50和目標(biāo)綁 定包模塊210執(zhí)行先前所描述的步驟520至步驟540。系統(tǒng)10部署SQL進程15的技術(shù)不需要目標(biāo)DBMS 50與源 DBMS30相同。系統(tǒng)10檢查進程邏輯部分235的內(nèi)部表示,以檢測 是否可以在目標(biāo)DBMS 50上執(zhí)行進程邏輯部分235。假設(shè)源DBMS 30 和目標(biāo)DBMS 50在處理進程邏輯部分235的內(nèi)部表示的能力方面兼 容,則容忍源DBMS 30和目標(biāo)DBMS 50之間的不同。系統(tǒng)10通過使用一個命令而使得能夠從一個系統(tǒng)到另一系統(tǒng)來 部署SQL進程15。在部署SQL進程15之后,出現(xiàn)這種部署,而沒 有進程邏輯部分235的行為改變的風(fēng)險。SQL進程15的進程邏輯部 分235在部署之后是完好的,并且與在目標(biāo)系統(tǒng)25上所生成的數(shù)據(jù)庫 請求部分240無縫地工作。應(yīng)理解,已經(jīng)描述的本發(fā)明特定實施例僅僅是本發(fā)明的原理的特 定應(yīng)用的示例。可以在不脫離本發(fā)明精神和范圍的情況下對用于部署 在此所描述的查詢進程的系統(tǒng)和方法進行大量修改。
權(quán)利要求
1、一種以處理器實現(xiàn)的方法,其用于從源系統(tǒng)到目標(biāo)系統(tǒng)部署結(jié)構(gòu)化查詢語言進程,所述結(jié)構(gòu)化查詢語言進程包括進程邏輯部分和數(shù)據(jù)庫請求部分,所述方法包括當(dāng)創(chuàng)建查詢進程時,生成查詢進程源代碼、符號表以及封裝的優(yōu)化結(jié)果,以重新生成用于所述數(shù)據(jù)庫請求部分的一個或多個查詢語句的運行時間指令,并且允許所述查詢語句與所述進程邏輯部分的所部署的內(nèi)部表示一起運作;在部署期間,維護所述進程邏輯部分與所述數(shù)據(jù)庫請求部分之間的關(guān)聯(lián);將所述進程邏輯部分的內(nèi)部表示拷貝到所述目標(biāo)系統(tǒng),而不用進行重新生成;重新生成數(shù)據(jù)庫請求部分,以在所述目標(biāo)系統(tǒng)上重新創(chuàng)建查詢進程,并且維護所述進程邏輯部分和所述數(shù)據(jù)庫請求部分之間的相容接口。
2、 如權(quán)利要求1所述的方法,其中,所述符號表提供所述目標(biāo) 系統(tǒng)上所重新生成的數(shù)據(jù)庫請求部分與所述進程邏輯部分的內(nèi)部表示 之間的鏈接。
3、 如權(quán)利要求1或2所述的方法,其中,所述封裝的優(yōu)化結(jié)果 包含由編譯器關(guān)于所述進程邏輯部分以及所述進程邏輯部分與所述數(shù) 據(jù)庫請求部分的接口所生成的結(jié)果,從而當(dāng)將所述查詢進程部署到所述目標(biāo)系統(tǒng)時,保留優(yōu)化結(jié)果。
4、 如權(quán)利要求l、 2或3所述的方法,其中,所述結(jié)構(gòu)化查詢語 言進程包括結(jié)構(gòu)化查詢語言進程源代碼,并且可選地,所述結(jié)構(gòu)化 查詢語言進程源代碼定義所述結(jié)構(gòu)化查詢語言進程。
5、 如權(quán)利要求3所述的方法,其中,所述拷貝步驟包括在源 系統(tǒng)處接收用于將所述查詢進程部署到所述目標(biāo)系統(tǒng)的請求。
6、 如權(quán)利要求5所述的方法,其中,所述拷貝步驟進一步包括: 調(diào)用分布式部分,以用于流動到所述目標(biāo)系統(tǒng)。
7、 如權(quán)利要求6所述的方法,進一步包括定義查詢進程部署 集合,所述查詢進程部署集合包括查詢進程源代碼、符號表、封裝的 優(yōu)化結(jié)果以及進程邏輯部分的內(nèi)部表示;以及其中,所述拷貝步驟進一步包括驅(qū)動用于所述查詢進程部署集 合的綁定包處理。
8、 如權(quán)利要求7所述的方法,其中,在所述目標(biāo)系統(tǒng)上重新創(chuàng) 建查詢進程的步驟包括接收查詢進程部署集合和數(shù)據(jù)庫請求部分, 并且可選地,重新創(chuàng)建查詢進程的步驟包括對于數(shù)據(jù)庫請求部分中 的查詢語句中的每一個,綁定所述查詢語句;以及使用所述封裝的優(yōu)化結(jié)果來將多個運行時間指令與所述進程邏 輯部分的內(nèi)部表示同步。
9、 如權(quán)利要求3所述的方法,進一步包括檢查版本;以及 如果版本存在,則進一步檢查版本制作錯誤。
10、 如權(quán)利要求11所述的方法,進一步包括以所部署的查詢 進程來替換現(xiàn)有版本,并且可選地,進一步包括在部署命令中為所 述目標(biāo)系統(tǒng)指定位置名稱;以及為將要部署的查詢進程指定包名稱。
11、 如權(quán)利要求l所述的方法,其中,所述目標(biāo)系統(tǒng)關(guān)于所述源系統(tǒng)而凈皮遠程地放置。
12、 一種計算機程序產(chǎn)品,其具有存儲在計算機可用介質(zhì)上的程 序代碼,用于從源系統(tǒng)到目標(biāo)系統(tǒng)部署結(jié)構(gòu)化查詢語言進程,所述結(jié) 構(gòu)化查詢語言進程包括進程邏輯部分和數(shù)據(jù)庫請求部分,所述計算機 程序產(chǎn)品包括用于當(dāng)創(chuàng)建查詢進程時生成查詢進程源代碼、符號表以及封裝的 優(yōu)化結(jié)果的程序代碼,以重新生成用于所述數(shù)據(jù)庫請求部分的一個或 多個查詢語句的運行時間指令,并且允許所述查詢語句與所述進程邏 輯部分的所部署的內(nèi)部表示一起運作;用于在部署期間維護所述進程邏輯部分與所述數(shù)據(jù)庫請求部分 之間的關(guān)聯(lián)的程序代碼;用于將所述進程邏輯部分的內(nèi)部表示拷貝到所述目標(biāo)系統(tǒng)而不 用進行重新生成的程序代碼;用于重新生成數(shù)據(jù)庫請求部分的程序代碼,以在所述目標(biāo)系統(tǒng)上 重新創(chuàng)建查詢進程,并且維護所述進程邏輯部分和所述數(shù)據(jù)庫請求部 分之間的相容接口。
13、 一種以處理器實現(xiàn)的系統(tǒng),其用于從源系統(tǒng)到目標(biāo)系統(tǒng)部署結(jié)構(gòu)化查詢語言進程,所述結(jié)構(gòu)化查詢語言進程包括進程邏輯部分和 數(shù)據(jù)庫請求部分,所述系統(tǒng)包括源系統(tǒng),其用于當(dāng)創(chuàng)建查詢進程時,生成查詢進程源代碼、符號 表以及封裝的優(yōu)化結(jié)果,以重新生成用于所述數(shù)據(jù)庫請求部分的一個 或多個查詢語句的運行時間指令,并且允許所述查詢語句與所述進程 邏輯部分的所部署的內(nèi)部表示一起運作;目錄,其用于在部署期間維護所述進程邏輯部分與所述數(shù)據(jù)庫請 求部分之間的關(guān)聯(lián);拷貝模塊,其用于將所述進程邏輯部分的內(nèi)部表示拷貝到所述目 標(biāo)系統(tǒng),而不用進行重新生成;所述目標(biāo)系統(tǒng)上的目標(biāo)綁定包模塊,其用于重新生成數(shù)據(jù)庫請求 部分,以在所述目標(biāo)系統(tǒng)上重新創(chuàng)建查詢進程,并且維護所述進程邏 輯部分和所述數(shù)據(jù)庫請求部分之間的相容接口 。
全文摘要
SQL進程部署系統(tǒng)從源系統(tǒng)到目標(biāo)系統(tǒng)部署查詢進程,所述查詢進程包括進程邏輯部分和數(shù)據(jù)庫請求部分。在生成所述查詢進程時,所述系統(tǒng)生成查詢進程源代碼、符號表以及封裝的優(yōu)化結(jié)果,以重新生成用于所述數(shù)據(jù)庫請求部分的查詢語句的運行時間指令,并且使得所述查詢語句與所部署的進程邏輯部分一起運作。所述系統(tǒng)在部署期間維護所述進程邏輯部分與所述數(shù)據(jù)庫請求部分之間的關(guān)聯(lián)。所述系統(tǒng)將所述進程邏輯部分的內(nèi)部表示拷貝到所述目標(biāo)系統(tǒng),而不用重新生成。所述系統(tǒng)重新生成數(shù)據(jù)庫請求部分,以在所述目標(biāo)系統(tǒng)上重新創(chuàng)建查詢進程,并且維護所述進程邏輯部分與所述數(shù)據(jù)庫請求部分之間的相容接口。
文檔編號G06F9/44GK101331489SQ200680047404
公開日2008年12月24日 申請日期2006年12月15日 優(yōu)先權(quán)日2005年12月17日
發(fā)明者C·L·考特納, G·C·富勒, J·C-Y·黃, J·尤瑟斯, T·黨, Y·K·蘇吉, Y-C·S·陳, 崔寶秋, 李蕙安, 郄定慧 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1