国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      分散數(shù)據(jù)庫檢索裝置及分散數(shù)據(jù)庫檢索方法

      文檔序號(hào):6365482閱讀:154來源:國知局
      專利名稱:分散數(shù)據(jù)庫檢索裝置及分散數(shù)據(jù)庫檢索方法
      技術(shù)領(lǐng)域
      本發(fā)明的實(shí)施方式涉及分散數(shù)據(jù)庫檢索裝置及分散數(shù)據(jù)庫檢索方法。
      背景技術(shù)
      為了處理表形式或XML形式等的大量數(shù)據(jù)而存在由多個(gè)服務(wù)器構(gòu)成的分散數(shù)據(jù)庫檢索裝置。分散數(shù)據(jù)庫檢索裝置通常具有與用戶進(jìn)行交換的主服務(wù)器和實(shí)際管理數(shù)據(jù)的從屬服務(wù)器。從屬服務(wù)器既可以全部由相同架構(gòu)的數(shù)據(jù)庫檢索裝置構(gòu)成,也可以由不同架構(gòu)的 數(shù)據(jù)庫檢索裝置構(gòu)成。一般,在對(duì)分散數(shù)據(jù)庫檢索裝置輸入了檢索式(以下,稱作查詢)的情況下,主服務(wù)器接收查詢。主服務(wù)器將查詢解析,分割為各從屬服務(wù)器在服務(wù)器內(nèi)部執(zhí)行的部分和需要在服務(wù)器間運(yùn)算的部分。對(duì)于在各從屬服務(wù)器內(nèi)執(zhí)行的部分,各從屬服務(wù)器生成最優(yōu)的本地計(jì)劃。對(duì)于服務(wù)器間的運(yùn)算部分,主服務(wù)器生成最優(yōu)的分散計(jì)劃。另外,所謂本地計(jì)劃,是從屬服務(wù)器用來檢索從屬服務(wù)器所具有的數(shù)據(jù)的計(jì)劃,所謂分散計(jì)劃,是用來檢索對(duì)象的分散數(shù)據(jù)庫具有的數(shù)據(jù)整體的計(jì)劃。當(dāng)生成分散計(jì)劃吋,決定J0IN(結(jié)合)等針對(duì)服務(wù)器間的數(shù)據(jù)的結(jié)合運(yùn)算處理、SORT(分類)等針對(duì)多個(gè)服務(wù)器的集合運(yùn)算處理、分割后的部分查詢的結(jié)合運(yùn)算處理等運(yùn)算處理的順序和執(zhí)行的服務(wù)器,以使檢索應(yīng)答時(shí)間為最短。還決定向執(zhí)行運(yùn)算的服務(wù)器轉(zhuǎn)送的數(shù)據(jù)轉(zhuǎn)送方法及格式等。在分散數(shù)據(jù)庫中,為了提高檢索性能,希望通過強(qiáng)化分散計(jì)劃的優(yōu)化、來降低數(shù)據(jù)庫間的數(shù)據(jù)交接處理中的數(shù)據(jù)的轉(zhuǎn)送開銷(cost)、及服務(wù)器間的數(shù)據(jù)的運(yùn)算開銷(cost)。以往,分散計(jì)劃的優(yōu)化全部通過主服務(wù)器實(shí)現(xiàn)。但是,主服務(wù)器決定全部的分散計(jì)劃存在許多的問題。首先,分散計(jì)劃的研究范圍如在上述中列舉那樣,為查詢的分割范圍、服務(wù)器間運(yùn)算的順序和執(zhí)行場(chǎng)所的決定、分割后的查詢的結(jié)合方法等非常廣泛,所以會(huì)發(fā)生許多的候選計(jì)劃,為了從其中檢索最優(yōu)的計(jì)劃而需要許多的信息。因此,主服務(wù)器需要密集地取得來自各從屬服務(wù)器側(cè)的索引或統(tǒng)計(jì)信息等并維持、管理。因而,主服務(wù)器的機(jī)制較復(fù)雜,會(huì)花費(fèi)較多管理成本。此外,即使在主服務(wù)器全部取得了想要的信息的情況下,在按照每個(gè)從屬服務(wù)器而統(tǒng)計(jì)量較大地不同的情況或架構(gòu)不同的情況下,也有可能對(duì)每個(gè)從屬服務(wù)器來說最優(yōu)的動(dòng)作不同。在這樣的情形中,在針對(duì)全部的從屬服務(wù)器統(tǒng)一的分散計(jì)劃中,一部分的從屬服務(wù)器的執(zhí)行速度成為瓶頸,整體性能有可能下降。但是,如果按照每個(gè)從屬服務(wù)器生成能夠進(jìn)行最優(yōu)動(dòng)作的分散計(jì)劃,則主服務(wù)器的分散計(jì)劃生成的機(jī)制變得復(fù)雜。即,如果提高主服務(wù)器的分散計(jì)劃處理部的優(yōu)化功能,則主服務(wù)器的優(yōu)化的機(jī)制復(fù)雜化。因此,主服務(wù)器難以按照各從屬服務(wù)器的狀態(tài)而以適合的形式生成分散計(jì)劃。

      發(fā)明內(nèi)容
      本發(fā)明要解決的技術(shù)問題是提供一種不使主服務(wù)器側(cè)的機(jī)制復(fù)雜化而實(shí)現(xiàn)高效率的檢索的分散數(shù)據(jù)庫檢索裝置。實(shí)施方式的分散數(shù)據(jù)庫檢索裝置是將主服務(wù)器與具備數(shù)據(jù)庫的多個(gè)從屬服務(wù)器連接而構(gòu)成的,上述主服務(wù)器基于輸入的詢問查詢檢索數(shù)據(jù)庫。從屬服務(wù)器具備第2收發(fā)部,與主服務(wù)器進(jìn)行數(shù)據(jù)的收發(fā);本地計(jì)劃候選生成部,基于所接收到的分散計(jì)劃生成本地計(jì)劃候選;以及本地計(jì)劃選擇部,基于所生成的本地計(jì)劃候選,決定運(yùn)算開銷最低的本地計(jì)劃。



      圖I是有關(guān)第I實(shí)施方式的分散數(shù)據(jù)庫檢索裝置的整體結(jié)構(gòu)圖的一例。圖2是表示作為登記在有關(guān)第I實(shí)施方式的數(shù)據(jù)庫中的數(shù)據(jù)的I種的XML數(shù)據(jù)的一例的不意圖。圖3是表示作為登記在有關(guān)第I實(shí)施方式的數(shù)據(jù)庫中的數(shù)據(jù)的I種的XML數(shù)據(jù)的一例的不意圖。圖4是表示有關(guān)第I實(shí)施方式的從屬服務(wù)器所保持的數(shù)據(jù)庫信息的一例的示意圖。圖5是表示有關(guān)第I實(shí)施方式的主服務(wù)器所保持的從屬服務(wù)器群信息的一例的示意圖。圖6是表示有關(guān)第I實(shí)施方式的分散數(shù)據(jù)庫檢索處理的一例的流程圖。圖7是表示有關(guān)第I實(shí)施方式的相對(duì)于XML的詢問語言XQuery的一例的示意圖。圖8是表示在有關(guān)第I實(shí)施方式的查詢分割部中生成的部分查詢的一例的圖。圖9是表示在有關(guān)第I實(shí)施方式的分散計(jì)劃生成部中生成的分散計(jì)劃的一例的圖。圖10是表示由有關(guān)第I實(shí)施方式的分割查詢結(jié)合運(yùn)算追加部進(jìn)行的分散計(jì)劃修正處理的一例的流程圖。圖11是表示進(jìn)行了有關(guān)第I實(shí)施方式的分割查詢結(jié)合運(yùn)算追加處理后的分散計(jì)劃的一例的不意圖。圖12是表示在有關(guān)第I實(shí)施方式的本地計(jì)劃選擇部中生成的本地計(jì)劃的一例的示意圖。圖13是表示有關(guān)第I實(shí)施方式的本地計(jì)劃候選生成處理的一例的流程圖。圖14是表示有關(guān)第I實(shí)施方式的本地計(jì)劃候選生成處理的一例的流程圖。圖15是表示有關(guān)第I實(shí)施方式的本地計(jì)劃候選生成處理的一例的流程圖。圖16是表示在有關(guān)第I實(shí)施方式的本地計(jì)劃候選生成部中生成的本地計(jì)劃的一例的示意圖。圖17是表示在有關(guān)第I實(shí)施方式的本地計(jì)劃候選生成部中生成的本地計(jì)劃的一例的示意圖。圖18是表示在有關(guān)第I實(shí)施方式的本地計(jì)劃候選生成部中生成的本地計(jì)劃的一例的示意圖。圖19是表示在有關(guān)第I實(shí)施方式的本地計(jì)劃候選生成部中生成的本地計(jì)劃的一例的示意圖。圖20是表示在有關(guān)第I實(shí)施方式的本地計(jì)劃候選生成部中生成的本地計(jì)劃的一例的示意圖。圖21是表示在有關(guān)第I實(shí)施方式的本地計(jì)劃候選生成部中生成的本地計(jì)劃的一例的示意圖。圖22是表示在有關(guān)第I實(shí)施方式的本地計(jì)劃候選生成部中計(jì)算運(yùn)算開銷時(shí)使用 的參數(shù)的一例的流程圖。圖23是表示有關(guān)第I實(shí)施方式的分散計(jì)劃更新部將分散計(jì)劃更新的處理的一例的流程圖。圖24是表示在有關(guān)第I實(shí)施方式的分散計(jì)劃更新部中更新的分散計(jì)劃的一例的示意圖。圖25是有關(guān)第2實(shí)施方式的分散數(shù)據(jù)庫檢索裝置的整體結(jié)構(gòu)圖的一例。圖26是表示由有關(guān)第2實(shí)施方式的模式(schema)變更部變更前的模式的一例的示意圖。圖27是表示有關(guān)第2實(shí)施方式的分散數(shù)據(jù)庫檢索處理的一例的流程圖。圖28是表示進(jìn)行了有關(guān)第2實(shí)施方式的本地計(jì)劃順序決定處理后的本地計(jì)劃的一例的不意圖。圖29是表不有關(guān)第2實(shí)施方式的模式生成部生成分散計(jì)劃的模式的處理的一例的流程圖。圖30是表示由有關(guān)第2實(shí)施方式的模式變更部變更后的新的模式的一例的示意圖。圖31是表示有關(guān)第2實(shí)施方式的模式變更部將在分散計(jì)劃的運(yùn)算中輸入的數(shù)據(jù)的模式更新的處理的一例的流程圖。圖32是表示作為進(jìn)行了有關(guān)第2實(shí)施方式的模式變更部進(jìn)行的模式生成處理后的結(jié)果而得到的輸入輸出模式的一例的圖。
      具體實(shí)施例方式以下,參照附圖對(duì)實(shí)施方式的分散數(shù)據(jù)庫檢索裝置進(jìn)行說明。(第I實(shí)施方式)圖I是表示第I實(shí)施方式的分散數(shù)據(jù)庫檢索裝置的功能結(jié)構(gòu)的結(jié)構(gòu)圖。本實(shí)施方式的分散數(shù)據(jù)庫檢索裝置基于從用戶輸入的檢索式(以下,稱作詢問查詢)進(jìn)行檢索,并輸出檢索結(jié)果。如圖I所示,本實(shí)施方式的分散數(shù)據(jù)庫檢索裝置是作為主服務(wù)器發(fā)揮功能的計(jì)算機(jī)O、和作為從屬服務(wù)器發(fā)揮功能的計(jì)算機(jī)I 計(jì)算機(jī)N相連接而構(gòu)成的。作為主服務(wù)器的計(jì)算機(jī)O具備語法解析部11、查詢分割部12、分散計(jì)劃生成部13、分割查詢結(jié)合運(yùn)算追加部14、分散計(jì)劃更新部15、分散計(jì)劃執(zhí)行部16、收發(fā)部17(第I收發(fā)部)、和信息存儲(chǔ)部20 (第I存儲(chǔ)裝置)。信息存儲(chǔ)部20具備保存從屬服務(wù)器群信息的從屬服務(wù)器群信息存儲(chǔ)部21、和保存后述的分散計(jì)劃的分散計(jì)劃存儲(chǔ)部22。另外,所謂從屬服務(wù)器群信息,是全部的從屬服務(wù)器的名稱或位置、以及登記件數(shù)等關(guān)于從屬服務(wù)器擁有的數(shù)據(jù)庫的信息,是從屬服務(wù)器擁有的數(shù)據(jù)庫的信息的一部分。主服務(wù)器基于該從屬服務(wù)器群信息決定對(duì)從屬服務(wù)器發(fā)送哪個(gè)數(shù)據(jù)。語法解析部11將從用戶給出的詢問查詢51進(jìn)行語法解析。查詢分割部12具備將詢問查詢51分割的功能,基于由語法解析部11得到的詢問查詢51的語法解析結(jié)果和從屬服務(wù)器群信息表21,以服務(wù)器內(nèi)運(yùn)算及服務(wù)器間運(yùn)算為單 位將詢問查詢51分割。將分割后的詢問查詢51稱作部分查詢。另外,所謂服務(wù)器內(nèi)運(yùn)算,是將詢問查詢51在各從屬服務(wù)器內(nèi)處理。此外,所謂服務(wù)器間運(yùn)算,是從多個(gè)從屬服務(wù)器收集數(shù)據(jù)而在主服務(wù)器內(nèi)運(yùn)算的處理。分散計(jì)劃生成部13是作為分散計(jì)劃生成機(jī)構(gòu)發(fā)揮功能的,基于由查詢分割部12得到的部分查詢和從屬服務(wù)器群信息表21的信息,生成分散計(jì)劃。即,分散計(jì)劃生成部13基于保存在從屬服務(wù)器群信息存儲(chǔ)部21中的從屬服務(wù)器的名稱或位置、以及登記件數(shù)等,生成決定分割后的服務(wù)器內(nèi)運(yùn)算和服務(wù)器間運(yùn)算的運(yùn)算順序、運(yùn)算執(zhí)行場(chǎng)所以及在服務(wù)器間收發(fā)的數(shù)據(jù)的內(nèi)容而得到的分散計(jì)劃。另外,所謂在服務(wù)器間收發(fā)的數(shù)據(jù)的內(nèi)容,例如是從屬服務(wù)器的數(shù)據(jù)、從屬服務(wù)器的數(shù)據(jù)的一部分、平均值等從屬服務(wù)器的數(shù)據(jù)運(yùn)算結(jié)果、或者最大值、多個(gè)從屬服務(wù)器的數(shù)據(jù)組合等服務(wù)器間運(yùn)算結(jié)果。分散計(jì)劃生成部13具備分割查詢結(jié)合運(yùn)算追加部14和分散計(jì)劃更新部15。分割查詢結(jié)合運(yùn)算追加部14將由分散計(jì)劃生成部13得到的分散計(jì)劃按照?qǐng)D10的流程圖所示的分割查詢結(jié)合運(yùn)算追加處理進(jìn)行修正。以下,將修正后的分散計(jì)劃稱作修正分散計(jì)劃。關(guān)于分割查詢結(jié)合運(yùn)算追加處理在后面敘述。分散計(jì)劃更新部15是作為分散計(jì)劃更新機(jī)構(gòu)發(fā)揮功能的,進(jìn)行基于從本地計(jì)劃選擇部、從屬服務(wù)器發(fā)送來的本地計(jì)劃將修正分散計(jì)劃更新的分散計(jì)劃更新處理。關(guān)于分散計(jì)劃修正處理在后面敘述。分散計(jì)劃執(zhí)行部16基于由分散計(jì)劃更新部15更新后的分散計(jì)劃執(zhí)行運(yùn)算。收發(fā)部17具有作為數(shù)據(jù)收發(fā)機(jī)構(gòu)的功能。接著,對(duì)作為從屬服務(wù)器的計(jì)算機(jī)I N進(jìn)行說明。計(jì)算機(jī)I N是作為從屬服務(wù)器發(fā)揮功能的,具備本地計(jì)劃選擇部31、本地計(jì)劃候選生成部32、本地計(jì)劃執(zhí)行部33、收發(fā)部34(第2收發(fā)部)、和信息存儲(chǔ)部40 (第2存儲(chǔ)裝置)。信息存儲(chǔ)部40具備保持?jǐn)?shù)據(jù)庫信息的數(shù)據(jù)庫信息存儲(chǔ)部41、保持本地計(jì)劃的本地計(jì)劃存儲(chǔ)部42、和保持檢索對(duì)象的實(shí)際的數(shù)據(jù)(以下,稱作保存數(shù)據(jù))的保存數(shù)據(jù)存儲(chǔ)部43,上述數(shù)據(jù)庫信息是所保存的數(shù)據(jù)的模式(schema)信息及件數(shù)等統(tǒng)計(jì)信息等與保存在數(shù)據(jù)庫中的數(shù)據(jù)有關(guān)的信息。本地計(jì)劃選擇部31是作為本地計(jì)劃生成機(jī)構(gòu)發(fā)揮功能的,具備本地計(jì)劃候選生成部32。本地計(jì)劃選擇部31生成通過由分割查詢結(jié)合運(yùn)算追加部14得到的修正分散計(jì)劃中的、與自身的服務(wù)器關(guān)聯(lián)的部分計(jì)劃所構(gòu)成的本地計(jì)劃?;诒镜赜?jì)劃選擇部生成的本地計(jì)劃,本地計(jì)劃候選生成部3進(jìn)ー步制作本地計(jì)劃的候選。本地計(jì)劃選擇部31從自身制作出的本地計(jì)劃和由本地計(jì)劃候選生成部32制作出的本地計(jì)劃候選之中,計(jì)算由估計(jì)執(zhí)行時(shí)間或估計(jì)執(zhí)行計(jì)算量構(gòu)成的運(yùn)算開銷。本地計(jì)劃選擇部31決定計(jì)算出的運(yùn)算開銷為最小的計(jì)劃作為本地計(jì)劃。本地計(jì)劃執(zhí)行部33基于由本地計(jì)劃選擇部31得到的本地計(jì)劃實(shí)施運(yùn)算。收發(fā)部34具有與主服務(wù)器的收發(fā)部17相同的功能。這里,在圖2及圖3中,表示登記在從屬服務(wù)器的保存數(shù)據(jù)存儲(chǔ)部43中的數(shù)據(jù)的一例。另外,本實(shí)施方式的登記在從屬服務(wù)器的保存數(shù)據(jù)存儲(chǔ)部43中的數(shù)據(jù)以XML的格式形式記述。另外,圖2所示的數(shù)據(jù)是關(guān)于書籍的發(fā)行年數(shù)、標(biāo)題、著者、價(jià)格的數(shù)據(jù)。圖3所示的數(shù)據(jù)是關(guān)于某個(gè)獎(jiǎng)項(xiàng)的獲獎(jiǎng)年度、獲獎(jiǎng)?wù)?、獲獎(jiǎng)的書籍的標(biāo)題、獲獎(jiǎng)?wù)叩男詣e的數(shù)據(jù)。圖4是從屬服務(wù)器的數(shù)據(jù)信息存儲(chǔ)部41所保持的數(shù)據(jù)庫的信息的一例。如圖4 所示,數(shù)據(jù)庫信息被作為具有“登記節(jié)點(diǎn)” 112、“登記數(shù)” 113、和“索引信息” 114的項(xiàng)目的數(shù)據(jù)庫信息表111加以保持?!暗怯浌?jié)點(diǎn)” 112表示登記在從屬服務(wù)器的保存數(shù)據(jù)存儲(chǔ)部43中的XML數(shù)據(jù)所具有的節(jié)點(diǎn)名,這里,包括處于哪個(gè)節(jié)點(diǎn)之下地進(jìn)行記述。另外,所謂節(jié)點(diǎn),是構(gòu)成XML數(shù)據(jù)的要素或?qū)傩缘?。“登記?shù)” 113表示在從屬服務(wù)器的保存數(shù)據(jù)存儲(chǔ)部43中登記的XML數(shù)據(jù)中各登記節(jié)點(diǎn)112出現(xiàn)的次數(shù)。“索引信息” 114記述有對(duì)登記節(jié)點(diǎn)112設(shè)定的索引的種類。索引的種類例如是數(shù)值索引或字符索引。另外,在圖4中,作為一例而表示計(jì)算機(jī)I至計(jì)算機(jī)4的數(shù)據(jù)庫信息表111-1 111-4。圖5是保存在作為主服務(wù)器的計(jì)算機(jī)O所保持的從屬服務(wù)器群信息存儲(chǔ)部21中的從屬服務(wù)器群信息21的一例。如圖5所示,從屬服務(wù)器群信息被作為具有“服務(wù)器名” 122、“收集信息(Collection信息)” 123、“登記文檔數(shù)” 124的項(xiàng)目的從屬服務(wù)器群信息表121加以保持。在“服務(wù)器名” 122中保存有從屬服務(wù)器的名稱。在“收集信息” 123中保存有登記的XML數(shù)據(jù)的保存場(chǎng)所的名稱(以下,稱作收集名)。本實(shí)施方式的分散數(shù)據(jù)庫由于即使在不同的從屬服務(wù)器中也能夠擁有相同的收集信息123,所以用戶能夠通過指定收集名來對(duì)特定的XML數(shù)據(jù)的集合內(nèi)進(jìn)行檢索?!暗怯浳臋n數(shù)” 124保存有登記在收集(Collection)中的XML數(shù)據(jù)的數(shù)量。 這里,參照?qǐng)D6至圖25,對(duì)本實(shí)施方式的分散數(shù)據(jù)庫檢索裝置的處理進(jìn)行說明。圖6是表示本實(shí)施方式的分散數(shù)據(jù)庫檢索裝置的檢索處理的一例的流程圖。另外,假設(shè)本實(shí)施方式的分散數(shù)據(jù)庫檢索裝置在計(jì)算機(jī)I 4的數(shù)據(jù)庫信息存儲(chǔ)部41中保存有圖4所示的數(shù)據(jù)庫信息。首先,由用戶對(duì)主服務(wù)器輸入作為檢索式的詢問查詢51 (步驟SI)。這里,在圖7中表示由用戶輸入的詢問查詢51的一例。圖7所示的詢問查詢51通過作為XML數(shù)據(jù)的詢問語言的XQuery記述。另外,圖7所示的詢問查詢51的意思是“輸出有過去的獲獎(jiǎng)經(jīng)歷的男性作家的著書中的于1990年以后出版的書的標(biāo)題和價(jià)格”。
      輸入的詢問查詢51的第I行的從for開始的一個(gè)語句將擁有在"publisher"的Collection中登記的book的名稱的節(jié)點(diǎn)中的、將屬性節(jié)點(diǎn)year的值數(shù)值化后的結(jié)果大于等于1990的節(jié)點(diǎn)保存到變量$x中。由此,取得于1990年以后出版的書的ー覽。另外,在XQuery中,變量被表現(xiàn)為以"$ "開始的字符串。接著,第2行的從for開始的一個(gè)語句在選擇擁有在"prizewinners"的Co 11 ec t i on中登記的pr i z eWinner的名稱的節(jié)點(diǎn)中的、將gender的子節(jié)點(diǎn)的值字符串化后的結(jié)果與"male"的字符串相等的節(jié)點(diǎn)之后,將作為其子節(jié)點(diǎn)的name保存到變量$y中,由此取得有獲獎(jiǎng)經(jīng)歷的男性作家的名稱的ー覽。接著,在第3、4、5行的從let開始的ー個(gè)語句中,將作為在第I行取得的book的子節(jié)點(diǎn)的author、title、price的節(jié)點(diǎn)分別保存到變量$z、$u、$v中,由此取得書的著者名、標(biāo)題和價(jià)格。接著,在第6行的從where開始的ー個(gè)語句中,取得男性作家的名稱與書的著者名一致者的組合。最后,在第7行的從return開始的ー個(gè)語句中,對(duì)在第6行取得的組合制作出用List的名稱的節(jié)點(diǎn)包圍的XML并返還給用戶。由此,取得滿足條件的書的標(biāo)題和價(jià)格。 如果將圖7所示的詢問查詢51輸入到主服務(wù)器中,則主服務(wù)器的語法解析部11對(duì)詢問查詢51進(jìn)行語法解析(步驟S2)。由語法解析部11得到的語法解析結(jié)果被發(fā)送給主服務(wù)器的查詢分割部12。接收到語法解析結(jié)果的查詢分割部12基于從屬服務(wù)器群信息表21的信息,進(jìn)行將詢問查詢51分割為部分查詢的詢問查詢51分割處理,上述部分查詢以在各從屬服務(wù)器內(nèi)處理的服務(wù)器內(nèi)運(yùn)算以及從多個(gè)從屬服務(wù)器收集數(shù)據(jù)而運(yùn)算的服務(wù)器間運(yùn)算為単位(步驟S3)。S卩,查詢分割部12基于語法解析部11的語法解析的結(jié)果,將詢問查詢51分割為部分查詢。查詢分割部12參照從屬服務(wù)器群信息表121,按照這些部分查詢的每ー個(gè),判斷部分查詢的內(nèi)容是服務(wù)器間運(yùn)算還是服務(wù)器內(nèi)運(yùn)算。這里,將作為查詢分割部12的分割結(jié)果的部分查詢的ー覽即部分查詢ー覽表131的一例表示在圖8中。圖8所示的部分查詢ー覽表131具有保存對(duì)部分查詢依次分配的號(hào)碼的“號(hào)碼”132、保存分割而得到的部分查詢的“部分查詢內(nèi)容” 133、保存部分查詢是服務(wù)器內(nèi)運(yùn)算還是服務(wù)器間運(yùn)算的“服務(wù)器間/服務(wù)器內(nèi)運(yùn)算” 134、將保存有運(yùn)算所需要的數(shù)據(jù)的計(jì)算機(jī)名保存的“對(duì)應(yīng)服務(wù)器” 135的項(xiàng)目。以下,參照?qǐng)D7至圖8對(duì)由查詢分割部12進(jìn)行的詢問查詢的分割處理具體地進(jìn)行說明。查詢分割部12基于從屬服務(wù)器群信息表121,確定保持各部分查詢的運(yùn)算中使用的數(shù)據(jù)的計(jì)算機(jī)。在圖8中,著眼于圖7所示的詢問查詢51中的Collection(;/ publisher")和 Collection(" prizewinner")這兩個(gè)收集信息。即,使用這些收集信息檢索圖5所示的從屬服務(wù)器群信息表121。即,查詢分割部12判斷為Collection(" publisher")存在于計(jì)算機(jī)I至3中,Collection(;/ prizewinner;/ )存在于計(jì)算機(jī) 4 中。進(jìn)而,查詢分割部12著眼于對(duì)Collection實(shí)施的"/"、" //"、" > ="、"="這樣的XQuery的運(yùn)算,判斷運(yùn)算是否需要來自多個(gè)不同的計(jì)算機(jī)的值。在運(yùn)算需要來自多個(gè)不同的計(jì)算機(jī)的值的情況下,將該運(yùn)算判斷為服務(wù)器間運(yùn)算。另外,在是利用來自ー個(gè)計(jì)算機(jī)的值進(jìn)行的運(yùn)算的情況下,將該運(yùn)算判斷為服務(wù)器內(nèi)運(yùn)算。如圖8所示,在詢問查詢51中,為了使"/ "、" // "、" > = 1990 "等運(yùn)算全部能夠在作為輸入的數(shù)據(jù)的計(jì)算機(jī)上實(shí)施,$X> $Z、$u、$v保存有全部都在相同的計(jì)算機(jī)上運(yùn)算出的數(shù)據(jù)。另外,關(guān)于服務(wù)器內(nèi)運(yùn)算,用幾個(gè)運(yùn)算単位分割。在圖8中,以"for"、" let"等賦值語句發(fā)生的単位分割,發(fā)生號(hào)碼I 5的部分查詢。另外,以"for"、" let"這樣的賦值語句的単位分割是I例,實(shí)際上也可以以更細(xì)的運(yùn)算單位分割,也可以以更大的運(yùn)算單位分割。另ー方面,在"where$y = $z"的運(yùn)算中,由于$y是計(jì)算機(jī)4的數(shù)據(jù),$z是存在于計(jì)算機(jī)I到3中的數(shù)據(jù),所以設(shè)為是服務(wù)器間運(yùn)算。接著,下面的"return〈List> {$u} {$v}〈/List〉"的運(yùn)算是返回最終結(jié)果的運(yùn)算,所以判斷為需要收集擁有知、$v的數(shù)據(jù)的計(jì)算機(jī)I到3的數(shù)據(jù)來進(jìn)行運(yùn)算的服務(wù)器間運(yùn)
      算。 接著,分散計(jì)劃生成部13基于圖8所示的部分查詢ー覽表131和圖5所示的從屬服務(wù)器群信息表121,生成分散計(jì)劃(步驟S4)。將所生成的分散計(jì)劃保存到分散計(jì)劃表141 中。在圖9中表示分散計(jì)劃表141的一例。分散計(jì)劃表141具有“運(yùn)算號(hào)碼” 142、“部分查詢號(hào)碼” 143、“運(yùn)算內(nèi)容” 144、“事前執(zhí)行運(yùn)算號(hào)碼” 145、“執(zhí)行場(chǎng)所” 146、“發(fā)送場(chǎng)所” 147、“輸入變量” 148、“輸出變量” 149的項(xiàng)目?!斑\(yùn)算號(hào)碼” 142表示對(duì)每個(gè)運(yùn)算分配的號(hào)碼?!安糠植樵兲?hào)碼” 143保存圖8所示的部分查詢表131中的部分查詢號(hào)碼132的項(xiàng)目中分配的號(hào)碼。在沒有被分配部分查詢號(hào)碼132的情況下為空欄。“運(yùn)算內(nèi)容” 144保存各運(yùn)算的內(nèi)容。這里,分散計(jì)劃生成部13將圖8所示的部分查詢ー覽表131中的服務(wù)器內(nèi)運(yùn)算原樣設(shè)為服務(wù)器內(nèi)運(yùn)算,部分查詢ー覽表131中的服務(wù)器間運(yùn)算記述表示具體操作的運(yùn)算內(nèi)容。進(jìn)而,在部分查詢ー覽表131中的服務(wù)器間運(yùn)算的前后,由于需要數(shù)據(jù)的發(fā)送、數(shù)據(jù)接收的運(yùn)算,所以新添加?!笆虑皥?zhí)行運(yùn)算號(hào)碼” 145在有必須在執(zhí)行該運(yùn)算之前執(zhí)行的運(yùn)算的情況下,保存該運(yùn)算號(hào)碼?!皥?zhí)行場(chǎng)所” 146保存執(zhí)行運(yùn)算的場(chǎng)所(計(jì)算機(jī))。在數(shù)據(jù)的發(fā)送和數(shù)據(jù)接收的運(yùn)算的情況下,將運(yùn)算結(jié)果的數(shù)據(jù)的發(fā)送目的地保存到“發(fā)送場(chǎng)所” 147中。即,執(zhí)行場(chǎng)所146是數(shù)據(jù)的發(fā)送源的計(jì)算機(jī),發(fā)送場(chǎng)所147是數(shù)據(jù)的發(fā)送目的地的計(jì)算機(jī)?!拜斎胱兞俊?148在運(yùn)算中需要輸入數(shù)據(jù)的情況下被保存,將保存著該數(shù)據(jù)的變量的名稱的列表加以保存?!拜敵鲎兞俊?149在運(yùn)算制作新的值的情況下,保存其保存目的地的變量的名稱的列表。另外,圖9所示的分散計(jì)劃表141的運(yùn)算號(hào)碼I至5對(duì)應(yīng)于圖8所示的部分查詢ー覽表131的號(hào)碼I至5。此外,分散計(jì)劃表141的運(yùn)算號(hào)碼10及11對(duì)應(yīng)于圖8所示的部分查詢一覽表131的號(hào)碼6、7。此外,關(guān)于在部分查詢ー覽表131中在服務(wù)器內(nèi)/服務(wù)器間運(yùn)算134中保存有“月艮務(wù)器間運(yùn)算”的部分查詢號(hào)碼6的運(yùn)算,在運(yùn)算內(nèi)容144中保存有“服務(wù)器間聯(lián)合(服務(wù)器將JOIN)”。即,保存基于部分查詢內(nèi)容133的具體的運(yùn)算內(nèi)容。同樣,關(guān)于部分查詢號(hào)碼7的運(yùn)算,在運(yùn)算內(nèi)容144中保存有“返還數(shù)據(jù)制作”的具體的運(yùn)算。另外,所謂“服務(wù)器間聯(lián)合”,是將保存在兩個(gè)變量中的數(shù)據(jù)中值相等的組合保留的運(yùn)算,所謂“返還數(shù)據(jù)制作”,是利用輸入的數(shù)據(jù)制作新的XML數(shù)據(jù)的運(yùn)算。分散計(jì)劃生成部13僅著眼干“服務(wù)器間運(yùn)算”,決定執(zhí)行順序及執(zhí)行場(chǎng)所。具體而言,圖9所示的分散計(jì)劃表141中,由于服務(wù)器間運(yùn)算的運(yùn)算內(nèi)容144是服務(wù)器間聯(lián)合和返還數(shù)據(jù)制作的兩種,所以判斷為在執(zhí)行服務(wù)器間聯(lián)合后進(jìn)行返還數(shù)據(jù)制作運(yùn)算時(shí),作為對(duì)象的數(shù)據(jù)較少,效率較高。此外,在本實(shí)施方式中,服務(wù)器間運(yùn)算作為由主服務(wù)器實(shí)施的運(yùn)算,決定了執(zhí)行場(chǎng)所。另外,為了將服務(wù)器間運(yùn)算在主服務(wù)器中執(zhí)行,需要收集處于各從屬服務(wù)器中的數(shù)據(jù)。因此,分散計(jì)劃生成部13追加分散計(jì)劃表141的運(yùn)算號(hào)碼6及運(yùn)算號(hào)碼8,在各自的運(yùn)算內(nèi)容144中保存作為從屬服務(wù)器對(duì)主服務(wù)器發(fā)送數(shù)據(jù)的運(yùn)算的“數(shù)據(jù)發(fā)送”。接著,為了主服務(wù)器接收在運(yùn)算號(hào)碼6及8中發(fā)送的數(shù)據(jù)而追加運(yùn)算號(hào)碼7及9,在各自的運(yùn)算內(nèi)容144中保存作為主服務(wù)器從從屬服務(wù)器接收數(shù)據(jù)的運(yùn)算的“數(shù)據(jù)接收”。 另外,在本實(shí)施方式中決定為將服務(wù)器間運(yùn)算由主服務(wù)器執(zhí)行,但也可以不是主服務(wù)器,而例如決定為由多個(gè)從屬服務(wù)器執(zhí)行。分散計(jì)劃生成部13基于圖8中記載的部分查詢內(nèi)容133,保存輸入變量148及輸出變量149。例如,設(shè)為在"for in"、" let :="的" "中寫入的變量是輸出變量149,在其以外的場(chǎng)所中寫入的變量是輸入變量148。此外,在數(shù)據(jù)發(fā)送運(yùn)算中,輸入變量148成為輸出變量149。進(jìn)而,在數(shù)據(jù)接收運(yùn)算中,數(shù)據(jù)發(fā)送運(yùn)算的輸出變量149成為輸入變量148和輸出變量149。另外,服務(wù)器內(nèi)運(yùn)算由分散計(jì)劃生成部13以順序關(guān)系不會(huì)混亂的方式配置為任意的順序,。這樣,本實(shí)施方式的分散計(jì)劃生成部13僅研究部分查詢ー覽表131的“服務(wù)器間運(yùn)算”。由此,研究范圍被限定,所以分散計(jì)劃生成部131能夠容易地生成分散計(jì)劃。接著,分割查詢結(jié)合運(yùn)算追加部14對(duì)分散計(jì)劃生成部13生成的分散計(jì)劃追加“分割查詢結(jié)合”運(yùn)算,進(jìn)行執(zhí)行分散計(jì)劃的修正的分割查詢結(jié)合運(yùn)算追加處理(步驟S5)。這里,參照?qǐng)D10,具體地說明分割查詢結(jié)合運(yùn)算追加部14對(duì)保存在圖9所示的分散計(jì)劃表141中的分散計(jì)劃進(jìn)行分割查詢結(jié)合運(yùn)算追加處理時(shí)的動(dòng)作。另外,在該分割查詢結(jié)合運(yùn)算追加處理中,使用i及j這樣的變量。i大于等于I的整數(shù),并且小于等于對(duì)象的分散計(jì)劃的運(yùn)算號(hào)碼(I ^ I <分散計(jì)劃的運(yùn)算號(hào)碼的最大值)。此外,在分割查詢結(jié)合運(yùn)算追加處理的開始時(shí)刻,i = I。此外,設(shè)分散計(jì)劃的運(yùn)算號(hào)碼的最大值為“max”。此外,設(shè)運(yùn)算號(hào)碼142為i的分散計(jì)劃的運(yùn)算是運(yùn)算E。另外,假設(shè)j是與i同樣性質(zhì)的變量,運(yùn)算號(hào)碼142為j的分散計(jì)劃的運(yùn)算是運(yùn)算S。分割查詢結(jié)合運(yùn)算追加部14如果從分散計(jì)劃生成部13接收到分散計(jì)劃,則首先,作為初始化處理而設(shè)i = I、分散計(jì)劃的運(yùn)算號(hào)碼的最大值=max(步驟S10)。分割查詢結(jié)合運(yùn)算追加部14取得記載在圖9中的分散計(jì)劃表141中的運(yùn)算號(hào)碼i的運(yùn)算E (步驟S20)。接著,分割查詢結(jié)合運(yùn)算追加部14判斷是否所取得的運(yùn)算E是服務(wù)器間運(yùn)算并且i幸max (步驟S30)。在所取得的運(yùn)算E是服務(wù)器間運(yùn)算并且iデmax的情況下,即在運(yùn)算E是最后的運(yùn)算以外的情況下(步驟S30為“是”),設(shè)為j = 1(步驟S40)。
      接著,取得分散計(jì)劃表141的運(yùn)算號(hào)碼j的運(yùn)算S (步驟S50)。分割查詢結(jié)合運(yùn)算追加部14參照?qǐng)D9的分散計(jì)劃表141,判斷是否運(yùn)算S的運(yùn)算內(nèi)容144是數(shù)據(jù)發(fā)送并且保存在發(fā)送場(chǎng)所147中的計(jì)算機(jī)是從屬服務(wù)器(步驟S60)。在運(yùn)算S的運(yùn)算內(nèi)容144是“數(shù)據(jù)發(fā)送”并且發(fā)送場(chǎng)所147的計(jì)算機(jī)是從屬服務(wù)器的情況下(步驟S60為“是”),分割查詢結(jié)合運(yùn)算追加部14制作保存有在運(yùn)算S的輸入變量147和運(yùn)算E的輸入變量147中共通出現(xiàn)的變量的列表(以下,稱作varList)(步驟S70)。接著,制作保存有從運(yùn)算S的輸入變量147中除去了處于varList中的變量所得到的變量的列表(以下,稱作newVarList)(步驟S80)。分割查詢結(jié)合運(yùn)算追加部14判斷是否制作出的varList不為空、并且包含在該varList中的變量不與運(yùn)算S的輸入變量147完全一致、并且輸出varlist的變量的運(yùn)算與輸出newVarList的變量的運(yùn)算能夠并行執(zhí)行(步驟S90)。另外,這里說明在圖9所不的分散計(jì)劃表141中,輸出varlist的變量的運(yùn)算與輸出newVarList的變量的運(yùn)算是否能夠并行執(zhí)行的判斷方法。該方法是,在反復(fù)回溯調(diào)查ー個(gè)運(yùn)算的事前執(zhí)行運(yùn)算號(hào)碼145以及該事前執(zhí)行運(yùn)算號(hào)碼145的運(yùn)算的事前執(zhí)行運(yùn)算號(hào)碼 145時(shí),在另ー個(gè)運(yùn)算不作為事前執(zhí)行運(yùn)算號(hào)碼存在的情況下,判斷為兩個(gè)運(yùn)算能夠并行執(zhí)行。即,在運(yùn)算A的事前執(zhí)行運(yùn)算號(hào)碼145中有運(yùn)算B的運(yùn)算號(hào)碼的情況下,必需在執(zhí)行運(yùn)算B之后執(zhí)行運(yùn)算A,所以判斷為不能并行執(zhí)行?;氐綀D10的步驟S90的說明。在varList不是空、并且包含在該varList中的變量不與運(yùn)算S的輸入變量147完全一致、并且輸出varlist的變量的運(yùn)算與輸出newVarList的變量的運(yùn)算能夠并行執(zhí)行的情況下(步驟S90為“是”),將以下5個(gè)運(yùn)算插入到運(yùn)算E之后,在插入后,在i中代入i+5(i = i+5)(步驟S100)。在第I個(gè)運(yùn)算中,運(yùn)算內(nèi)容144是"數(shù)據(jù)發(fā)送",輸入變量148和輸出變量149是包含在varList中的變量,執(zhí)行場(chǎng)所146是"運(yùn)算S的發(fā)送場(chǎng)所147",發(fā)送場(chǎng)所147是"運(yùn)算S的執(zhí)行場(chǎng)所146"。在第2個(gè)運(yùn)算中,運(yùn)算內(nèi)容144是"數(shù)據(jù)接收",輸入變量148和輸出變量149是包含在varList中的變量,執(zhí)行場(chǎng)所146是"運(yùn)算S的發(fā)送場(chǎng)所147",發(fā)送場(chǎng)所147是"運(yùn)算S的執(zhí)行場(chǎng)所146"。在第3個(gè)運(yùn)算中,運(yùn)算內(nèi)容144是"分割查詢結(jié)合",輸入變量148是包含在varList中的變量,執(zhí)行場(chǎng)所146是"運(yùn)算S的執(zhí)行場(chǎng)所146"。另外,所謂運(yùn)算內(nèi)容是“分割查詢結(jié)合”,是將對(duì)某個(gè)變量分別并行進(jìn)行處理而得到的結(jié)果再次合為I個(gè)的運(yùn)算。在第4個(gè)運(yùn)算中,運(yùn)算內(nèi)容144是"數(shù)據(jù)發(fā)送",輸入變量148和輸出變量149是包含在newVarList中的變量,執(zhí)行場(chǎng)所146是"運(yùn)算S的執(zhí)行場(chǎng)所146","發(fā)送場(chǎng)所147是運(yùn)算S的發(fā)送場(chǎng)所147"。在第5個(gè)運(yùn)算中,運(yùn)算內(nèi)容144是"數(shù)據(jù)接收",輸入變量148和輸出變量149是newVarList,執(zhí)行場(chǎng)所146是"運(yùn)算S的執(zhí)行場(chǎng)所146",發(fā)送場(chǎng)所147是"運(yùn)算S的發(fā)送場(chǎng)所"。接著,為了變更在運(yùn)算S中發(fā)送的變量而實(shí)施3個(gè)處理(步驟S110)。第I個(gè)是,將運(yùn)算S的輸入變量148和輸出變量149的內(nèi)容變更為VarList的值。第2個(gè)是,取得運(yùn)算S接下來的運(yùn)算R。運(yùn)算R是與運(yùn)算S對(duì)應(yīng)的運(yùn)算內(nèi)容144"數(shù)據(jù)接收"的運(yùn)算。第3個(gè)是,將R的輸入變量148和輸出變量149列表的內(nèi)容變更為varList的值。然后,向步驟S120前進(jìn)。另外,在運(yùn)算S不是數(shù)據(jù)發(fā)送、或者執(zhí)行場(chǎng)所146的計(jì)算機(jī)不是從屬服務(wù)器的情況下(步驟S60為“否”),也向步驟S120前進(jìn)。此外,在varList為空或與運(yùn)算S的輸入變量列表完全一致、或輸出varlist的變量的運(yùn)算和輸出newVarList的變量的運(yùn)算不能并行執(zhí)行的情況下(步驟S90為“否”的情況下),也前進(jìn)到步驟S120。在步驟S120中,分割查詢結(jié)合運(yùn)算追加部14在j中代入j+l(j = j+1)(步驟S120)。S卩,在步驟S60為“否”的情況下、或在步驟S90為“否”的情況下、或者接著步驟SllO進(jìn)行步驟S120。接著步驟S120,分割查詢結(jié)合運(yùn)算追加部14判斷j是否比i小(步驟S130)。在j比i小的情況下(步驟S130為“是”),回到步驟S50而重復(fù)處理。在j比i小的情況下 (步驟S130為“否”)前進(jìn)到步驟S140,在i中代入i+l(i = i+1)(步驟S140)。在運(yùn)算E不是服務(wù)器間運(yùn)算、或i =max的情況下(步驟S30為“否”),前進(jìn)到步驟S140。S卩,在步驟S130為“否”的情況下、或者在步驟S30為“否”的情況下繼續(xù)進(jìn)行步驟S140的處理。接著步驟S140,分割查詢結(jié)合運(yùn)算追加部14判斷i是否小于等于max(步驟S150)。即,判斷是否對(duì)全部的部分查詢進(jìn)行了分割查詢運(yùn)算追加處理。在i小于等于max的情況下(步驟S150為“是”),分割查詢結(jié)合運(yùn)算追加部14回到步驟S20而重復(fù)處理。在i比max大的情況下(步驟S150為“否”),分割查詢結(jié)合運(yùn)算追加部14結(jié)束處理。這里,在圖11中,表示分割查詢結(jié)合運(yùn)算追加部14對(duì)圖9所示的分散計(jì)劃進(jìn)行上述分割查詢結(jié)合運(yùn)算追加處理后的結(jié)果為修正后的分散計(jì)劃(以下,稱作修正分散計(jì)劃)的一例。記載在圖9的分散計(jì)劃表141中的分散計(jì)劃中,由于運(yùn)算I至10不是服務(wù)器間運(yùn)算,所以分割查詢結(jié)合運(yùn)算追加部14每次將i増加1,直到i成為10 (圖10的步驟S20、步驟S30、步驟S140、步驟S150)。如果成為i = 10,則運(yùn)算E是服務(wù)器間運(yùn)算(步驟S30為“是”),所以在變量j中代入I (步驟S40)。另外,基于運(yùn)算E的部分查詢號(hào)碼,參照分散計(jì)劃表141進(jìn)行運(yùn)算E是否是服務(wù)器間運(yùn)算的判斷。接著,在j成為6之前不是數(shù)據(jù)發(fā)送,所以將j每次增加I (步驟S50、步驟S60為“否”、步驟S120、步驟S130)。如果j成為6,則由于運(yùn)算S的運(yùn)算內(nèi)容是數(shù)據(jù)發(fā)送,并且執(zhí)行場(chǎng)所146的計(jì)算機(jī)是從屬服務(wù)器(步驟S60為“是”),所以制作保存有在運(yùn)算號(hào)碼6的輸入變量148和運(yùn)算號(hào)碼10的輸入變量148中共通出現(xiàn)的變量$z的變量列表varList (步驟S70)。制作從所取得的運(yùn)算號(hào)碼6的輸入變量148除去varList的變量列表后的保存有變量$u、變量$y的變量列表newVarList (步驟S80)。由于varList不是空、與運(yùn)算號(hào)碼6的輸入變量列表也不完全一致、并且將varlist和newVarList的變量輸出的運(yùn)算能夠并行執(zhí)行,所以在追加圖11的運(yùn)算號(hào)碼11-15這5個(gè)運(yùn)算后,將i加5而代入15(步驟S90、步驟S100)。接著,在運(yùn)算號(hào)碼6的數(shù)據(jù)發(fā)送和運(yùn)算號(hào)碼7的數(shù)據(jù)發(fā)送的輸入變量148和輸出變量149中代入varList的值變量$z (步驟 SI 10)。接著,由于在j成為8之前不是數(shù)據(jù)發(fā)送,所以單純地將變量j每次增加I (步驟S50、步驟S60、步驟S120、步驟S130)。在j是8的情況下,由于運(yùn)算內(nèi)容144是數(shù)據(jù)發(fā)送,并且執(zhí)行場(chǎng)所146是從屬服務(wù)器,所以取得保存有在運(yùn)算號(hào)碼8的輸入變量和運(yùn)算號(hào)碼10的輸入變量列表中共通地出現(xiàn)的變量$y的變量列表varList (步驟S70)。由于所取得的varList雖然不是空,但與運(yùn)算號(hào)碼8的輸入變量列表完全一致(步驟S90為“否”),所以對(duì)j加I (步驟SS120)。以后,由于沒有數(shù)據(jù)發(fā)送運(yùn)算,所以將i增加I而代入16(步驟S120、步驟S130、步驟S140、步驟S150)。接著,由于i為16的運(yùn)算是服務(wù)器間運(yùn)算,但i等于max(步驟S150為“是”),所以回到步驟S20,重復(fù)處理。并且,如果i的值超過max (步驟S150為“否”),則分割查詢結(jié)合運(yùn)算追加部14結(jié)束處理。其結(jié)果,制作出分散計(jì)劃。在圖11中表示修正后的分散計(jì)劃 的表151。即,分散計(jì)劃結(jié)合運(yùn)算追加部14將計(jì)劃改寫為將服務(wù)器間運(yùn)算和其他運(yùn)算盡可能并行執(zhí)行然后結(jié)合的形式。如上所述,如果分割查詢結(jié)合運(yùn)算追加部14將分散計(jì)劃修正,則主服務(wù)器的收發(fā)部17對(duì)從屬服務(wù)器發(fā)送修正后的修正分散計(jì)劃。此時(shí),也可以對(duì)全部從屬服務(wù)器發(fā)送修正分散計(jì)劃。此外,也可以參照?qǐng)?zhí)行場(chǎng)所而僅對(duì)有關(guān)聯(lián)的從屬服務(wù)器發(fā)送修正分散計(jì)劃。從屬服務(wù)器的本地計(jì)劃選擇部31生成針對(duì)接收到的由分割查詢結(jié)合手順追加部14修正后的分散計(jì)劃中的、與自身的服務(wù)器關(guān)聯(lián)的部分的本地計(jì)劃候選(步驟S6)。這里,將由本地計(jì)劃選擇部31生成的本地計(jì)劃的候選在圖12中例示。圖12所示的本地計(jì)劃候選2是作為計(jì)算機(jī)2的從屬服務(wù)器的本地計(jì)劃選擇部31基于圖11所記載的分散計(jì)劃和圖4所記載的數(shù)據(jù)庫信息111生成的、關(guān)于計(jì)算機(jī)2的本地計(jì)劃候選的一例。如圖12所示的本地計(jì)劃候選2所示,本地計(jì)劃候選2具有“運(yùn)算號(hào)碼”302、“部分查詢號(hào)碼”303、“運(yùn)算內(nèi)容” 304、“事前執(zhí)行運(yùn)算號(hào)碼”305、“執(zhí)行場(chǎng)所” 306、“發(fā)送場(chǎng)所” 307、“輸入變量” 308、“輸出變量” 309的項(xiàng)目。另外,本實(shí)施方式的本地計(jì)劃候選及后述的本地計(jì)劃具有的項(xiàng)目302 309與本實(shí)施方式的分散計(jì)劃表具有的項(xiàng)目142 149相同。另外,在圖12所示的本地計(jì)劃候選2中,在計(jì)算機(jī)2中對(duì)于來自圖4的數(shù)據(jù)庫信息的book之下的year屬性節(jié)點(diǎn)設(shè)定了數(shù)值索引。因此,通過運(yùn)算“數(shù)值索引”實(shí)現(xiàn)用最初的運(yùn)算號(hào)碼I對(duì)應(yīng)于部分查詢號(hào)碼I的部分查詢的處理。運(yùn)算“數(shù)值索引”是下述運(yùn)算針對(duì)設(shè)定了使節(jié)點(diǎn)擁有的值數(shù)值化后的值索引化的數(shù)值索引后得到的節(jié)點(diǎn),高速地取得滿足與給出的數(shù)值之間的比較條件的節(jié)點(diǎn)或者擁有該節(jié)點(diǎn)的文檔的最初的節(jié)點(diǎn)。具體而言,本地計(jì)劃選擇部31從數(shù)值索引內(nèi)找出滿足屬性節(jié)點(diǎn)year的值大于等于1990的條件的book節(jié)點(diǎn),保存到變量$x中。運(yùn)算號(hào)碼2、4、5分別實(shí)施處理部分查詢號(hào)碼3、4、5的部分查詢的運(yùn)算“TRAVERSE (遍歷)”。另外,所謂運(yùn)算“遍歷”,是從XML內(nèi)的某個(gè)節(jié)點(diǎn)(輸入)向某個(gè)節(jié)點(diǎn)(輸出)探索的運(yùn)算。具體而言,從保存在由運(yùn)算號(hào)碼I求出的$x中的book節(jié)點(diǎn)取得作為子節(jié)點(diǎn)的author、title、price,分別保存到變量$z、$u、$v中。運(yùn)算號(hào)碼3、6、7、8是將由分散計(jì)劃制作的數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、分割查詢結(jié)合運(yùn)算原樣保留后的運(yùn)算。
      接著,參照?qǐng)D13,說明本地計(jì)劃候選生成部32基于圖12的本地計(jì)劃候選2再次生成本地計(jì)劃候選的本地計(jì)劃候選生成處理(圖6的步驟S7)。圖13是表示本地計(jì)劃候選生成處理的一例的流程圖。另外,該本地計(jì)劃候選生成處理使用i這樣的變量。i大于等于1,并且小于等于對(duì)象的本地計(jì)劃選擇部31所生成的本地計(jì)劃候選的列表(以下,稱作inputPlanList)內(nèi)的要素?cái)?shù)(I < i < inputPlanList內(nèi)的要素?cái)?shù))。首先,本地計(jì)劃候選生成部32取得圖12所示的本地計(jì)劃候選(步驟S200)。本地計(jì)劃候選生成部32設(shè)i = I、inputPlanList內(nèi)的要素?cái)?shù)=max(步驟S210)。接著,本地計(jì)劃候選生成部32從inputPlanList取得第i個(gè)本地計(jì)劃候選plan (步驟S220)。本地計(jì)劃候選生成部32基于所取得的plan,實(shí)施后述的分割查詢結(jié)合的實(shí)施變量的組合樣式生成處理,制作包括該plan的新的本地計(jì)劃候選列表(步驟S230)。所謂分割查詢結(jié)合的實(shí)施變量的組合樣式生成處理,是使分割查詢結(jié)合前后實(shí)施的運(yùn)算變 化而生成各種各樣的本地計(jì)劃候選的處理,通過圖14的流程圖在后面敘述詳細(xì)情況。本地計(jì)劃候選生成部32取得通過分割查詢結(jié)合的實(shí)施變量的組合樣式生成處理得到的新的本地計(jì)劃候選列表(以下,稱作nextPlanList)(步驟S240)。這里,使用j這樣的變量。j大于等于I,并且小于等于nextPlanList內(nèi)的要素?cái)?shù)(I < j < nextPlanList內(nèi)的要素?cái)?shù))。此外,此時(shí)j = I, nextPlanList內(nèi)的要素?cái)?shù)=finalMax(步驟S250)。接著,本地計(jì)劃候選生成部32從nextPlanList中取得第j個(gè)本地計(jì)劃候選nextPlan(步驟S260)。本地計(jì)劃候選生成部32基于所取得的nextPlan實(shí)施分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理,制作包括nextPlan的新的本地計(jì)劃候選列表(步驟S270)。所謂分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理,是通過使分割查詢結(jié)合運(yùn)算的執(zhí)行場(chǎng)所變化而生成各種本地計(jì)劃候選的處理,通過圖15的流程圖在后面敘述詳細(xì)情況。本地計(jì)劃候選生成部32基于分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理結(jié)果,制作新的本地計(jì)劃候選列表finalPlanList (步驟S280)。將制作出的finalPlanList內(nèi)的本地計(jì)劃候選追加到作為最終輸出的輸出候選計(jì)劃列表outputList中(步驟S290)。接著,前進(jìn)到步驟S300,在j中代入j+1 (j = j+1)(步驟S300)。本地計(jì)劃候選生成部32判斷該j是否小于等于finalMax (步驟S310)。在j小于等于finalMax的情況下(步驟S310為“是”),回到步驟S260,重復(fù)處理。在j比finalMax大的情況下(步驟S310為“否”),前進(jìn)到步驟S320,在i中代入i+l(i = i+1)(步驟 S320)。接著,判斷i是否小于等于max(步驟S330)。在i小于等于max的情況下(步驟S330為“是”),回到步驟S220,重復(fù)處理。在i比max大的情況下結(jié)束。最終輸出是保存在outputList中的本地計(jì)劃候選列表,本地計(jì)劃選擇部31從該本地計(jì)劃候選列表中最終選擇I個(gè)本地計(jì)劃。接著,按照?qǐng)D14的流程圖,說明由本地計(jì)劃候選生成部32進(jìn)行的、圖13的步驟S230中的分割查詢結(jié)合的實(shí)施變量的組合樣式生成處理。另外,該分割查詢結(jié)合的實(shí)施變量的組合樣式生成處理使用i這樣的變量。i大于等于1,并且小于等于輸入對(duì)象的本地計(jì)劃候選plan的運(yùn)算號(hào)碼(I < i < plan的運(yùn)算號(hào)碼的最大值)。首先,本地計(jì)劃候選生成部32將plan登記到作為最終輸出的臨時(shí)候選列表nextPlanList中(步驟S400)。此外,本地計(jì)劃候選生成部32設(shè)i = I、plan的運(yùn)算號(hào)碼的最大值=max (步驟S410)。接著,本地計(jì)劃候選生成部32取得所輸入的本地計(jì)劃候選plan的運(yùn)算號(hào)碼i的運(yùn)算E (步驟S420)。在所取得的運(yùn)算E是分割查詢結(jié)合運(yùn)算的情況下(步驟S430為“是”),取得Plan的第i+Ι個(gè)運(yùn)算號(hào)碼的數(shù)據(jù)發(fā)送運(yùn)算S,再取得運(yùn)算S的輸入變量的全部組合樣式的列表 varPatternList (步驟 S440)。接著,設(shè)j := I、nextPlanList內(nèi)的要素?cái)?shù)=nextMax (步驟S450)。接著,取得nextPlanList 的第 j 個(gè)計(jì)劃 nextPlan (步驟 S460)。接著,設(shè) k := I、varPatternList 內(nèi)的要素?cái)?shù)=VtMax (步驟S470)。接著,制作復(fù)制了 nextPlan的內(nèi)容后的新的本地計(jì)劃候選newPlan (步驟 S480)。接著,本地計(jì)劃候選生成部32實(shí)施以下3個(gè)處理(步驟S490)。第I個(gè)是,取得varPatternList的第k個(gè)要素targetVars的處理,第2個(gè)是,取得newPlan的第i+Ι個(gè)運(yùn) 算號(hào)碼的數(shù)據(jù)發(fā)送運(yùn)算AS的處理,第3個(gè)是,取得newPlan的第i_l個(gè)運(yùn)算號(hào)碼的數(shù)據(jù)接收運(yùn)算AR的處理。接著,判斷運(yùn)算AS的輸入變量列表與targetVars的內(nèi)容是否一致(步驟S500)。在運(yùn)算AS的輸入變量列表為空的情況下(步驟S500為“是”),不需要運(yùn)算E、運(yùn)算AS、運(yùn)算AR,所以將各運(yùn)算內(nèi)容變更為du_y(空)。du_y是什么都不做的運(yùn)算,在后面刪除。這里,由于運(yùn)算號(hào)碼錯(cuò)開,所以不刪除。接著,為了變更處于比運(yùn)算E靠前的數(shù)據(jù)發(fā)送運(yùn)算的輸入輸出變量和事前執(zhí)行運(yùn)算號(hào)碼以便事前發(fā)送不進(jìn)行分割查詢結(jié)合的變量,實(shí)施以下4個(gè)處理(步驟S520)。第I個(gè)是,取得以運(yùn)算E的輸入變量為輸入變量的數(shù)據(jù)發(fā)送運(yùn)算BS的處理,第2個(gè)是,向BS的輸入輸出變量列表追加包含在targetVars中的變量的處理,第3個(gè)是,取得輸出targetVars的變量的運(yùn)算的運(yùn)算號(hào)碼列表PreExeList的處理,第4個(gè)是,在BS的事前執(zhí)行運(yùn)算號(hào)碼中KApreExeList的值的處理。本地計(jì)劃候選生成部32將進(jìn)行了步驟S520的處理之后的newPlan追加到newPlanList 中(步驟 S530)。然后,在k中代入k+1 (k = k+1)(步驟S540),判斷k是否小于等于vtMax(步驟S550)。在k小于等于vtMax的情況下(步驟S550為“是”),回到步驟S480,重復(fù)處理。在k比vtMax大的情況下(步驟S550為“否”),前進(jìn)到步驟S560中,在j中代入j+1 (j =j+1)(步驟 S560)。本地計(jì)劃候選生成部32判斷j是否小于等于nextMax(步驟S570)。在j小于等于nextMax的情況下(步驟S570為“是”),回到步驟S460,重復(fù)處理。在j比nextMax大的情況下(步驟S570為“否”),前進(jìn)到步驟S580,將newPlanList內(nèi)的要素全部轉(zhuǎn)移到nextPlanList中(步驟S580)。然后,向步驟S590前進(jìn),在i中代入i+1 (i : = i+Ι)(步驟S590)。另外,在運(yùn)算E不是分割查詢結(jié)合的情況下(步驟S430為“否”),也前進(jìn)到步驟S590,在i中代入i+1 (i = i+1)(步驟S590)。S卩,在步驟S430為“否”時(shí)或接著步驟S580進(jìn)行步驟S590的處理。本地計(jì)劃候選生成部32判斷i是否小于等于max (步驟S600)。在i小于等于max的情況下(步驟S600為“是”),回到步驟S420,重復(fù)處理。在i比max大的情況下結(jié)束。處理的結(jié)束后的最終輸出是保存在nextPlanList中的本地計(jì)劃候選列表,回到圖13的步驟S240而繼續(xù)本地計(jì)劃候選生成部32的處理。接著,按照?qǐng)D15的流程圖對(duì)分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理進(jìn)行說明。另夕卜,該分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理使用i這樣的變量。i大于等于1,并且小于等于輸入對(duì)象的本地計(jì)劃候選nextPlan的運(yùn)算號(hào)碼(I < i < nextPlan的運(yùn)算號(hào)碼的最大值)。本地計(jì)劃候選生成部32將nextPlan登記到作為最終輸出的最終候選列表finalPlanList 中(步驟 S700)。此外,在處理的開始時(shí)刻,設(shè)i = I、nextPlan的運(yùn)算號(hào)碼的最大值=max (步驟S710)。首先,分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理取得所輸入的本地計(jì)劃候選 nextPlan的運(yùn)算號(hào)碼i的運(yùn)算E (步驟S720)。在所取得的運(yùn)算E是分割查詢結(jié)合運(yùn)算的情況下(步驟S730為“是”),取得nextPlan的第i+Ι個(gè)運(yùn)算號(hào)碼的運(yùn)算S (步驟S740)。接著,設(shè) j : = KfinalPlanList 內(nèi)的要素?cái)?shù)=finalMax (步驟 S750)。接著,取得 finalPlanList的第j個(gè)計(jì)劃finalPlan(步驟S760)。接著,制作復(fù)制了 finalPlan的內(nèi)容后的新的本地計(jì)劃候選newPlan (步驟S770)。接著,本地計(jì)劃候選生成部32為了將分割查詢結(jié)合的執(zhí)行場(chǎng)所變更為主服務(wù)器而實(shí)施以下5個(gè)處理(步驟S780)。第I個(gè)是,取得分割結(jié)合運(yùn)算E緊后面的發(fā)送數(shù)據(jù)運(yùn)算S的處理。第2個(gè)是,取得分割查詢結(jié)合運(yùn)算E緊前面的接收數(shù)據(jù)運(yùn)算R的處理。第3個(gè)是,將運(yùn)算R的運(yùn)算內(nèi)容變更為發(fā)送數(shù)據(jù)運(yùn)算、對(duì)輸入輸出變量追加S的輸入變量、將執(zhí)行場(chǎng)所變更為運(yùn)算S的發(fā)送目的地一S的發(fā)送源的處理。第4個(gè)處理是,將變?yōu)椴恍枰倪\(yùn)算S的運(yùn)算內(nèi)容變更為dummy的處理。第5個(gè)處理是,將運(yùn)算E的執(zhí)行場(chǎng)所變更為S的發(fā)送源的處理。接著,前進(jìn)到步驟S790,將在步驟S780中修正后的newPlan追加到新計(jì)劃列表newPlanList中(步驟S790)。接著,前進(jìn)到步驟S800,在j中代入j+1 (j = j+1)(步驟S800)。接著,判斷j是否小于等于finalMax (步驟S810)。在j小于等于finalMax的情況下(步驟S810為“是”),回到步驟S760,重復(fù)處理。在j比finalMax大的情況下(步驟S810為“否”),前進(jìn)到步驟S820 JfnewPlanList內(nèi)的要素全部轉(zhuǎn)移到finalPlanList中(步驟S820)。再向步驟S830前進(jìn)。此外,在運(yùn)算E不是分割查詢結(jié)合的情況下(步驟S730為“否”),也前進(jìn)到步驟S830,在i中代入i+1 (i = i+1)(步驟S830)。S卩,在步驟S730為“否”時(shí)或接著步驟S820進(jìn)行步驟S830的處理。接著,判斷i是否小于等于max (步驟S840)。在i小于等于max的情況下(步驟S840為“是”),回到步驟S720而重復(fù)處理。在i比max大的情況下,前進(jìn)到步驟S850。步驟S850是,將處于finalPlanList內(nèi)的全部的本地計(jì)劃候選內(nèi)的運(yùn)算中的、運(yùn)算內(nèi)容為dummy者刪除而結(jié)束(步驟S850)。最終輸出是保存在finalPlanList中的本地計(jì)劃候選列表,回到圖13的步驟S280,繼續(xù)本地計(jì)劃候選生成部32的處理。在圖12所示的本地計(jì)劃候選2是由本地計(jì)劃選擇部31得到的本地計(jì)劃候選的情況下,將進(jìn)行上述本地計(jì)劃候選生成處理后的結(jié)果而得到的新的本地計(jì)劃候選2-1至2-6表示在圖16至圖21中。具體地說明本地計(jì)劃候選生成部32生成這些本地計(jì)劃候選2-1至2-6的處理。首先,圖12的本地計(jì)劃候選2作為分割查詢結(jié)合的實(shí)施變量的組合樣式處理的輸入被傳遞(圖 13 的步驟 S200、S210、S220、S230)。接著,在分割查詢結(jié)合的實(shí)施變量的組合樣式處理中,將輸入的圖12的本地計(jì)劃候選2(以下,設(shè)為plan)登記到臨時(shí)候選列表(以下,設(shè)為nextPlanList)中(圖14的步驟S400)。接著,在plan中,由于在i成為7之前不是分割查詢結(jié)合運(yùn)算,所以將變量i每次增加I (步驟S420、S430、S550、S540)。i為7時(shí)的運(yùn)算E是分割查詢結(jié)合,所以取得運(yùn)算號(hào)碼為8的運(yùn)算S,作為S的輸入變量($u、$v)的全部組合而將3個(gè)組合($u)、($v)、($u、$v)保存到varPatternList中(步驟S440)。接著,設(shè)j = I,取得作為nextPlanList內(nèi)的第I個(gè)要素最先登記的圖12的plan作為nextPlan(步驟S450、S460)。接著,制作將nextPlan 復(fù)制而成的 newPlan (步驟 S480)。
      接著,取得varPatternList的第I個(gè)要素($u),取得newPlan的運(yùn)算號(hào)碼8的數(shù)據(jù)發(fā)送運(yùn)算AS和運(yùn)算號(hào)碼6的數(shù)據(jù)接收運(yùn)算AR(步驟S490)。由于AS的輸入變量($u、$v)與($u)不一致,所以取得發(fā)送分割查詢結(jié)合的輸入變量的運(yùn)算號(hào)碼3的數(shù)據(jù)發(fā)送運(yùn)算,對(duì)輸入輸出變量追加處于分割查詢結(jié)合的對(duì)象以外的變量$u。再將輸出變量$u的運(yùn)算號(hào)碼4追加到運(yùn)算號(hào)碼3的事前執(zhí)行運(yùn)算號(hào)碼中(步驟S500、S520)。將由此得到的newPlan追加到newPlanList中(步驟S530)。將作為newPlan的本地計(jì)劃候選2_1的內(nèi)容表示在圖16中。其中,在圖16所示的本地計(jì)劃候選2-1中,已刪除運(yùn)算內(nèi)容du_y的運(yùn)算。接著,在k中代入2,再次制作復(fù)制了圖12的plan而成的newPlan (步驟S480)。接著,取得varPatternList的第2個(gè)要素($v),取得newPlan的運(yùn)算號(hào)碼8的數(shù)據(jù)發(fā)送運(yùn)算AS和運(yùn)算號(hào)碼6的數(shù)據(jù)接收運(yùn)算AR(步驟S490)。由于AS的輸入變量($u、$v)與($v)不一致,所以取得發(fā)送分割查詢結(jié)合的輸入變量$z的運(yùn)算號(hào)碼3的數(shù)據(jù)發(fā)送運(yùn)算,在輸入輸出變量中追加處于分割查詢結(jié)合的對(duì)象以外的變量扒。再將輸出變量$v的運(yùn)算號(hào)碼5追加到運(yùn)算號(hào)碼3的事前執(zhí)行運(yùn)算號(hào)碼中(步驟S500、S520)。將由此得到的newPlan追加到newPlanList中(步驟S530)。將作為newPlan的本地計(jì)劃候選2-2的內(nèi)容表示在圖17中。其中,在圖17所示的本地計(jì)劃候選2-2中,已刪除運(yùn)算內(nèi)容du_y的運(yùn)算。接著,在k中代入3,再次制作復(fù)制了圖12的plan而成的newPlan (步驟S480)。接著,取得varPatternList的第3個(gè)要素($u、$v),取得newPlan的運(yùn)算號(hào)碼8的數(shù)據(jù)發(fā)送運(yùn)算AS和運(yùn)算號(hào)碼6的數(shù)據(jù)接收運(yùn)算AR(步驟S490)。由于AS的輸入變量($u、$v)和varPatternList的第3個(gè)要素($u、$v)完全一致,所以將運(yùn)算E、AS、AR的運(yùn)算內(nèi)容變更為dummy (步驟S510)。接著,取得發(fā)送分割查詢結(jié)合的輸入變量的運(yùn)算號(hào)碼3的數(shù)據(jù)發(fā)送運(yùn)算,在輸入輸出變量中追加處于分割查詢結(jié)合的對(duì)象以外的變量$u、$v。進(jìn)而,將輸出變量$u、$v的運(yùn)算號(hào)碼4、5追加到運(yùn)算號(hào)碼3的事前執(zhí)行運(yùn)算號(hào)碼中(步驟S520)。將由此得到的newPlan追加到newPlanList中(步驟S530)。將作為該newPlan的本地計(jì)劃候選2-3的內(nèi)容表示在圖18中。其中,在圖18所示的本地計(jì)劃候選2-3中,已刪除運(yùn)算內(nèi)容dummy的運(yùn)算。接著,在k中代入4(步驟S540)。接著,varPatternList由于要素?cái)?shù)僅到3,所以在j中代入2 (步驟S590、S580)。接著,nextPlanList由于要素?cái)?shù)只有I個(gè),所以將到目前為止得到的newPlanList內(nèi)的3個(gè)本地計(jì)劃候選圖16、17、18所示的本地計(jì)劃候選轉(zhuǎn)移到nextPlanList中(步驟S570、S560)。nextPlanList在該時(shí)刻作為要素而擁有圖12、圖16至圖18的本地計(jì)劃候選。接著,即使在i中代入8以后的值,也不存在分割查詢結(jié)合,所以結(jié)束分割查詢結(jié)合的實(shí)施變量的組合樣式生成處理(步驟S550、S540、S420、S430)。接著,作為分割查詢結(jié)合的實(shí)施變量的組合樣式生成處理的輸出列表而取得保存有圖12、圖16至圖18的本地計(jì)劃候選的nextPlanList (圖13的步驟S240)。接著,在j中代入1,取得作為nextPlanList的第I個(gè)要素的圖12的本地計(jì)劃候選nextPlan (步驟S250、S260)。接著,nextPlan作為分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理的輸入被傳遞(步驟 S270)。接著,將作為分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理的輸入傳遞來的圖12的本地計(jì)劃候選nextPlan登記到最終候選列表finalPlanList中(圖15的步驟S700)。接著,在i中代入1(步驟S710)。
      在nextPlan中,在i成為7之前不是分割查詢結(jié)合運(yùn)算,所以將變量i每次增加1(步驟S720、S730、S830、S840)。i為7時(shí)的運(yùn)算E是分割查詢結(jié)合,所以取得運(yùn)算號(hào)碼為8的數(shù)據(jù)發(fā)送運(yùn)算S(步驟S740)。接著,在j中代入I,取得作為finalPlanList內(nèi)的第I個(gè)要素而最初登記的、圖12所示的本地計(jì)劃候選nextPlan作為finalPlan (步驟S750、S760)。接著,制作復(fù)制了 finalPlan而成的newPlan (步驟S770)。為了將部分查詢號(hào)碼的執(zhí)行場(chǎng)所變更為主服務(wù)器而進(jìn)行以下的處理(步驟S780)。最先取得運(yùn)算號(hào)碼8的發(fā)送數(shù)據(jù)運(yùn)算S和運(yùn)算號(hào)碼6的接收數(shù)據(jù)運(yùn)算R。接著,將R變更為發(fā)送數(shù)據(jù)運(yùn)算,輸入輸出變量變更為添加了 S的輸入變量$u、$v后的變量,將執(zhí)行場(chǎng)所變更為"計(jì)算機(jī)2 —O"。進(jìn)而,將S的運(yùn)算內(nèi)容變更為dummy。最后,將E的執(zhí)行場(chǎng)所變更為計(jì)算機(jī)O。接著,將由此得到的newPlan追加到newPlanList中(步驟S790)。將作為newPlan的本地計(jì)劃候選2-4的內(nèi)容表示在圖19中。其中,在圖19所示的本地計(jì)劃候選2-4中,已刪除運(yùn)算內(nèi)容du_y的運(yùn)算。接著,在j中代入2,但finalPlanList由于要素?cái)?shù)僅有I個(gè),所以將到目前為止得到的newPlanList內(nèi)的I個(gè)本地計(jì)劃候選2_4轉(zhuǎn)移到finalPlanList中(步驟S800、S810、S820)。接著,由于即使在i中代入8以后的值也不存在分割查詢結(jié)合,所以將到目前為止在finalPlanList中得到的各本地計(jì)劃候選內(nèi)存在的運(yùn)算內(nèi)容為du_y的運(yùn)算刪除,分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理結(jié)束(步驟S830、S840、S850)。接著,作為分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理的輸出列表而取得保存有圖12、圖19的本地計(jì)劃候選的finalPlanList (圖13的步驟S280)。接著,將finalPlanList內(nèi)的要素圖12、圖19的本地計(jì)劃候選轉(zhuǎn)移到輸出候選計(jì)劃列表outputList中(步驟S290)。接著,在j中代入2,取得作為nextPlanList的第2個(gè)要素的圖16的本地計(jì)劃候選nextPlan (步驟S300、S310、S260)。接著,nextPlan作為分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理的輸入被傳遞(步驟S270)。在分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理中,圖16所示的本地計(jì)劃候選2-1與圖12所示的本地計(jì)劃候選2相比,計(jì)劃的形式除了輸入輸出變量149以外是大致相同的,由于是與圖12所示的本地計(jì)劃候選2為輸入的情況相同的動(dòng)作,所以省略圖16所示的本地計(jì)劃候選2-1為輸入的情況下的詳細(xì)說明。分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理的輸出列表finalPlanList的內(nèi)容成為圖16、圖20的本地計(jì)劃候選列表。接著,將finalPlanList內(nèi)的要素圖16、圖20的本地計(jì)劃候選轉(zhuǎn)移到輸出候選計(jì)劃列表outputList中(步驟S290)。接著,在j中代入3,取得作為nextPlanList的第3個(gè)要素的圖17的本地計(jì)劃候選nextPlan (步驟S300、S310、S260)。接著,nextPlan作為分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理的輸入被傳遞(步驟S270)。在分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理中,圖17所示的本地計(jì)劃候選2-2與圖12所示的本地計(jì)劃候選2相比,計(jì)劃的形式除了輸入輸出變量149以外是大致相同的,由于是與圖12所示的本地計(jì)劃候選2為輸入的情況相同的動(dòng)作,所以省略圖17所示的本地計(jì)劃候選2-2為輸入的情況下的詳細(xì)說明。分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理的輸出列表finalPlanList的內(nèi)容成為圖17、圖21的本地計(jì)劃候選列表。將finalPlanList內(nèi)的要素圖17、圖21的本地計(jì)劃候選轉(zhuǎn)移到輸出候選計(jì)劃列 表outputList中(步驟S290)。接著,在j中代入4,取得作為nextPlanList的第4個(gè)要素的圖18的本地計(jì)劃候選nextPlan (步驟S300、S310、S260)。接著,nextPlan作為分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理的輸入被傳遞(步驟S270)。將作為分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理的輸入傳遞來的圖18的本地計(jì)劃候選nextPlan登記到最終候選列表finalPlanList中(圖15的步驟S700)。接著,在i中代入1(步驟S720)。接著,在nextPlan中,將變量i每次增加I,但由于到最后之前不存在分割查詢結(jié)合運(yùn)算,所以轉(zhuǎn)移到步驟S850中(步驟S720、S730、S830、S840)。在步驟S850中,刪除在登記于finalPlanList中的圖18所示的本地計(jì)劃候選2_3內(nèi)存在的運(yùn)算內(nèi)容為dummy的運(yùn)算,分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理結(jié)束(步驟S850)。分割查詢結(jié)合的實(shí)施場(chǎng)所樣式生成處理的輸出列表finalPlanList的內(nèi)容成為圖19的本地計(jì)劃候選列表。將finalPlanList內(nèi)的要素圖19的本地計(jì)劃候選2_4轉(zhuǎn)移到輸出候選計(jì)劃列表outputList中(步驟S290)。接著,在j中代入5 (步驟S300)。由于登記在nextPlanList中的要素?cái)?shù)僅為4,所以在i中代入2(步驟S310、S320)。由于inputPlanList的要素?cái)?shù)僅為1,所以結(jié)束本地計(jì)劃候選生成處理。登記在最終得到的本地計(jì)劃候選列表outputList中的本地計(jì)劃候選是圖16至圖21。在圖12的本地計(jì)劃候選2中,通過運(yùn)算號(hào)碼7,在計(jì)算機(jī)2中將由于在服務(wù)器間運(yùn)算中需要而通過運(yùn)算號(hào)碼3的數(shù)據(jù)發(fā)送運(yùn)算發(fā)送來的變量$z與通過和服務(wù)器間運(yùn)算并行執(zhí)行的運(yùn)算4、5得到的變量$u、$v分割結(jié)合。圖16所示的本地計(jì)劃候選2-1相對(duì)于圖12所示的本地計(jì)劃候選2是如下本地計(jì)劃候選通過使運(yùn)算號(hào)碼4不與服務(wù)器間運(yùn)算并行執(zhí)行,而在運(yùn)算號(hào)碼3的數(shù)據(jù)發(fā)送運(yùn)算中發(fā)送變量$z和$u,在運(yùn)算號(hào)碼7的分割結(jié)合中與$v分割結(jié)合。圖17所示的本地計(jì)劃候選2-2相對(duì)于圖12所示的本地計(jì)劃候選2是如下本地計(jì)劃候選通過使運(yùn)算號(hào)碼5不與服務(wù)器間運(yùn)算并行執(zhí)行,而在運(yùn)算號(hào)碼3的數(shù)據(jù)發(fā)送運(yùn)算中發(fā)送變量$z和$v,在運(yùn)算號(hào)碼7的分割結(jié)合中與$u分割結(jié)合。圖18所示的本地計(jì)劃候選2-3相對(duì)于圖12所示的本地計(jì)劃候選2是如下本地計(jì)劃候選通過使運(yùn)算號(hào)碼4、5不與服務(wù)器間運(yùn)算并行執(zhí)行,在運(yùn)算號(hào)碼3的數(shù)據(jù)發(fā)送運(yùn)算中發(fā)送變量$Z、$V和$u而不進(jìn)行分割結(jié)合。圖19所示的本地計(jì)劃候選2-4相對(duì)于圖12所示的本地計(jì)劃候選2,是執(zhí)行場(chǎng)所不是計(jì)算機(jī)2而是計(jì)算機(jī)O的情況下的本地計(jì)劃候選。圖20所示的本地計(jì)劃候選2-5相對(duì)于圖16所示的本地計(jì)劃候選2_1,是執(zhí)行場(chǎng)所不是計(jì)算機(jī)2而是計(jì)算機(jī)O的情況下的本地計(jì)劃候選。圖21所示的本地計(jì)劃候選2-6相對(duì)于圖17所示的本地計(jì)劃候選2-2,是執(zhí)行場(chǎng)所不是計(jì)算機(jī)2而是計(jì)算機(jī)O的情況下的本地計(jì)劃候選。如以上這樣,在圖12以及圖16至圖21所示的本地計(jì)劃候選中,生成網(wǎng)羅了進(jìn)行分割結(jié)合運(yùn)算的情況和不進(jìn)行的情況下的本地計(jì)劃候選、以及在進(jìn)行分割結(jié)合運(yùn)算的情況下在分割結(jié)合時(shí)作為對(duì)象的全部變量的組合、和分割結(jié)合的實(shí)施場(chǎng)所是主服務(wù)器或從屬服務(wù)器的組合在內(nèi)的本地計(jì)劃候選。
      本地計(jì)劃選擇部31從這些本地計(jì)劃候選中計(jì)算由估計(jì)執(zhí)行時(shí)間或估計(jì)執(zhí)行計(jì)算量構(gòu)成的開銷,選擇開銷為最小的本地計(jì)劃(步驟S8)。這里,說明本地計(jì)劃候選的估計(jì)執(zhí)行時(shí)間計(jì)算的一例。本地計(jì)劃候選的估計(jì)執(zhí)行時(shí)間例如基于在圖22中舉出的各運(yùn)算的處理估計(jì)時(shí)間用的參數(shù)、和包含在本地計(jì)劃中的運(yùn)算來計(jì)算。各運(yùn)算的參數(shù)例如是“數(shù)值索引0.001msec/輸出變量的件數(shù)”、“TRAVERSE(遍歷)1msec/輸入變量的件數(shù)”、“分割查詢結(jié)合lmsec/輸入變量的件數(shù)”、“服務(wù)器間J0IN(聯(lián)合):1msec/輸入變量的件數(shù)”、“數(shù)據(jù)發(fā)送5msec+(O. OOlmsec/輸入變量的件數(shù))X變量的數(shù)”、“數(shù)據(jù)接收5mSec+(0.001mSec/輸入變量的件數(shù))X變量的數(shù)”等。另夕卜,預(yù)先根據(jù)運(yùn)算內(nèi)容設(shè)定在輸出變量中保存的件數(shù)。這里,以下說明圖12所示的本地計(jì)劃候選2的估計(jì)時(shí)間的計(jì)算處理的一例。另夕卜,根據(jù)圖4可知,在計(jì)算機(jī)2中登記有I萬件XML數(shù)據(jù),所以由此計(jì)算各運(yùn)算的估計(jì)執(zhí)行時(shí)間。(I)在數(shù)值索引中使用" > ="運(yùn)算的情況下,估計(jì)整體的10%命中。因此,估計(jì)I萬件的10%即1000件命中。因而,數(shù)值索引的估計(jì)計(jì)算時(shí)間為O. OOlmsec/輸出變量的件數(shù) X 1000 件=lmsec。(2)遍歷的輸入變量的件數(shù)根據(jù)(I)的結(jié)果,估計(jì)為1000件。假設(shè)輸出不變化而估計(jì)為1000件。因而,遍歷的估計(jì)計(jì)算時(shí)間為lmsec/輸入變量的件數(shù)X 1000件=1000msec。(3)數(shù)據(jù)發(fā)送的輸入變量的件數(shù)根據(jù)(2)的結(jié)果,估計(jì)為1000件。因而,數(shù)據(jù)發(fā)送的估計(jì)計(jì)算時(shí)間為5msec+0. OOlmsec/輸入變量的件數(shù)X 1000X I = 6msec。(4)遍歷的輸入變量的件數(shù)根據(jù)(2)的結(jié)果,估計(jì)為1000件。假設(shè)輸出不變化而估計(jì)為1000件。因而,遍歷的估計(jì)計(jì)算時(shí)間為lmsec/輸入變量的件數(shù)X 1000件=1000msec。(5)遍歷的輸入變量的件數(shù)根據(jù)(4)的結(jié)果,估計(jì)為1000件。假設(shè)輸出不變化而估計(jì)為1000件。因而,遍歷的估計(jì)計(jì)算時(shí)間為lmsec/輸入變量的件數(shù)X 1000件=1000msec。(6)關(guān)于數(shù)據(jù)接收的輸入變量的件數(shù),在主服務(wù)器中執(zhí)行服務(wù)器間聯(lián)合而削減到40 %,估計(jì)為400件。因而,數(shù)據(jù)接收的估計(jì)計(jì)算時(shí)間為5msec+0. OOlmsec/ 輸入變量的件數(shù) X 400>< I N 6msec。(7)分割查詢結(jié)合的輸入件數(shù)根據(jù)(5)、(6)而估計(jì)共計(jì)為1400件。因而,分割查詢結(jié)合的估計(jì)計(jì)算時(shí)間為lmsec/輸入變量的件數(shù)X 1400件=1400msec。(8)在(3)中向主服務(wù)器進(jìn)行數(shù)據(jù)發(fā)送后,在主服務(wù)器中執(zhí)行圖11的分散計(jì)劃的運(yùn)算號(hào)碼10的服務(wù)器間聯(lián)合。這里,設(shè)為服務(wù)器間聯(lián)合的估計(jì)計(jì)算時(shí)間在分散計(jì)劃生成部13中以與本地計(jì)劃候選的估計(jì)計(jì)算時(shí)間同樣的考慮方式計(jì)算后、與分散計(jì)劃一起發(fā)送給從屬服務(wù)器。在分散計(jì)劃生成部13中,服務(wù)器間聯(lián)合的輸入件數(shù)假定為各從屬服務(wù)器的登記數(shù)據(jù)數(shù)的1/3左右來加以計(jì)算。因而,服務(wù)器間聯(lián)合的估計(jì)時(shí)間為lmsec/輸入變量的件數(shù) X 11250 件 +3 = 3750msec。另外,在圖11中,作為能夠由分割查詢結(jié)合運(yùn)算追加部14與運(yùn)算號(hào)碼10的服務(wù)器間聯(lián)合并行執(zhí)行的運(yùn)算而舉出的、運(yùn)算號(hào)碼4、5的服務(wù)器內(nèi)運(yùn)算,對(duì)應(yīng)于本地計(jì)劃候選2的運(yùn)算號(hào)碼4、5的遍歷。因此,可知運(yùn)算號(hào)碼4、5與運(yùn)算號(hào)碼3、6以及服務(wù)器間聯(lián)合并行實(shí)施,所以本地計(jì)劃候選2的估計(jì)時(shí)間為以下兩個(gè)估計(jì)時(shí)間的較長(zhǎng)者。(1) + (2) + (3) + (8) + (6) + (7) = 6163msec
      (1) + (2) + (4) + (5) + (7) = 4401msec結(jié)果,估計(jì)為6163msec。作為另一例,在將本地計(jì)劃候選2-3在計(jì)算機(jī)2中執(zhí)行時(shí),全部處理不能并行執(zhí)行,所以估計(jì)時(shí)間為將(I)、(2)、(3)、(4)、及(5)的運(yùn)算與服務(wù)器間聯(lián)合相加后的值。即,為lmsec+1000msec+1000msec+1000msec+6msec+3750msec = 6757msec,計(jì)算出本地計(jì)劃候選2相對(duì)而言在包含服務(wù)器間聯(lián)合時(shí)變快。這樣,通過對(duì)本地計(jì)劃候選的估計(jì)計(jì)算時(shí)間也加上由主服務(wù)器執(zhí)行的服務(wù)器間運(yùn)算的估計(jì)時(shí)間,能夠判斷通過由分割查詢結(jié)合運(yùn)算追加部追加后的分割查詢結(jié)合進(jìn)行的優(yōu)化是否有效。在本實(shí)施方式中,假設(shè)計(jì)算機(jī)I選擇圖18所示的本地計(jì)劃候選2-3,計(jì)算機(jī)2選擇圖12所示的本地計(jì)劃候選2,計(jì)算機(jī)3選擇圖19所示的本地計(jì)劃候選2-4分別作為本地計(jì)劃。各計(jì)算機(jī)的本地計(jì)劃選擇部31將所選擇的本地計(jì)劃發(fā)送給主服務(wù)器的分散計(jì)劃更新部15。如果本地計(jì)劃選擇部31將所選擇的本地計(jì)劃發(fā)送給分散計(jì)劃更新部15,則從屬服務(wù)器執(zhí)行對(duì)象的本地計(jì)劃(步驟S9)。接收到本地計(jì)劃的主服務(wù)器的分散計(jì)劃更新部15與從屬服務(wù)器進(jìn)行的步驟S9并行地進(jìn)行分散計(jì)劃更新處理(步驟S10)。這里,說明主服務(wù)器的分散計(jì)劃更新部15在計(jì)算機(jī)I、計(jì)算機(jī)2、計(jì)算機(jī)3分別選擇了圖18、圖12、圖19的本地計(jì)劃候選的情況下按照?qǐng)D23的流程圖對(duì)圖11的分散計(jì)劃進(jìn)行分散計(jì)劃的更新的情況下的分散計(jì)劃更新處理。另外,該分散計(jì)劃更新處理使用i這樣的變量。i大于等于1,并且小于等于對(duì)象的從屬服務(wù)器數(shù)(I ^ i <從屬服務(wù)器數(shù))。在處理的開始時(shí)刻,是i = I。此外,設(shè)從屬服務(wù)器數(shù)=max (步驟S900)。分散計(jì)劃更新部15取得計(jì)算機(jī)號(hào)碼i的本地計(jì)劃LPlan (步驟S910)。接著,檢查分散計(jì)劃與本地計(jì)劃之間的關(guān)于分割查詢結(jié)合的差分(步驟S920)。通過差分檢查,在LPlan中判斷分割查詢結(jié)合是否被完全刪除(步驟S930)。在LPlan中分割查詢結(jié)合被完全刪除的情況下(步驟S930為“是”),從處于分散計(jì)劃中的分割查詢結(jié)合以及處于其前后的數(shù)據(jù)發(fā)送運(yùn)算、數(shù)據(jù)接收運(yùn)算的執(zhí)行場(chǎng)所中刪除計(jì)算機(jī)i (步驟S940)。接著,判斷刪除后的結(jié)果分割查詢結(jié)合運(yùn)算的執(zhí)行場(chǎng)所是否為空(步驟 S950)。在分割查詢結(jié)合運(yùn)算的執(zhí)行場(chǎng)所為空的情況下(步驟S950為“是”),將處于分散計(jì)劃中的分割查詢結(jié)合以及處于其前后的數(shù)據(jù)發(fā)送運(yùn)算、數(shù)據(jù)接收運(yùn)算刪除(步驟S960)。接著,前進(jìn)到步驟S970。此外,在分割查詢結(jié)合運(yùn)算的執(zhí)行場(chǎng)所不是空的情況下(步驟S950為“否”),前進(jìn)到步驟S970。進(jìn)而,在LPlan中分割查詢結(jié)合沒有被完全刪除的情況下(步驟S930為“否”),前進(jìn)到步驟S970。S卩,在步驟S930為“否”的情況下、或者在步驟S950為“否”的情況下、或者接著步驟S960進(jìn)行步驟S970的處理。在步驟S970中,判斷在LPlan中是否變更了分割查詢結(jié)合的執(zhí)行場(chǎng)所。在LPlan中變更了分割查詢結(jié)合的執(zhí)行場(chǎng)所的情況下(步驟S970為“是”),從處于分散計(jì)劃中的分割查詢結(jié)合、處于其前后的數(shù)據(jù)發(fā)送運(yùn)算、以及數(shù)據(jù)接收運(yùn)算的執(zhí)行場(chǎng) 所中刪除計(jì)算機(jī)i (步驟S980)。接著,判斷刪除后的結(jié)果分割查詢結(jié)合運(yùn)算的執(zhí)行場(chǎng)所是否為空(步驟S990)。在分割查詢結(jié)合運(yùn)算的執(zhí)行場(chǎng)所為空的情況下(步驟S990為“是”),將處于分散計(jì)劃中的分割查詢結(jié)合以及處于其前后的數(shù)據(jù)發(fā)送運(yùn)算、數(shù)據(jù)接收運(yùn)算刪除(步驟S1000)。接著,前進(jìn)到步驟S990。此外,在分割查詢結(jié)合運(yùn)算的執(zhí)行場(chǎng)所不是空的情況下(步驟S990為“否”),前進(jìn)到步驟S1010。S卩,在步驟S990為“否”的情況下或接著步驟S1000進(jìn)行步驟S1010的處理。在步驟S1010中,判斷變更了 LPlan的執(zhí)行場(chǎng)所后的分割查詢結(jié)合是否已經(jīng)存在于分散計(jì)劃內(nèi)。在將LPlan的執(zhí)行場(chǎng)所變更后的分割查詢結(jié)合不是已經(jīng)存在于分散計(jì)劃內(nèi)的情況下(步驟SlOlO為“否”),將變更了執(zhí)行場(chǎng)所后的分割查詢結(jié)合、以及處于其前后的數(shù)據(jù)發(fā)送、數(shù)據(jù)接收的運(yùn)算追加到分散計(jì)劃中(步驟S1030)。接著,前進(jìn)到步驟S1040。此外,在變更了 LPlan的執(zhí)行場(chǎng)所后的分割查詢結(jié)合已經(jīng)存在于分散計(jì)劃內(nèi)的情況下(步驟S1010為“否”),對(duì)執(zhí)行場(chǎng)所追加計(jì)算機(jī)i (步驟S1020)。接著,前進(jìn)到步驟S1040。進(jìn)而,在LPlan中沒有變更分割查詢結(jié)合的執(zhí)行場(chǎng)所的情況下(步驟S970為“否”),前進(jìn)到步驟S1040。S卩,在步驟S970為“否”的情況下、或接著步驟S1020、或接著步驟S1030進(jìn)行步驟S1040的處理。在步驟S1040中,在i中代入i+1 (i = i+1)(步驟S1040)。接著,判斷i是否小于等于max (步驟S1050)。在i小于等于max的情況下(步驟S1050為“是”),回到步驟S910而重復(fù)處理。在i比max大的情況下結(jié)束。圖24中示出在計(jì)算機(jī)1、2、3的本地計(jì)劃分別是本地計(jì)劃候選2_3、本地計(jì)劃候選
      2、本地計(jì)劃候選2-4的情況下對(duì)圖11所示的分散計(jì)劃進(jìn)行上述分散計(jì)劃更新處理后的結(jié)果而得到的分散計(jì)劃。圖24所示的分散計(jì)劃3具有“運(yùn)算號(hào)碼”312、“部分查詢號(hào)碼”313、“運(yùn)算內(nèi)容”314、“事前執(zhí)行運(yùn)算號(hào)碼”315、“執(zhí)行場(chǎng)所” 316、“發(fā)送場(chǎng)所” 317、“輸入變量” 318、“輸出變量” 319的項(xiàng)目。該分散計(jì)劃3具有的項(xiàng)目312至319與分散計(jì)劃表141具有的項(xiàng)目142至149以及本地計(jì)劃候選2、2-1至2_6具有的項(xiàng)目302至309相同。首先,在i中代入1,檢查作為計(jì)算機(jī)I選擇的本地計(jì)劃的本地計(jì)劃候選2-3與圖11的分散計(jì)劃之間的關(guān)于分割查詢結(jié)合的差分(步驟S900、S910、S920)。在本地計(jì)劃候選2-3中,由于計(jì)算機(jī)I的分割查詢結(jié)合被完全刪除,所以從圖11的分散計(jì)劃的分割查詢結(jié)合以及處于其前后的數(shù)據(jù)發(fā)送、數(shù)據(jù)接收運(yùn)算(圖24的運(yùn)算號(hào)碼11-15)的執(zhí)行場(chǎng)所中刪除計(jì)算機(jī)I (步驟S940)。接著,由于分割查詢結(jié)合的執(zhí)行場(chǎng)所不是空,所以分散計(jì)劃更新部15檢查本地計(jì)劃候選2-3,檢查分割查詢結(jié)合的執(zhí)行場(chǎng)所是否沒有被變更(步驟S950、S970)。由于執(zhí)行場(chǎng)所沒有被變更,所以在i中代入2(步驟S1040、S1050)。接著,設(shè)i為2,檢查圖11的分散計(jì)劃與作為計(jì)算機(jī)2選擇的本地計(jì)劃的本地計(jì)劃候選2之間的關(guān)于分割查詢結(jié)合的差分(步驟S920)。由于圖12所示的本地計(jì)劃候選2中計(jì)算機(jī)2的分割查詢結(jié)合沒有被刪除,執(zhí)行場(chǎng)所也沒有變化,所以在i中代入3 (步驟S930、S970、S1040、S1050)。 接著,設(shè)i為3,檢查圖11的分散計(jì)劃與作為計(jì)算機(jī)3選擇的本地計(jì)劃的本地計(jì)劃候選2-4之間的關(guān)于分割查詢結(jié)合的差分(步驟S920)。由于本地計(jì)劃候選2-4中計(jì)算機(jī)3的分割查詢結(jié)合沒有被刪除,所以接著檢查分割查詢結(jié)合的執(zhí)行場(chǎng)所是否被變更(步驟 S930、S970)。此外,由于本地計(jì)劃候選2-4中分割查詢結(jié)合的執(zhí)行場(chǎng)所被變更,所以從分散計(jì)劃的分割查詢結(jié)合以及處于其前后的數(shù)據(jù)發(fā)送、數(shù)據(jù)接收運(yùn)算(圖24的運(yùn)算號(hào)碼11-15)的執(zhí)行場(chǎng)所中刪除計(jì)算機(jī)3 (步驟S980)。由于分割查詢結(jié)合的執(zhí)行場(chǎng)所不是空,所以分散計(jì)劃更新部15接著確認(rèn)變更了執(zhí)行場(chǎng)所后的分割查詢結(jié)合是否插入在分散計(jì)劃中(步驟S980.S1010)。由于沒有被插入在分散計(jì)劃中,所以將變更了執(zhí)行場(chǎng)所后的分割查詢結(jié)合以及處于其前后的數(shù)據(jù)發(fā)送、數(shù)據(jù)接收運(yùn)算插入到分散計(jì)劃中(圖24的運(yùn)算號(hào)碼14、15、16)(步驟S1030)。接著,在i中代入4,但由于計(jì)算機(jī)數(shù)到3為止,所以結(jié)束處理(步驟S1040、S1050)。最終得到圖24的分散計(jì)劃3。分散計(jì)劃執(zhí)行部16執(zhí)行分散計(jì)劃3的運(yùn)算(圖6的步驟Sll)。另外,分散計(jì)劃3的執(zhí)行與從屬服務(wù)器的本地計(jì)劃執(zhí)行部33的執(zhí)行相互在數(shù)據(jù)的收發(fā)中處于依存關(guān)系,例如并行執(zhí)行、或等待從對(duì)方發(fā)送數(shù)據(jù)。即,主服務(wù)器的收發(fā)部17和從屬服務(wù)器的收發(fā)部34ー邊進(jìn)行數(shù)據(jù)的交換一邊執(zhí)行分散計(jì)劃。如上所述,根據(jù)本實(shí)施方式,對(duì)于由用戶輸入到主服務(wù)器中的詢問查詢,主服務(wù)器僅實(shí)施與除了部分查詢的結(jié)合處理以外的服務(wù)器間運(yùn)算關(guān)聯(lián)的部分的優(yōu)化,部分查詢的結(jié)合的優(yōu)化由從屬服務(wù)器實(shí)施。即,主服務(wù)器能夠?qū)⒉糠植樵兊慕Y(jié)合處理從優(yōu)化的范圍中除夕卜,所以與全部在主服務(wù)器側(cè)優(yōu)化的情況相比能夠以簡(jiǎn)單的機(jī)制實(shí)現(xiàn)。S卩,主服務(wù)器以不依存于從屬服務(wù)器決定的部分查詢的結(jié)合處理的形式臨時(shí)決定部分查詢的結(jié)合處理。從屬服務(wù)器基于每個(gè)服務(wù)器的數(shù)據(jù)庫信息將部分查詢的結(jié)合處理優(yōu)化。進(jìn)而,從屬服務(wù)器將該部分查詢的結(jié)合處理的結(jié)果通知給主服務(wù)器,由此,主服務(wù)器生成效率較高的分散計(jì)劃。此外,關(guān)于分割查詢結(jié)合運(yùn)算,從屬服務(wù)器側(cè)進(jìn)行優(yōu)化,所以能夠生成適合于各從屬服務(wù)器的高效率的計(jì)劃。因而,根據(jù)本發(fā)明的實(shí)施方式,關(guān)于詢問查詢51,通過從主服務(wù)器決定的分散計(jì)劃的范圍中去除與分割查詢結(jié)合運(yùn)算有關(guān)的運(yùn)算來使主服務(wù)器的分散計(jì)劃優(yōu)化的機(jī)制簡(jiǎn)潔化,在此基礎(chǔ)上,從屬服務(wù)器分別以最優(yōu)的形式實(shí)施上述范圍的優(yōu)化。由此,能夠?qū)崿F(xiàn)高效率的查詢處理。(第2實(shí)施方式)參照附圖對(duì)第2實(shí)施方式的分散數(shù)據(jù)庫檢索裝置進(jìn)行說明。另外,對(duì)于與第I實(shí)施方式的分散數(shù)據(jù)庫檢索裝置相同的結(jié)構(gòu)賦予相同的標(biāo)號(hào)并省略說明。圖25是表示第2實(shí)施方式的分散數(shù)據(jù)庫檢索裝置的功能結(jié)構(gòu)的結(jié)構(gòu)圖。如圖25所示,本實(shí)施方式的分散數(shù)據(jù)庫檢索裝置是在圖I所示的分散數(shù)據(jù)庫檢索裝置的結(jié)構(gòu)中還具有模式生成部18、35和模式變更部19、36的結(jié)構(gòu)。所謂模式(schema),是保持所保存的數(shù)據(jù)的種類或位置信息的數(shù)據(jù)構(gòu)造。模式生成部18、35生成在各服務(wù)器中進(jìn)行的運(yùn)算的結(jié)果而輸入輸出的數(shù)據(jù)的模 式。例如,主服務(wù)器具備的模式生成部18生成分散計(jì)劃的各運(yùn)算的輸入輸出數(shù)據(jù)的模式。此外,從屬服務(wù)器具備的模式生成部35生成本地計(jì)劃的各運(yùn)算的輸入輸出數(shù)據(jù)的模式。模式變更部19、36在將通過分散計(jì)劃或本地計(jì)劃的各運(yùn)算得到的數(shù)據(jù)傳遞給下個(gè)運(yùn)算時(shí)變更該數(shù)據(jù)的模式。主服務(wù)器的模式變更部19在將通過分散計(jì)劃或本地計(jì)劃的各運(yùn)算的輸出得到的數(shù)據(jù)傳遞給分散計(jì)劃接下來的運(yùn)算的輸入時(shí)變更數(shù)據(jù)的模式。從屬服務(wù)器的模式變更部36將通過分散計(jì)劃或本地計(jì)劃的各運(yùn)算的輸出而得到的數(shù)據(jù)傳遞給本地計(jì)劃接下來的運(yùn)算時(shí)變更該數(shù)據(jù)的模式。這里,在圖26中表示在由本實(shí)施方式的模式變更部19變更前的模式中包含的項(xiàng)目的一例。所謂變更前的模式,即是由后述的模式生成部18生成的模式。所謂模式,是保持所保存的數(shù)據(jù)的種類或位置信息的構(gòu)造,如圖26所示,在本實(shí)施方式中,具有“可變區(qū)域” 401、“變量 ” 402-i(i是大于等于I的整數(shù))、和“擴(kuò)展變量$#e(Vl…,Vn) ” 403的項(xiàng)目?!皵U(kuò)展變量$#e(Vl, -,Vn) ”403的“$#e”裝入與“變量 ”402_i的“ ”不一致的唯一的字符串,在“ (VI,…,Vn)”中裝入用“,”分隔的η個(gè)唯一的任意的字符串。所謂“可變區(qū)域” 401,是保存用來在服務(wù)器間傳遞數(shù)據(jù)時(shí)吸收列(column)數(shù)的差異的數(shù)據(jù)的項(xiàng)目?!白兞?” 402-i是保存各變量的數(shù)據(jù)的項(xiàng)目,“擴(kuò)展變量$#e (VI,…,Vn) ”403是保存從變量“VI ”到變量“Vn”的全部變量的數(shù)據(jù)的項(xiàng)目。另外,“變量 ” 402-i按照輸入輸出的每個(gè)數(shù)據(jù)而保存各種各樣的變量。這里,參照?qǐng)D27,對(duì)本實(shí)施方式的分散數(shù)據(jù)庫檢索裝置的檢索處理的一例進(jìn)行說明。圖27是表示本實(shí)施方式的分散數(shù)據(jù)庫檢索裝置的檢索處理的一例的流程圖。另外,關(guān)于步驟SI至S8以及SlO的處理,與圖6所示的流程圖相同,所以省略說明。在圖27的步驟S1-S8中決定了本地計(jì)劃后,本地計(jì)劃選擇部37實(shí)施對(duì)所決定的本地計(jì)劃中未決定執(zhí)行順序的部分進(jìn)行確定的本地計(jì)劃順序決定處理(步驟S12)。這里,所謂未決定執(zhí)行順序的部分,是本地計(jì)劃的各運(yùn)算的事前執(zhí)行號(hào)碼相等的運(yùn)算的集合。這些運(yùn)算由于沒有指定以哪個(gè)順序執(zhí)行,所以能夠以任意的順序執(zhí)行。即,通過本地計(jì)劃順序決定處理唯一地決定這些運(yùn)算的執(zhí)行順序。在圖28中表示圖12所示的本地計(jì)劃候選2通過本地計(jì)劃順序決定處理(步驟S12)唯一地決定了未決定的運(yùn)算集合的順序后的結(jié)果。在圖12所示的本地計(jì)劃候選2中,運(yùn)算號(hào)碼2、4、5的各運(yùn)算的事前執(zhí)行號(hào)碼是1,執(zhí)行順序未決定。在圖29中決定為以運(yùn)算號(hào)碼2、4、5的順序執(zhí)行,將運(yùn)算號(hào)碼4的事前執(zhí)行號(hào)碼從I改寫為2,將運(yùn)算號(hào)碼5的事前執(zhí)行號(hào)碼從I改寫為4。將在步驟S12中的本地計(jì)劃順序決定處理后決定了運(yùn)算順序的本地計(jì)劃通過發(fā)送部34發(fā)送給主服務(wù)器。如果主服務(wù)器接收到該本地計(jì)劃,則分散計(jì)劃更新部10進(jìn)行分散計(jì)劃更新處理(步驟S10)。與步驟SlO并行,從屬服務(wù)器的模式生成部35生成該本地計(jì)劃內(nèi)的各運(yùn)算的輸入模式及輸出模式(以下,稱作輸入輸出模式)(步驟S14)。所謂輸入模式,是所輸入的數(shù)據(jù)的模式。所謂輸出模式,是通過運(yùn)算輸出的數(shù)據(jù)的模式。這里,參照?qǐng)D29,具體地說明模式生成部35對(duì)于圖28所示的本地計(jì)劃進(jìn)行模式生成處理(步驟S14)時(shí)的動(dòng)作。另外,在該模式生成處理中,使用i這樣的變量。i是大于等于I的整數(shù),并且小于等于對(duì)象的本地計(jì)劃的運(yùn)算號(hào)碼(I ^ i <本地計(jì)劃的運(yùn)算號(hào)碼的最大值)。此外,在模式生成處理的開始時(shí)刻,是i = I。此外,將本地計(jì)劃的運(yùn)算號(hào)碼的最大值設(shè)為“max”。此外, 將運(yùn)算號(hào)碼301為i的本地計(jì)劃的運(yùn)算設(shè)為運(yùn)算S。模式生成部35如果從本地計(jì)劃選擇部31接收到本地計(jì)劃,則首先,作為初始化處理而設(shè)i = I、本地計(jì)劃的運(yùn)算號(hào)碼的最大值=max(步驟S1110)。接著,判斷i是否小于等于max (步驟SI 110)。在i小于等于max的情況下(步驟SlllO為“是”),取得運(yùn)算號(hào)碼i的運(yùn)算S(步驟S1120)。接著,判斷在運(yùn)算S中是否有輸出變量(步驟S1130)。在運(yùn)算S中有輸出變量的情況下(步驟S1130為“是”),將運(yùn)算S的輸出變量追加到輸出模式和變量列表VL中。進(jìn)而,對(duì)每個(gè)變量準(zhǔn)備到達(dá)號(hào)碼列表RL和利用號(hào)碼列表UL(步驟S1140)。接著,根據(jù)各運(yùn)算的事前執(zhí)行號(hào)碼取得運(yùn)算S和比運(yùn)算S靠后執(zhí)行的運(yùn)算號(hào)碼的列表AL (步驟S1150)。接著,對(duì)于運(yùn)算S的各輸出變量,在對(duì)每個(gè)變量準(zhǔn)備的到達(dá)運(yùn)算號(hào)碼列表RL中登記保存在列表AL中的運(yùn)算號(hào)碼(步驟S1160)。然后,前進(jìn)到步驟S1170。另外,在運(yùn)算S中沒有輸出變量的情況下(步驟S1130為“否”),也前進(jìn)到步驟S1170。在步驟SI 170中,判斷在運(yùn)算S中是否有輸入變量(步驟SI 170)。在運(yùn)算S中有輸入變量的情況下(步驟S1170為“是”),循著運(yùn)算S的事前執(zhí)行運(yùn)算號(hào)碼,取得在比運(yùn)算S靠前執(zhí)行的運(yùn)算號(hào)碼的列表BL(步驟SI 180)。接著,對(duì)于運(yùn)算S的各輸入變量,在對(duì)每個(gè)變量準(zhǔn)備的利用運(yùn)算號(hào)碼列表UL中登記保存在列表BL中的運(yùn)算號(hào)碼(步驟S1200)。然后,前進(jìn)到步驟S1210。另外,在運(yùn)算S中沒有輸入變量的情況下(步驟S1170為“否”)也前進(jìn)到步驟S1210。在步驟S1210中,在i中代入i+l(i = i+1)(步驟S1210)。接著,回到步驟S1110。在i比max大的情況下(步驟SlllO為“否”),前進(jìn)到步驟S1220。這里,使用j這樣的變量。j大于等于1,并且小于等于變量列表VL內(nèi)的要素?cái)?shù)(I彡j彡VL內(nèi)的要素?cái)?shù))。此外,此時(shí)是j = 1,設(shè)VL內(nèi)的要素?cái)?shù)=vmax (步驟S1220)。接著,判斷j是否小于等于vmax(步驟S1230)。在j小于等于vmax的情況下(步驟S1230為“是,,),從變量列表VL取得第j個(gè)變量var (步驟S1240)。接著,取得在變量var的到達(dá)運(yùn)算號(hào)碼列表RL和利用號(hào)碼列表UL中共通出現(xiàn)的運(yùn)算號(hào)碼列表CL(步驟S1250)。接著,對(duì)列表CL內(nèi)的運(yùn)算號(hào)碼的各運(yùn)算的輸出模式追加變量var (步驟S1260)。接著,在j中代入j+1 (j = j+1)(步驟S1270)。接著,回到步驟S1230。在j比vmax大的情況下(步驟S1230為“否”),在i中代入I (i = I)(步驟S1280)。接著,判斷i是否小于等于max (步驟S1290)。在i小于等于max的情況下(步驟S1290為“是”),取得運(yùn)算號(hào)碼i的運(yùn)算S(步驟S1300)。接著,將事前執(zhí)行運(yùn)算號(hào)碼的運(yùn)算的輸出模式復(fù)制到運(yùn)算S的輸入模式中(步驟S1310)。接著,對(duì)運(yùn)算S的輸出模式的開頭追加可變區(qū)域,對(duì)最末尾追加擴(kuò)展變量$#e()(步驟S1320)。接著,在i中代入i+l(i := i+Ι)(步驟S1330)。接著,回到步驟S1290。在i比max大的情況下(步驟S1290為“否”),結(jié)束處理。另外,圖29所示的流程圖在從屬服務(wù)器的模式生成部18的模式生成處理S15中也僅存在對(duì)象是本地計(jì)劃還是分散計(jì)劃的差異,動(dòng)作是同樣的。
      這里,在圖30中,表示在通過圖28所示的本地計(jì)劃順序決定處理得到的本地計(jì)劃中,進(jìn)行了上述模式生成處理后的結(jié)果而得到的輸入輸出模式的一例。圖30所示的輸入輸出模式表500表不運(yùn)算號(hào)碼500、輸入模式I、輸入模式2、輸出模式502的項(xiàng)目。在輸入輸出模式表500的運(yùn)算號(hào)碼501中,保存有與進(jìn)行了模式生成處理后的計(jì)劃的運(yùn)算號(hào)碼相對(duì)應(yīng)的運(yùn)算號(hào)碼。輸入模式I保存有在模式生成處理中生成的輸入模式的第I個(gè)輸入模式。輸入模式2保存有在模式生成處理中生成的輸入模式的第2個(gè)輸入模式。輸出模式504保存有在模式生成處理中生成的輸出模式。具體地說明模式生成處理部18計(jì)算該輸入輸出模式表500的處理。首先,圖28的本地計(jì)劃作為模式生成處理的輸入被傳遞。接著,在i中代入1,在max中代入8 (步驟S1100)。接著,由于i小于等于max,所以取得運(yùn)算號(hào)碼I的運(yùn)算S(步驟S1110、S1120)。由于運(yùn)算S擁有輸出變量$x,所以將$x追加到輸出模式504和變量列表VL中。進(jìn)而,準(zhǔn)備針對(duì)$x的到達(dá)號(hào)碼列表RL和利用號(hào)碼列表UL (步驟S1130、S1140)。接著,循著事前執(zhí)行號(hào)碼,將運(yùn)算S的運(yùn)算號(hào)碼I和比運(yùn)算S靠后執(zhí)行的運(yùn)算號(hào)碼2-8保存到到達(dá)號(hào)碼列表RL中(步驟S1150、S1160)。由于運(yùn)算S不擁有輸入變量,所以在i中代入2,取得運(yùn)算號(hào)碼2的運(yùn)算 S (步驟 S1210、S1110、S1120)。由于運(yùn)算S擁有輸出變量$z,所以將$z追加到輸出模式504和變量列表VL中。進(jìn)而,準(zhǔn)備針對(duì)$z的到達(dá)號(hào)碼列表RL和利用號(hào)碼列表UL (步驟SI 130、SI 140)。接著,循著事前執(zhí)行號(hào)碼,將運(yùn)算S的運(yùn)算號(hào)碼2和比運(yùn)算S靠后執(zhí)行的運(yùn)算號(hào)碼3-8保存到到達(dá)號(hào)碼列表RL中(步驟S1150、S1160)。接著,由于運(yùn)算S擁有輸入變量$x,所以將比S靠前執(zhí)行的運(yùn)算號(hào)碼I登記到利用運(yùn)算號(hào)碼UL中。(步驟S1170、S1180、S1200)。接著,取得運(yùn)算號(hào)碼3的運(yùn)算S (步驟S1210、S1110、S1120)。由于運(yùn)算S擁有輸出變量$z,所以將$z追加到輸出模式504和變量列表VL中。進(jìn)而,準(zhǔn)備針對(duì)$z的到達(dá)號(hào)碼列表RL和利用號(hào)碼列表UL (步驟SI 130、SI 140)。接著,循著事前執(zhí)行號(hào)碼,將運(yùn)算S的運(yùn)算號(hào)碼3和比運(yùn)算S靠后執(zhí)行的運(yùn)算號(hào)碼3、6-8保存到到達(dá)號(hào)碼列表RL中(步驟S1150、S1160)。接著,由于擁有輸入變量$z,所以將比S靠前執(zhí)行的運(yùn)算號(hào)碼1、2登記到$z的利用運(yùn)算號(hào)碼UL中(步驟S1130、S1170、S1180、S1200)。接著,取得運(yùn)算號(hào)碼4的運(yùn)算S (步驟S1210、S1110、S1120)。由于運(yùn)算S擁有輸出變量$u,所以將$u追加到輸出模式504和變量列表VL中。進(jìn)而,準(zhǔn)備針對(duì)$u的到達(dá)號(hào)碼列表RL和利用號(hào)碼列表UL (步驟SI 130、SI 140)。接著,循著事前執(zhí)行號(hào)碼,將運(yùn)算S的運(yùn)算號(hào)碼4和比運(yùn)算S靠后執(zhí)行的運(yùn)算號(hào)碼5、7、8保存到到達(dá)號(hào)碼列表RL中(步驟S1150、S1160)。接著,由于運(yùn)算S擁有輸入變量$x,所以將比S靠前執(zhí)行的運(yùn)算號(hào)碼1、2登記到利用運(yùn)算號(hào)碼UL中(步驟S1170、S1180、S1200)。接著,取得運(yùn)算號(hào)碼5的運(yùn)算S (步驟S1210、S1110、S1120)。用于運(yùn)算S擁有輸出變量$v,所以將$v追加到輸出模式504和變量列表VL中。進(jìn)而,準(zhǔn)備針對(duì)$v的到達(dá)號(hào)碼列表RL和利用號(hào)碼列表UL (步驟SI 130、SI 140)。接著,循著事前執(zhí)行號(hào)碼,將運(yùn)算S的運(yùn)算號(hào)碼5和比運(yùn)算S靠后執(zhí)行的運(yùn)算號(hào)碼7、8保存到到達(dá)號(hào)碼列表RL中(步驟S1150、S1160)。接著,由于運(yùn)算S擁有輸入變量$x,所以將比S靠前執(zhí)行的運(yùn)算號(hào)碼1、2、4登記到利用運(yùn)算號(hào)碼UL中(步驟S1170、S1180、S1200)。接著,取得運(yùn)算號(hào)碼6的運(yùn)算S (步驟S1210、S1110、S1120)。
      由于運(yùn)算S擁有輸出變量$z,所以將$z追加到輸出模式504和變量列表VL中。進(jìn)而,準(zhǔn)備針對(duì)$z的到達(dá)號(hào)碼列表RL和利用號(hào)碼列表UL (步驟SI 130、SI 140)。接著,循著事前執(zhí)行號(hào)碼,將運(yùn)算S的運(yùn)算號(hào)碼6和比運(yùn)算S靠后執(zhí)行的運(yùn)算號(hào)碼7、8保存到到達(dá)號(hào)碼列表RL中(步驟S1150、S1160)。接著,由于擁有輸入變量$z,所以將比S靠前執(zhí)行的運(yùn)算號(hào)碼1-3登記到$z的利用運(yùn)算號(hào)碼UL中(步驟S1130、S1170、S1180、S1200)。接著,取得運(yùn)算號(hào)碼7的運(yùn)算S (步驟S1210、S1110、S1120)。由于運(yùn)算S不擁有輸出變量、而擁有輸入變量$z,所以將比S靠前執(zhí)行的運(yùn)算號(hào)碼1-6登記到$z的利用運(yùn)算號(hào)碼UL中(步驟SI 130、SI 170、SI 180、S1200)。接著,取得運(yùn)算號(hào)碼 8 的運(yùn)算 S (步驟 S1210、S1110、S1120)。由于運(yùn)算S擁有輸出變量$u和$v,所以將$u和$v追加到輸出模式504和變量列表VL中。進(jìn)而,準(zhǔn)備針對(duì)$u和$v的到達(dá)號(hào)碼列表RL和利用號(hào)碼列表UL(步驟SI 130、S1140)。接著,循著事前執(zhí)行號(hào)碼,將運(yùn)算S的運(yùn)算號(hào)碼8保存到到達(dá)號(hào)碼列表RL中(步驟S1150、S1160)。接著,由于擁有輸入變量$u、$v,所以將比S靠前執(zhí)行的運(yùn)算號(hào)碼1_7登記到$u、$v的利用運(yùn)算號(hào)碼UL中(步驟S1130、S1170、S1180、S1200)。接著,由于i超過了 max,所以在j中代入1,在vmax中代入VL的要素?cái)?shù)4 (步驟S1210、SI 110、S1220)。接著,取得作為變量列表的第I個(gè)要素的變量$x(步驟S1230、S1240)。由于變量$x的利用號(hào)碼列表UL的各要素是1、2、4,到達(dá)運(yùn)算號(hào)碼RL是1-8,所以對(duì)共通出現(xiàn)的運(yùn)算號(hào)碼1、2、4的輸出模式504追加$x(步驟S1250、S1260)。接著,取得VL的第 2 個(gè)變量 $z (步驟 S1270、S1230、S1240)。由于變量$z的利用號(hào)碼列表UL的各要素是1_6,到達(dá)運(yùn)算號(hào)碼RL是2_8,所以對(duì)共通出現(xiàn)的運(yùn)算號(hào)碼2-6的輸出模式504追加$z (步驟S1250、S1260)。接著,取得VL的第 3 個(gè)變量 $u (步驟 S1270、S1230、S1240)。由于變量$u的利用號(hào)碼列表UL的各要素是1-7,到達(dá)運(yùn)算號(hào)碼RL是4、5、7、8,所以對(duì)共通出現(xiàn)的運(yùn)算號(hào)碼4、5、7的輸出模式504追加$u(步驟S1250、S1260)。接著,取得VL 的第 4 個(gè)變量 $v (步驟 S1270、S1230、S1240)。由于變量$v的利用號(hào)碼列表UL的各要素是1-7,到達(dá)運(yùn)算號(hào)碼RL是5、7、8,所以對(duì)共通出現(xiàn)的運(yùn)算號(hào)碼5、7的輸出模式504追加$v (步驟S1250、S1260)。接著,在i中代入I,取得運(yùn)算號(hào)碼I的運(yùn)算S (步驟S1270、S1230、S1280)。由于運(yùn)算號(hào)碼I沒有輸入,所以對(duì)輸出模式504追加可變區(qū)域和擴(kuò)展變量$#e(),取得運(yùn)算號(hào)碼2的運(yùn)算S (步驟S1300-S1320、S1280、S1290)。將運(yùn)算號(hào)碼I的輸出模式504復(fù)制到運(yùn)算號(hào)碼2的輸入模式I中,對(duì)輸出模式504追加可變區(qū)域和擴(kuò)展變量$#e(),取得運(yùn)算號(hào)碼3的運(yùn)算S (步驟S1300-S1320、S1280、S1290)。將運(yùn)算號(hào)碼2的輸出模式504復(fù)制到運(yùn)算號(hào)碼3的輸入模式I中,對(duì)輸出模式504追加可變區(qū)域和擴(kuò)展變量$#e(),取得運(yùn)算號(hào)碼4的運(yùn)算S (步驟S1300-S1320、S1280、S1290)。將運(yùn)算號(hào)碼2的輸出模式504復(fù)制到運(yùn)算號(hào)碼4的輸入模式I中,對(duì)輸出模式504追加可變區(qū)域和擴(kuò)展變量$#e(),取得運(yùn)算號(hào)碼5的運(yùn)算S (步驟S1300-S1320、S1280、 S1290)。將運(yùn)算號(hào)碼4的輸出模式504復(fù)制到運(yùn)算號(hào)碼5的輸入模式I中,對(duì)輸出模式504追加可變區(qū)域和擴(kuò)展變量$#e(),取得運(yùn)算號(hào)碼6的運(yùn)算S (步驟S1300-S1320、S1280、S1290)。將運(yùn)算號(hào)碼3的輸出模式504復(fù)制到運(yùn)算號(hào)碼6的輸入模式I中,對(duì)輸出模式504追加可變區(qū)域和擴(kuò)展變量$#e(),取得運(yùn)算號(hào)碼7的運(yùn)算S (步驟S1300-S1320、S1280、S1290)。分別將運(yùn)算號(hào)碼5的輸出模式504復(fù)制到運(yùn)算號(hào)碼7的輸入模式I中,將運(yùn)算號(hào)碼6的輸出模式504復(fù)制到輸入模式2中,對(duì)輸出模式504追加可變區(qū)域和擴(kuò)展變量$#e O,取得運(yùn)算號(hào)碼8的運(yùn)算S (步驟S1300-S1320、S1280、S1290)。將運(yùn)算號(hào)碼7的輸出模式504復(fù)制到運(yùn)算號(hào)碼8的輸入模式I中,對(duì)輸出模式504追加可變區(qū)域和擴(kuò)展變量$#e O而結(jié)束(步驟S1300-S1320、S1280、S1290)。模式生成處理的輸出結(jié)果的一例是圖30所不的輸入輸出模式表500。另外,在圖30中,在輸入模式僅有I個(gè)的情況下保存到輸入模式I的項(xiàng)目中,在有兩個(gè)的情況下將第2個(gè)保存到輸入模式2的項(xiàng)目中,但輸入模式的項(xiàng)目也可以根據(jù)需要而增減。這里,對(duì)與步驟S14并行執(zhí)行的主服務(wù)器的處理進(jìn)行說明。分散計(jì)劃生成部23進(jìn)行分散計(jì)劃更新處理(步驟S10),在將分散計(jì)劃更新后,基于更新后的分散計(jì)劃實(shí)施對(duì)未決定執(zhí)行順序的部分進(jìn)行確定的分散計(jì)劃順序決定處理(步驟S13)。步驟S13的分散計(jì)劃順序決定處理除了對(duì)象的計(jì)劃不是本地計(jì)劃而是分散計(jì)劃以外與步驟S12相同。接著,模式生成部18生成所決定的分散計(jì)劃內(nèi)的各運(yùn)算的輸入輸出模式(步驟
      S15)。步驟S15的模式生成處理除了對(duì)象的計(jì)劃不是本地計(jì)劃而是分散計(jì)劃以外與步驟S14相同。如果由主服務(wù)器和從屬服務(wù)器分別進(jìn)行模式生成處理,則主服務(wù)器和從屬服務(wù)器分別基于所生成的輸入輸出模式執(zhí)行計(jì)劃。即,從屬服務(wù)器的本地計(jì)劃執(zhí)行部36基于在模式生成處理(步驟S14)中生成的輸入輸出模式執(zhí)行本地計(jì)劃(步驟S9)。此外,主服務(wù)器的分散計(jì)劃執(zhí)行部16基于在模式生成處理(步驟S15)中生成的模式,執(zhí)行分散計(jì)劃(步驟 SI I)。
      在本地計(jì)劃執(zhí)行(步驟S9)中,本地計(jì)劃執(zhí)行部33在實(shí)施本地計(jì)劃的各運(yùn)算時(shí),將輸入的數(shù)據(jù)和準(zhǔn)備好的輸入模式傳遞給模式變更部36,實(shí)施模式變更處理(步驟S16)。此外,在分散計(jì)劃執(zhí)行(步驟Sll)中也同樣,分散計(jì)劃執(zhí)行部16在實(shí)施分散計(jì)劃的各運(yùn)算時(shí),將輸入的數(shù)據(jù)和準(zhǔn)備好的輸入模式傳遞給模式變更部19而實(shí)施模式變更處理(步驟
      S16)。這里,參照?qǐng)D31,對(duì)在步驟S16中主服務(wù)器的模式變更部19執(zhí)行分散計(jì)劃時(shí)進(jìn)行的模式變更處理進(jìn)行說明。模式變更部19取得作為分散計(jì)劃執(zhí)行部16接著執(zhí)行的運(yùn)算的輸入的擁有模式S的數(shù)據(jù)D、和由模式生成部18預(yù)先準(zhǔn)備的運(yùn)算的輸入模式T (步驟S1400)。接著,判斷模式S與模式T的變量的項(xiàng)目是否一致(步驟S1410)。在模式S與模式T的變量的項(xiàng)目不一致的情況下(步驟S1410為“否”),取得模 式S的擴(kuò)展變量$#e的變量列表VL,判斷列表是否是空(步驟S1420)。在模式S的擴(kuò)展變量$#e的變量列表VL不是空的情況下(步驟S1420為“否”),將擴(kuò)展變量列表VL內(nèi)的各變量追加作為模式S的變量的項(xiàng)目,將VL變更為空(步驟S1430)。接著,取得存在于模式S中但不存在于模式T中的變量的項(xiàng)目的列表DL (步驟S1430)。接著,前進(jìn)到步驟S1450。另外,在模式S的擴(kuò)展變量$#e的變量列表VL為空的情況下(步驟S1420為“是”),也前進(jìn)到步驟S1450。在步驟S1450中,判斷變量的項(xiàng)目列表DL內(nèi)的變量是否在模式S中非連續(xù)地排列(步驟 S1450)。在變量的項(xiàng)目列表DL內(nèi)的變量在模式S中非連續(xù)地排列的情況下(步驟S1450為“是,,),將模式S和數(shù)據(jù)D的各數(shù)據(jù)改寫,以使變量的項(xiàng)目列表DL內(nèi)的變量連續(xù)(步驟S1460)。接著,前進(jìn)到步驟S1470。另外,在變量的項(xiàng)目列表DL內(nèi)的變量在模式S中沒有非連續(xù)地排列的情況下(步驟S1420為“否”),也前進(jìn)到步驟S1470。在步驟S1470中,從模式S的變量的項(xiàng)目中刪除列表DL內(nèi)的變量,追加到擴(kuò)展變量$#e的變量列表中(步驟S1470)。接著,在數(shù)據(jù)D的可變區(qū)域的項(xiàng)目中保存列表DL內(nèi)的變量的合計(jì)尺寸并結(jié)束(步驟S1480)。另外,在模式S與模式T的變量的項(xiàng)目一致的情況下(步驟S1410為“是”)也結(jié)束。另外,關(guān)于圖31所示的流程圖,在針對(duì)本地計(jì)劃執(zhí)行部33的運(yùn)算進(jìn)行的模式變更部36的處理時(shí),也僅存在對(duì)象是本地計(jì)劃還是分散計(jì)劃的差異,動(dòng)作是同樣的。這里,參照?qǐng)D31,具體地說明模式變更部19對(duì)圖26所示的計(jì)算機(jī)O的運(yùn)算號(hào)碼7的輸入模式、和從計(jì)算機(jī)I、計(jì)算機(jī)2、計(jì)算機(jī)3發(fā)送來的各數(shù)據(jù)的模式進(jìn)行模式變更處理時(shí)的動(dòng)作。在分散計(jì)劃為圖24、計(jì)算機(jī)I、計(jì)算機(jī)2、計(jì)算機(jī)3的本地計(jì)劃為圖12、圖18、圖16所示的本地計(jì)劃候選時(shí)的、分散計(jì)劃的運(yùn)算號(hào)碼7的接收運(yùn)算的實(shí)施時(shí)進(jìn)行該模式變更處理。首先,取得圖26的計(jì)算機(jī)O的運(yùn)算號(hào)碼7的輸入模式T、和從計(jì)算機(jī)I發(fā)送來的數(shù)據(jù)的模式S (步驟S1400)。由于模式S與模式T的變量項(xiàng)目一致,所以結(jié)束處理(步驟S1410)。接著,取得計(jì)算機(jī)O的運(yùn)算號(hào)碼7的輸入模式T、和從計(jì)算機(jī)2發(fā)送來的數(shù)據(jù)的模式S (步驟S1400)。由于模式S與模式T的變量項(xiàng)目不一致,并且S的擴(kuò)展變量$#e的變量列表是空,所以作為存在于模式S中而不存在于模式T中的變量,取得$u和$v (步驟S1410、步驟S1420、步驟S1440)。由于變量$u和$v在模式S中連續(xù)排列,所以從模式S的項(xiàng)目中刪除變量$u和$v,追加到擴(kuò)展變量$#e的變量列表中(步驟S1450、步驟S1470)。最后,將$u和$v的變量的合計(jì)尺寸保存到擴(kuò)展區(qū)域中(步驟S1480)。接著,取得計(jì)算機(jī)0的運(yùn)算號(hào)碼7的輸入模式T、和從計(jì)算機(jī)3發(fā)送來的數(shù)據(jù)的模式S (步驟S1400)。由于模式S與模式T的變量項(xiàng)目不一致,并且S的擴(kuò)展變量$#e的變量列表為空,所以作為存在于模式S中而不存在于模式T中的變量,取得$u(步驟S1410、步驟S1420、步驟S1440)。由于變量$u在模式S中連續(xù)排列,所以從模式S的項(xiàng)目中刪除變量$u,追加到擴(kuò)展變量$#e的變量列表中(步驟S1450、步驟S1470)。最后,將$u的變量的合計(jì)尺寸保存到擴(kuò)展區(qū)域中(步驟S1480)。將模式變更處理的結(jié)果表示到圖32中。圖32是表示模式變更處理后的模式所包括的項(xiàng)目的一例。如圖32所示,在本實(shí)施方式中,在模式變更處理后,具有“可變區(qū)域” 401、“變量 ” 402、和“擴(kuò)展變量$#e (VI...,Vn) ” 403的項(xiàng)目。另外,說明了在主服務(wù)器的分散計(jì)劃的運(yùn)算和從屬服務(wù)器的本地計(jì)劃的運(yùn)算中交 接數(shù)據(jù)時(shí)實(shí)施上述模式變更處理的事例,但在同一服務(wù)器內(nèi)、或從屬服務(wù)器間的運(yùn)算中交接數(shù)據(jù)時(shí)也能夠采用。在圖24中,在運(yùn)算號(hào)碼6的服務(wù)器間聯(lián)合之前接收變量$z。但是,由圖18、圖12、圖19的本地計(jì)劃候選可知,計(jì)算機(jī)I發(fā)送變量$z、$u、$v這3組數(shù)據(jù),計(jì)算機(jī)2發(fā)送變量$z,計(jì)算機(jī)3發(fā)送變量$z、$u這兩組數(shù)據(jù)。因此,這樣下去成為處理列數(shù)不同的表。因而,在主服務(wù)器的模式變更部18中,將模式變更,以便能夠?qū)D26所示的各計(jì)算機(jī)的數(shù)據(jù)的模式如圖32所示那樣看作全部計(jì)算機(jī)的數(shù)據(jù)為相同的模式。在圖24中,在運(yùn)算號(hào)碼6的服務(wù)器間聯(lián)合中僅需要變量$z,所以在除此以外還包含變量的情況下,全部作為保存有I個(gè)可變長(zhǎng)數(shù)據(jù)的擴(kuò)展變量$#e的列加以處理。并且,在可變區(qū)域中存儲(chǔ)有可變長(zhǎng)區(qū)域的尺寸。由此,在服務(wù)器間聯(lián)合的執(zhí)行時(shí)能夠全部作為相同形式的表加以處理。根據(jù)本實(shí)施方式的分散數(shù)據(jù)庫檢索裝置,由于對(duì)每個(gè)從屬服務(wù)器制作本地計(jì)劃,所以有可能按照每個(gè)從屬服務(wù)器而分散計(jì)劃的一部分不同。即,有可能按照每個(gè)從屬服務(wù)器而發(fā)送的數(shù)據(jù)的模式不同。本實(shí)施方式在這樣的情況下,通過在模式變更部18、20中變更在交接數(shù)據(jù)時(shí)發(fā)送的一側(cè)的數(shù)據(jù)的模式(輸入模式)與接收的數(shù)據(jù)的模式(輸出模式)的差異,實(shí)現(xiàn)作為相同模式的數(shù)據(jù)進(jìn)行處理。S卩,在按照每個(gè)從屬服務(wù)器制作效率較高的本地計(jì)劃的情況下,有時(shí)存在多個(gè)不同的模式的數(shù)據(jù)。這樣,在按照每個(gè)從屬服務(wù)器制作效率較高的本地計(jì)劃的情況下,需要將多個(gè)不同的模式的數(shù)據(jù)統(tǒng)一處置的處理。如上所述,根據(jù)本實(shí)施方式,能夠?qū)⒍鄠€(gè)不同模式的數(shù)據(jù)統(tǒng)一地處置。此外,在本實(shí)施方式中,僅通過僅模式、或者模式和數(shù)據(jù)的一部分的區(qū)域的改寫,就能夠?qū)崿F(xiàn)統(tǒng)一地處置多個(gè)不同模式的數(shù)據(jù)。以上,說明了本發(fā)明的實(shí)施方式,但這些實(shí)施方式是作為例子提示的,并不意味著限定發(fā)明的范圍。這些新的實(shí)施方式能夠以其他各種形態(tài)實(shí)施,在不脫離發(fā)明的主旨的范圍內(nèi)能夠進(jìn)行各種省略、替換、變更。這些實(shí)施方式及其變形包含在發(fā)明的范圍及主旨中,并且包含在權(quán)利要求書所記載的發(fā)明和其等價(jià)的范圍中。
      權(quán)利要求
      1.一種檢索方法,是多個(gè)從屬服務(wù)器與主服務(wù)器連接而成的分散數(shù)據(jù)庫檢索裝置的檢索方法,上述從屬服務(wù)器具有存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫,上述主服務(wù)器存儲(chǔ)上述數(shù)據(jù)庫的管理信息,基于詢問查詢檢索上述數(shù)據(jù),上述檢索方法包括 基于上述詢問查詢,生成對(duì)多個(gè)數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)進(jìn)行檢索的分散計(jì)劃的步驟,上述分散計(jì)劃包括由上述從屬服務(wù)器分別運(yùn)算的服務(wù)器內(nèi)運(yùn)算處理,或者包括上述服務(wù)器內(nèi)運(yùn)算以及從上述多個(gè)從屬服務(wù)器收集數(shù)據(jù)并在主服務(wù)器中運(yùn)算的服務(wù)器間運(yùn)算處理;在上述分散計(jì)劃中存在能夠與上述服務(wù)器間運(yùn)算處理并行執(zhí)行的運(yùn)算,并且存在既需要執(zhí)行該運(yùn)算后的結(jié)果也需要上述服務(wù)器間運(yùn)算處理的結(jié)果的運(yùn)算的情況下,對(duì)上述分散計(jì)劃追加分割查詢結(jié)合運(yùn)算的步驟,上述分割查詢結(jié)合運(yùn)算是,并行地執(zhí)行能夠與上述服務(wù)器間運(yùn)算處理并行執(zhí)行的運(yùn)算與上述服務(wù)器間運(yùn)算,并且將通過能夠與上述服務(wù)器間運(yùn)算處理并行執(zhí)行的運(yùn)算得到的數(shù)據(jù)及通過上述服務(wù)器間運(yùn)算得到的數(shù)據(jù)相結(jié)合; 從該分散計(jì)劃中提取與上述從屬服務(wù)器關(guān)聯(lián)的計(jì)劃的步驟; 生成將包含在上述提取出的計(jì)劃中的上述分割查詢結(jié)合運(yùn)算部分以及與分割查詢結(jié)合運(yùn)算關(guān)聯(lián)的數(shù)據(jù)的收發(fā)運(yùn)算變更后得到的本地計(jì)劃候選的步驟; 生成將包含在所生成的上述本地計(jì)劃候選中的上述分割查詢結(jié)合運(yùn)算部分以及與分割查詢結(jié)合運(yùn)算關(guān)聯(lián)的數(shù)據(jù)的收發(fā)運(yùn)算變更后的新的本地計(jì)劃候選的步驟; 計(jì)算所生成的上述本地計(jì)劃候選及上述提取出的計(jì)劃各自的運(yùn)算開銷,選擇上述運(yùn)算開銷為最小的計(jì)劃作為本地計(jì)劃的步驟;以及 基于上述選擇出的本地計(jì)劃將上述分散計(jì)劃更新的步驟。
      2.一種分散數(shù)據(jù)庫檢索裝置,由具有存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫的多個(gè)從屬服務(wù)器與基于詢問查詢檢索上述數(shù)據(jù)的主服務(wù)器連接而成, 上述主服務(wù)器具備 存儲(chǔ)部,存儲(chǔ)上述從屬服務(wù)器具有的各數(shù)據(jù)庫的管理信息; 分散計(jì)劃生成部,基于上述詢問查詢,生成對(duì)多個(gè)數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)進(jìn)行檢索的分散計(jì)劃,上述分散計(jì)劃包括由上述從屬服務(wù)器分別運(yùn)算的服務(wù)器內(nèi)運(yùn)算處理,或者包括上述服務(wù)器內(nèi)運(yùn)算以及從上述多個(gè)從屬服務(wù)器收集數(shù)據(jù)并在主服務(wù)器中運(yùn)算的服務(wù)器間運(yùn)算處理; 分割查詢結(jié)合運(yùn)算追加部,在上述分散計(jì)劃中存在能夠與上述服務(wù)器間運(yùn)算處理并行執(zhí)行的運(yùn)算,并且存在既需要執(zhí)行該運(yùn)算后的結(jié)果也需要上述服務(wù)器間運(yùn)算處理的結(jié)果的運(yùn)算的情況下,對(duì)上述分散計(jì)劃追加分割查詢結(jié)合運(yùn)算,上述分割查詢結(jié)合運(yùn)算是,并行地執(zhí)行能夠與上述服務(wù)器間運(yùn)算處理并行執(zhí)行的運(yùn)算與上述服務(wù)器間運(yùn)算,并且將通過能夠與上述服務(wù)器間運(yùn)算處理并行執(zhí)行的運(yùn)算得到的數(shù)據(jù)及通過上述服務(wù)器間運(yùn)算得到的數(shù)據(jù)相結(jié)合;以及 分散計(jì)劃更新部,基于從上述從屬服務(wù)器接收到的本地計(jì)劃,將上述分散計(jì)劃更新; 上述從屬服務(wù)器具備 本地計(jì)劃候選生成部,從上述分散計(jì)劃中提取與上述從屬服務(wù)器關(guān)聯(lián)的計(jì)劃,生成將包含在上述提取出的計(jì)劃中的上述分割查詢結(jié)合運(yùn)算部分以及與分割查詢結(jié)合運(yùn)算關(guān)聯(lián)的數(shù)據(jù)的收發(fā)運(yùn)算變更后得到的本地計(jì)劃候選;以及 本地計(jì)劃選擇部,計(jì)算所生成的上述本地計(jì)劃候選及上述提取出的計(jì)劃各自的運(yùn)算開銷,選擇上述運(yùn)算開銷為最小的計(jì)劃作為本地計(jì)劃。
      3.如權(quán)利要求2所述的分散數(shù)據(jù)庫檢索裝置, 具備模式變更部,在上述服務(wù)器間運(yùn)算中,收發(fā)的數(shù)據(jù)的列在上述主服務(wù)器和上述從屬服務(wù)器中不同的情況下,該模式變更部使上述列為存儲(chǔ)有可變長(zhǎng)的數(shù)據(jù)的列。
      4.一種主服務(wù)器,與具有存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫的多個(gè)從屬服務(wù)器連接構(gòu)成分散數(shù)據(jù)庫裝置,基于輸入的詢問查詢,檢索上述數(shù)據(jù)庫,上述主服務(wù)器具備 存儲(chǔ)部,存儲(chǔ)上述從屬服務(wù)器具有的各數(shù)據(jù)庫的管理信息; 分散計(jì)劃生成部,基于上述詢問查詢,生成對(duì)多個(gè)數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)進(jìn)行檢索的分散計(jì)劃,上述分散計(jì)劃包括由上述從屬服務(wù)器分別運(yùn)算的服務(wù)器內(nèi)運(yùn)算處理,或者包括上述服務(wù)器內(nèi)運(yùn)算以及從上述多個(gè)從屬服務(wù)器收集數(shù)據(jù)并在主服務(wù)器中運(yùn)算的服務(wù)器間運(yùn)算處理; 分割查詢結(jié)合運(yùn)算追加部,在上述分散計(jì)劃中存在能夠與上述服務(wù)器間運(yùn)算處理并行執(zhí)行的運(yùn)算,并且存在既需要執(zhí)行該運(yùn)算后的結(jié)果也需要上述服務(wù)器間運(yùn)算處理的結(jié)果的運(yùn)算的情況下,對(duì)上述分散計(jì)劃追加分割查詢結(jié)合運(yùn)算,上述分割查詢結(jié)合運(yùn)算是,并行地執(zhí)行能夠與上述服務(wù)器間運(yùn)算處理并行執(zhí)行的運(yùn)算與上述服務(wù)器間運(yùn)算,并且將通過能夠與上述服務(wù)器間運(yùn)算處理并行執(zhí)行的運(yùn)算得到的數(shù)據(jù)及通過上述服務(wù)器間運(yùn)算得到的數(shù)據(jù)相結(jié)合;以及 分散計(jì)劃更新部,基于從上述從屬服務(wù)器接收到的本地計(jì)劃,將上述分散計(jì)劃更新。
      5.一種從屬服務(wù)器,具備數(shù)據(jù)庫,多個(gè)上述從屬服務(wù)器與基于輸入的詢問查詢檢索上述數(shù)據(jù)庫的主服務(wù)器連接構(gòu)成分散數(shù)據(jù)庫檢索系統(tǒng),上述從屬服務(wù)器具備 本地計(jì)劃候選生成部,在從主服務(wù)器接收到的分散計(jì)劃中提取與上述從屬服務(wù)器關(guān)聯(lián)的計(jì)劃,生成將包含在上述提取出的計(jì)劃中的上述分割查詢結(jié)合運(yùn)算部分以及與分割查詢結(jié)合運(yùn)算關(guān)聯(lián)的數(shù)據(jù)的收發(fā)運(yùn)算變更后得到的本地計(jì)劃候選;以及 本地計(jì)劃選擇部,計(jì)算所生成的上述本地計(jì)劃候選及上述提取出的計(jì)劃各自的運(yùn)算開銷,選擇上述運(yùn)算開銷為最小的計(jì)劃作為本地計(jì)劃。
      6.如權(quán)利要求5所述的從屬服務(wù)器, 在上述本地計(jì)劃選擇部計(jì)算的上述本地計(jì)劃候選的運(yùn)算開銷中,還包括由上述分割查詢結(jié)合運(yùn)算追加部追加的分割查詢結(jié)合運(yùn)算的運(yùn)算開銷。
      全文摘要
      本發(fā)明提供一種不使主服務(wù)器側(cè)的機(jī)制復(fù)雜化而實(shí)現(xiàn)高效率的檢索的分散數(shù)據(jù)庫檢索裝置。實(shí)施方式的分散數(shù)據(jù)庫檢索裝置是,將基于所輸入的詢問查詢檢索數(shù)據(jù)庫的主服務(wù)器與具備數(shù)據(jù)庫的多個(gè)從屬服務(wù)器連接而構(gòu)成的。從屬服務(wù)器具備與主服務(wù)器進(jìn)行數(shù)據(jù)的收發(fā)的第2收發(fā)部、基于接收到的分散計(jì)劃生成本地計(jì)劃候選的本地計(jì)劃候選生成部、和基于所生成的本地計(jì)劃候選決定運(yùn)算開銷為最低的本地計(jì)劃的本地計(jì)劃選擇部。
      文檔編號(hào)G06F17/30GK102831138SQ201210048380
      公開日2012年12月19日 申請(qǐng)日期2012年2月28日 優(yōu)先權(quán)日2011年6月14日
      發(fā)明者黑田洋介 申請(qǐng)人:株式會(huì)社東芝, 東芝解決方案株式會(huì)社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1