JPH0652022A - データベースへのアクセス時の応答時間を最少化する方法 - Google Patents

データベースへのアクセス時の応答時間を最少化する方法

Info

Publication number
JPH0652022A
JPH0652022A JP5130886A JP13088693A JPH0652022A JP H0652022 A JPH0652022 A JP H0652022A JP 5130886 A JP5130886 A JP 5130886A JP 13088693 A JP13088693 A JP 13088693A JP H0652022 A JPH0652022 A JP H0652022A
Authority
JP
Japan
Prior art keywords
sub
plan
time
response time
plans
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5130886A
Other languages
English (en)
Inventor
Ravi Krishnamurthy
ラヴィ・クリシュナマシー
Waqar Hasan
ワガー・ハサン
Sumit Ganguly
サミット・ガングリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0652022A publication Critical patent/JPH0652022A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 並列動作可能な複数リソースを有するテ゛ータヘ゛ースシス
テムにおける問題解決に必要とされる応答時間を最少化す
ること 【構成】 テ゛ータヘ゛ースシステムは並列動作可能な複数のリソースを
有する。問題は複数の副問題に分割されて複数レベルの
階層状に配列される。第1レヘ゛ルの各副問題は記憶リソースか
らのテ゛ータの取り出しを必要とし、上位レヘ゛ルの各副問題は
下位レヘ゛ルの副問題の結果の計算リソース中での操作を必要と
する。各副問題を解決可能な副フ゜ランを全て識別する。同
一問題を解決するのに各リソースに要する時間が他より長い
副フ゜ランを全て削除する。問題を解決する残りの副フ゜ランの
考えられる各組み合わせ毎に応答時間を計算し、応答時
間が最短の組み合わせを最適フ゜ランとして選択する。好適
には本方法は応答時間の最少化にて過度の特別作業を実
行することを必要とする副フ゜ランを削除する。本方法はセレ
クト・フ゜ロシ゛ェクト・シ゛ョイン照会として知られる類の問題の解決
に利用可能である。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的に、コンピュー
タ化されたデータベースシステムに関し、特に、並列動
作可能な複数のリソースを有するデータベースシステム
からデータを取り出す際に必要とされる時間を最少化す
る方法に関する。
【0002】
【従来の技術】コンピュータ化データベースシステムに
おけるリソースは、当該システムにおいて機能ユニット
として定義される。典型的なデータベースシステムは、
少なくとも2つのリソースを有する。即ち、中央処理装
置(CPU)と、磁気ディスクのような記憶媒体がそれで
ある。前記データベースシステムの応答時間とは、問題
の解決を当該システムに対して求めてから、当該システ
ムから当該問題に関する結果が得られるまでの時間のこ
とである。図1は、問題を解決する際に、データベース
システムによって実行される論理ステップのシーケンス
の概略を示すものである。問題は、実行されるべき照会
Qという形で提示される。当該照会Qは、コンパイラ/
オプティマイザCに与えられる。幾つかの基準に基づい
て、当該コンパイラ/オプティマイザは、実行空間ESか
ら、1つのプランを選択する。当該実行空間ESには、前
記照会を実行するための、考えられる全てのプランが含
まれる。このようにして選択されたプランが(処理ステ
ップEで)実行されて応答Rが提供される。
【0003】データベースシステム中で解決されるべき
問題は、図2に示す類の三つのテーブルを組み合わせる
ことである。即ち、当該テーブルは、被雇用者テーブル
E(被雇用者の氏名を、当該被雇用者が働いている部門
の部門番号と当該被雇用者の有するスキルを表示するス
キル番号とにマッピングするもの)と、スキルテーブル
S(前記スキル番号を当該スキルの記述にマッピングす
るもの)と、部門テーブルD(前記部門番号を当該部門
の名称にマッピングするもの)とである。
【0004】図3は、問題を解決するための2つの異な
るプランを示す。当該2つの異なるプランは、同一の問
題を異なる順序で解決する。「J」は、前記テーブルを互
いに結合させることを意味する。図3(a)に示すよう
に、最初のプランは、前記被雇用者テーブルEを前記部
門テーブルDに結合させ、次いでその結果を前記スキル
テーブルSに結合させる。その順序に基づき、当該プラ
ンは(EDS)と表すことができる。図3(b)に示す2
番目のプランは、前記被雇用者テーブルEを前記スキル
テーブルSに結合させ、次いでその結果を前記部門テー
ブルDに結合させる。当該プランは(ESD)と表すこ
とができる。幾つかの基準に基づき、前記問題を解決す
るのに最適なプランとして前記の最初のプランまたは前
記2番目のプランのいずれか一方が選択される。
【0005】問題を解決する上で必要なテーブル数が増
加するに従い、当該テーブルを結合させるための考えら
れるプラン数が増加する。これは、ひいては、最適なプ
ランを発見するために必要とされる時間を極めて増大さ
せることになる。「動的計画法(dynamic programmin
g)」として知られる技法は、最適プランを発見するため
に必要とされる時間を大幅に削減するものである。動的
計画法では、問題は複数の副問題に分割される。あらゆ
る副問題の複数の発生が識別され、当該副問題の最初の
発生時にのみ解が計算される。次いで、当該解は、同一
の副問題が再発生する毎に再使用される。当該解の再使
用によって、比較する必要のあるプランの数が大幅に削
減され、これにより、最適プランを発見するために必要
とされる時間が大幅に削減されることになる。動的計画
法に関する全般的な論議は、Bellman氏の「Dynamic Pro
gramming」(1957年、Princeton University )に見い出
される。
【0006】データベースの照会を解決するための最適
プランの選択は、作業負荷を最小にする基準に基づいて
行われるのが普通である。当該作業負荷は、照会により
コンピュータの種々のリソース(CPUやディスク記憶
装置等)に課せられるものであり、その大きさは一般
に、前記リソースの各々が当該照会を解決するのにビジ
ー状態となっていた時間の長さの総和として表されてき
た。従って、所与のプランが、10秒間のディスク時間
と5秒間のCPU時間とを必要とする場合には、当該プ
ランに従って当該照会を解決するのに必要な総「作
業」、即ち総計算時間は、15秒間と規定される。異な
るプランを比較する場合、各プランが必要とする総作業
が計算される。続いて、当該コンピュータシステムに最
少量の作業を必要とするプランが、最適プランとして選
択される。
【0007】当該最少量の作業を必要とするプランを発
見するための方法は、「greedyアルゴリズム」として知
られている。当該greedyアルゴリズムについての全般的
な論議は、Cormen氏等による「Introduction to Algori
thms」(1990年、マグローヒル社)に見られる。問題を
解決するために必要とされる総作業を最少にするための
当該greedyアルゴリズムの使用に関する論議は、Apers
氏等による「Optimization Algorithms for Distribute
d Queries」(IEEE Transactions on SoftwareEngineer
ing, 9(1), 1983)に見られる。
【0008】総作業を最少にするための基準に従ってプ
ランを選択するための他の方法は、Hong氏等による「Op
timization of Parallel Query Execution Plans in xp
rs」(Proceedings of the First International Confe
rence on Parallel and Distributed Information Syst
ems, 1991年12月)、及び、Selinger氏等による「Acces
s Path Selection in a Relational Database Manageme
nt System」(Proceedings of ACM−SIGMOD Internatio
nal Conference on Management of Data, 1979)に記載
されている。
【0009】作業の最少化によりプランを選択する方法
の1つの変形として、所定の応答時間内のスループット
の最大化によりプランを選択するという方法がある。当
該方法は、幾つかの自動預金支払機(ATM)ネットワーク
で用いられている。当該ネットワークは、所定時間中に
当該機械によって実行されるトランザクションの数の最
大化を試みる。これを実現させる1つの方法として、所
定の時間に処理されるトランザクション数を、予め設定
された応答時間内に各トランザクションを確実に完了さ
せることができる数に制限する、という方法がある。も
う1つの方法としては、トランザクション数が所定量に
達するまで個々のトランザクションを遅延させ、次いで
それらを一括して処理するという方法がある。この方法
は、当該システムを最も効率的に使用する方法ではある
が、最初の幾つかのトランザクションに関する応答時間
が増大するという代償を要するものである。
【0010】如何なる時にもコンピュータの1つのリソ
ースしか動作できない場合には、総作業を最少にするプ
ランを選択することにより、応答時間を最少にするプラ
ンが得られる、ということが一般に予測できる。しかし
ながら、並列動作可能な複数のリソースを備えたコンピ
ュータシステムの場合には、全てのリソースの総作業時
間量を最少にすることと応答時間を最少にすることと
は、一般には同じではない。例えば、2つのディスク記
憶装置D1,D2と2つのCPU C1,C2とを有するコンピュータ
システムについて考察する。図4は、考えられる1つの
プランを実行して1つの問題を解決するために前記リソ
ースの各々に課せられる作業負荷を示している。斜線領
域は、当該問題に関して個々のリソースが作動している
時間間隔を示す。即ち、D1,D2,C1は、各々40秒間を必要
とし、C2は90秒間を必要とする。これらの全ソースによ
り必要とされる総時間は210秒間であるが、当該リソー
スのうちの幾つかが並行してそれぞれの作業を実行する
ので、応答時間は、100秒しかかからない。
【0011】プロセッサC2によって実行される作業を40
秒間から10秒間に減少させるプランは、総作業を30秒間
だけ減少させるが、前記応答時間には何ら影響を与えな
い;ということが理解されよう。逆に、プロセッサC1に
よって実行される作業を90秒間から70秒間に減少させる
プランは、当該システムの応答時間を20秒間だけ減少さ
せることになる。従って、応答時間を短縮化する必要が
ある場合には、前者のプランがシステムの総作業を大幅
に減少させるものであったとしても、後者のプランの方
が好ましいことになる。
【0012】
【発明が解決しようとする課題】以上の説明から、並列
動作する複数のリソースを有するコンピュータ化データ
ベースシステムにおいて問題を解決するのに必要とされ
る応答時間を最少化するための方法が必要とされてい
る、ということが理解されよう。
【0013】
【課題を解決するための手段】本発明は、問題を解決す
る際のコンピュータ化データベースシステムの応答時間
を最少にする方法を提供するものである。当該データベ
ースシステムは、記憶リソースや計算リソース等の並列
動作可能な複数のリソースを有する。
【0014】即ち、手短に且つ一般的に言えば、本発明
により提供される当該方法は下記ステップを含み、その
全てはソフトウェアの制御下でコンピュータにより自動
的に実行される。問題は、複数の副問題に分割される。
当該副問題は、複数レベルの階層状に配列される。第1
レベルにある各々の当該副問題は、コンピュータの記憶
リソースからデータを取り出すことを必要とし、残りの
レベルにある各副問題は、下位レベルの副問題の結果を
当該コンピュータの計算リソースにおいて操作すること
を必要とする。
【0015】当該副問題の各々を解決するのに使用する
全ての副プランを識別する。最初の階層にある任意の副
問題が2つ以上の関連する副プランを有する場合であっ
て、その関連する副プランのうちの或る副プランを解決
するのに各リソースに対して必要とする時間がその他の
関連する副プランを解決するのに各リソースに対して必
要とする時間より長い場合、前者の副プランは全て削除
される。
【0016】一実施例では、第1レベルより上位レベル
にある各副問題は、そのすぐ下位レベルの副問題の結果
と第1レベルの副問題の結果との双方を必要とする。ま
た、第1レベル以外のレベルの副問題に関連する各々の
副プランも、そのすぐ下位レベルの副問題の結果と第1
レベルの副問題の結果との双方を必要とし、当該結果は
計算リソースにおいて操作される。
【0017】他の実施例では、第1レベルより上位の任
意のレベルにおける各副問題は、2つの下位レベルの副
問題の結果を必要とする。第1レベル以外のレベルにお
ける副問題に関連する各副プランもまた、2つの下位レ
ベルの副問題の結果を必要とし、当該結果は計算リソー
スにおいて操作される。
【0018】或る実施例では、1番目より上位レベルに
おける副問題に対して、副プランを削除する処理ステッ
プが繰り返される。
【0019】次いで、残りの副プランの考えられる組み
合わせの各々に従って問題を解決するのにコンピュータ
が必要とする時間量が計算され、最良の応答時間を与え
るものであればどのような組み合わせであっても、それ
が最適プランとして選択される。
【0020】或る代替実施例では、本発明の方法は、当
該システムに性能低下の許容される範囲内で最大スルー
プットの制限を行うか、または応答時間を減少させるた
めに必要とされる特別な作業の制限を行う。当該制限を
越える副プランは全て削除される。
【0021】本発明のその他の特徴及び利点は、本発明
の原理を例示した添付図面を参照して以下の詳細な説明
を読むことによって明かとなろう。
【0022】
【実施例】本発明は、問題を解決する際におけるコンピ
ュータ化データベースシステムの応答時間を最少化する
方法を提供する。当該データベースシステムは、並列動
作可能な2つ以上のリソースを有する。問題を解決する
ための当該リソースの総計算時間を最少にする代わり
に、本発明の方法は問題を解決する際の応答時間を最少
にする。
【0023】図5は、3つのテーブルE,D,Sを互い
に結合させることにより問題を解決する場合における本
発明の利用例を示すものである。下付き数字1は当該テ
ーブルが第1リソース中にあることを示し、下付き数字
2は当該テーブルが第2リソース中にあることを示す。
第1リソースは3つのテーブルを全て保持しており、第
2リソースはテーブルE,Dのみを保持している。
【0024】図5(a)は、テーブルE,Dを互いに結合
させるのに第1リソースが10単位時間を必要とし、そ
の結合されたテーブルをテーブルSに結合させるのに更
に5単位時間を必要とする、ということを示している。
当該作業を1つのリソースで行えば、結果を得るまで1
5単位時間が必要となる。換言すれば、当該問題を解決
する際の応答時間は15単位時間である。
【0025】図5(b)は、テーブルE,Dを互いに結合
させるのに第2リソースが11単位時間を必要とし、そ
の結合されたテーブルにテーブルSを結合させるのに第
1リソースが5単位時間を必要とする、ということを示
している。従ってそれら2つのリソースは当該問題を解
決するのに16単位時間を用いるが、当該リソースの全
てが並列動作可能であるため、当該結果を得るのに11
単位時間しか必要とされない。換言すれば、当該問題を
解決する際の応答時間は11単位時間である。
【0026】従来のシステムでは、テーブルE,Dを結
合させた後、図5(b)のプランが削除される。これは、
図5(b)の操作が、図5(a)の操作より1単位時間だけ余
分な11単位時間を必要とするからである。本発明は、
2つのプランが2つの異なるリソースで処理される際
に、その一方のプランが他方のプランより物理的に時間
がかかる場合であっても、その2つのプランを双方とも
保持する。図示のように、1つの問題について2つ以上
のリソースが動作する場合、1つのリソースが他のリソ
ースより短時間で1つの副プランを完了するということ
は、プラン全体が完了する応答時間が短縮することに必
ずしも通ずるものではない。
【0027】図6は、1つの問題を解決する際の応答時
間を最適化するようにプランを選択する本発明の方法の
他の一例を示すものである。図6(a)は、当該問題を解
決するための2つの副プランを示す。当該副プランは、
それぞれ1つずつリソースを使用する。即ち、副プラン
203はリソース201を使用し、副プラン204はリソース202
を使用する。リソース201は副プラン203を解決するのに
5単位時間を必要とし、リソース202は副プラン206を解
決するのに6単位時間を必要とする。当該2つのリソー
スは並列動作して、当該問題の結果を6単位時間で演算
子に与える。従って、総計算時間は11単位時間である
が、当該システムの応答時間は6単位時間となる。
【0028】図6(b)は、2つの当該副プラン203,204を
示す。当該副プランは共にリソース201を使用して当該
問題を解決する。リソース201は、副プラン203の解決に
はやはり5単位時間を必要とするが、副プラン204の解
決には4単位時間だけ必要とする。従って、当該問題を
解決する際の当該システムの応答時間と総計算時間とは
共に9単位時間となる。
【0029】従来のシステムでは、図6(b)の副プラン
が選択される。これは、当該副プランが必要とする単位
時間が9単位時間であり、これは図6(a)の副プランの
場合よりも2単位時間だけ短いからである。しかしなが
ら、本発明は、図6(a)の副プランを選択する。これ
は、当該副プランが、図6(b)の副プランの場合より3
単位時間だけ短い6単位時間で結果を与えるからであ
る。応答時間を最適化する場合には、総計算時間を最適
化するプランとは異なるプランが問題解決のために選択
されることが多い。
【0030】図7に示すコンピュータ化データベースシ
ステム100は、本発明の方法により使用されるものであ
る。当該データベースシステム100は2つ以上のリソー
スを有し、即ち、計算リソース102,104とディスク記憶
リソース106,108とを有する。当該リソースは全て並列
動作可能なものである。
【0031】図8は、本発明の方法の第1の好適実施例
を概略的に示すものである。本発明の方法は、最初に、
問題10を複数の副問題10,11,12,13,15,17,19に分割し、
当該問題10自体も1つの副問題として取り扱う。次い
で、それらの副問題がレベル1,2,3等の複数レベルに階
層状に配列される。第1レベルにおける各副問題は、情
報テーブル等のデータを記憶リソースから取り出すこと
を必要とする。例えば、副問題11は、図7のリソース10
6等の記憶リソースからデータ51を取り出すことを必要
とする。一層上位のレベルにおける各副問題は、一層下
位のレベルにおける副問題の結果を計算リソースにおい
て操作することを必要とする。例えば、副問題15は、副
問題11の結果を計算リソース104において操作すること
を必要とする。
【0032】各副問題を解決するために使用される全て
の副プランが識別される。例えば、副問題11について副
プラン20,22が識別される。ここで留意すべきことは、
副プラン20が2つの副々プラン20A,20Bに更に分割さ
れ、副プラン22もまた2つの副々プラン22A,22Bに分割
される、ということである。
【0033】第1レベルにおける2つ以上の副プランを
備えた全ての副問題について、同じ副問題を解決する際
にコンピュータの複数のリソースの各々に対して必要と
する時間が他の副プランよりも多い副プランは全て削除
される。例えば、記憶リソース106が、副々プラン20Bを
実行する場合より多くの時間をかけて副々プラン22Bを
実行し、及び、計算リソース102が、副々プラン20Aを実
行する場合より多くの時間をかけて副々プラン22Aを実
行する場合には、副プラン22が削除される。好適には、
当該手続きを他の全レベルの副問題に対して階層的に繰
り返す。例えば、計算リソース104が、副プラン52を実
行する場合より多くの時間をかけて副プラン50を実行す
る場合に副プラン50が削除されることになる。
【0034】応答時間は、当該問題を解決するプラン6
0,63等の残りの副プランの考えられる組み合わせの各々
について計算される。即ち、当該組み合わせのうち最少
の応答時間を有する組み合わせが、最適プランとして選
択される。図示の例では、プラン60が選択される。
【0035】前記の第1の好適実施例では、第1レベル
以外のレベルにあって関連する副プランを有する副問題
の各々は、すぐ下位レベルにおける副問題の結果と第1
レベルにおける副問題の結果との双方を計算リソースに
おいて操作する、ということを必要とする。例えば、関
連する副プラン30を有する副問題10は、すぐ下位レベル
における副問題15の結果と第1レベルにおける副問題13
の結果との双方を計算リソース102において操作する、
ということを必要とする。
【0036】最適プランを選択する本発明の方法は、セ
レクト・プロジェクト・ジョイン(select−project−jo
in)照会として知られる或る種の問題の解決に応用する
ことができる。
【0037】図9は、テーブル中の或る行を選択する
「セレクト」操作を示すものである。例えば、50未満
の番号を有する部門の全てを部門テーブルから選択して
新たな部門テーブルを形成することができる。
【0038】また、図10は、テーブル中の或る列の投
影(projection)を形成する「プロジェクト」操作を示す
ものである。例えば、部門テーブルから部門番号の全て
を投影して、部門番号のみを備えた新たなテーブルを形
成することができる。
【0039】図11は、2つのテーブルを結合して新た
なテーブルを形成する「ジョイン」操作を示すものであ
る。例えば、スキルテーブルを被雇用者テーブルに結合
させて新たなテーブルを形成することができる。
【0040】第1階層の副問題を解決する副プランの各
々は、「スキャン」、「セレクト」、「プロジェクト」
等のタスクを実行する。ここで、「スキャン」とは、デ
ータテーブルを取り出すことを意味する。第1階層以外
の階層における副問題を解決する副プランの各々は、
「セレクト」、「プロジェクト」、「ジョイン」等のタ
スクを実行する。
【0041】第2の好適実施例は、下記の相違点を除け
ば、前記の第1の好適実施例と同じである。即ち、当該
相違点とは、当該第2実施例では、第1レベル以外のレ
ベルにあり且つ関連する副プランを有する副問題の各々
が、下位の2つのレベルにおける2つの副問題の結果を
計算リソースにおいて操作することを必要とする、とい
う点である。ここで図12を参照する。関連する副プラ
ン80を有する副問題70は、下位レベルにある副問題72,7
1の結果を図7の計算リソースにおいて操作することを
必要とする。
【0042】代替実施例では、本発明の方法は、システ
ムに性能低下の許容される範囲内で最大スループットの
制限を行うか、または応答時間を短縮するために必要と
される特別な作業の制限を行う。当該制限を越える副プ
ランは全て削除される。
【0043】当該実施例では、当該システムが必要最小
限の総作業で問題を解決するために必要とされる総計算
時間Woが計算される。当該システムの性能低下が許容さ
れる最大スループットを示す係数Fが設定され、問題の
解決にWo×Fを越える時間を必要とする副プランが全て
削除される。
【0044】当該システムによって必要とされる特別作
業量を制限するもう1つの方法は、下記ステップに従っ
て実現される。即ち、第1に、当該システムが最少量の
総作業を実行して問題を解決する際に当該システムが必
要とする応答時間Toと総計算時間Woとが計算され、第2
に、当該応答時間を短縮化するために必要とされる特別
な作業の最大量を示す係数Fが設定され、第3に、全て
の副プランに対し、当該システムが前記問題を解決する
ために必要とする応答時間Tpと総計算時間Wpとが計算さ
れ、第4に、次式を満たす副プランの全てが削除され
る。
【0045】(To−Tp)/(Wp−Wo)<F 本発明の更に詳細な説明を以下で行うこととする。
【0046】計算コストが低下すれば、並列実行を利用
して安価なリソースを開発することにより意志決定支援
照会の応答時間を短縮することが経済的に実行可能にな
る。この目的は、スループットに関して制約を受ける応
答時間を最短にするという照会最適化問題を生じること
になるが、これについて、我々は、従来のDBMSの問
題の二元性であると主張する。この新規の問題について
は、市販のDBMSに広く利用されている実行空間、コ
ストモデル、及び、探索アルゴリズムを拡張することに
より、セレクト・プロジェクト・ジョイン照会に関連し
て取り扱うこととする。従来の実行空間に並列処理の誘
因と抑止因とを組み込む。コストモデルは応答時間が予
測可能であることを示し、また並列処理による新しい局
面についても説明する。我々の観測したところでは、応
答時間最適化の方法(metric)により、殆どの市販のDB
MSにおけるオプティマイザの要である動的計画法のア
ルゴリズムの基本的前提が崩れることになる。我々は、
動的計画法を拡張して、正確に応答時間を予測する最適
化方法を設計することができる方法を示す。
【0047】1 序文 ヒューレット・パッカード社の研究所のPapyrusプロジ
ェクト[CHK+91]では、高度に調整されたカスタマイズ
されたデータマネージャを統合すると共にその性能に関
する要件を保持する方法を調査している。高性能の要因
の1つとして照会の並列実行が挙げられる。一般に、該
プロジェクトは、任意のデータ操作演算子を含む照会の
並列実行を求めるものであるが、本明細書中では、並列
実行のためのセレクト・プロジェクト・ジョイン(SP
J)照会の最適化に関する問題を中心に論じることにす
る。
【0048】人間が複雑な照会を行い、対話応答を要求
する、意志決定支援アプリケーションにおいては、応答
時間の短縮が必要になるのは明らかである。例えば、有
価証券明細(stock portfolio)マネージャは、ボタンを
クリックすることにより重要な照会を実行することがで
き、証券の多様な範疇に従って結果をグラフ化すること
ができる。これは、特殊な例ではなく、意志決定プロセ
スにおけるタスクの典型的な例である。妥当な応答時間
の獲得は、これらのアプリケーションにおいて大きな障
害となってきた。
【0049】計算コストが低下すれば、安価なリソース
を投入して照会の並列実行を開発することにより応答時
間の短縮を達成することが経済的に実施可能になる。例
えば、バニラ(vanilla)ソート/マージと比較して行わ
れる特別な作業を犠牲にすることにより、ハッシュ(has
h)区分化ソート/マージ[SD89]を利用して応答時間を
短縮することが可能である。特別な作業は応答時間の短
縮と引き換えになるが、どんな犠牲を払っても応答時間
を短縮するというのは容認できない。
【0050】今日の市販のデータベースはスループット
の最大化を目的としているが、応答時間にある程度の制
限を課している。例えば、TPC-Aベンチマーク[Gra91]
は、照会の90%が多くとも2秒の応答時間ですむことを
必要とする。しかし、この要件は一般には、オプティマ
イザにその要件を組み込むことによってではなく、最大
多重プログラミング度及びグループの実施頻度といった
システムパラメータを設定することによって保証され
る。他の種類の照会に関する応答時間を保証するために
はオプティマイザ自体の修正が必要になる。
【0051】従来のデータベースに関する問題は、応答
時間に関して制約を受けるスループットを最大にするこ
とである。意志決定支援アプリケーションは、スループ
ットに関して制約を受ける応答時間を最短にするという
二元性の最適化問題を課すことになるという点を主張し
ておく。
【0052】並列実行に関する照会の最適化は、開放問
題[DG90]とみなされる。[AHY83]及びXPRS[HS91]におけ
る応答時間の最短化に関する先行研究では、提案された
解決策の適用可能性を制限する並列マシンアーキテクチ
ャに関する前提条件の制限がなされている。Gammaプロ
ジェクト[DGS+90,SD89,Sch90]では、多くの実行戦略が
研究されたが、照会の最適化に関する問題は取り扱われ
なかった。
【0053】この最適化の問題に対する解決策は、市販
のオプティマイザを用いた10年間にわたる経験に基づ
いて講じるべきである。[SAC+79]の例にならって、3つ
の大きさに沿って、即ち、実際の実行に関する全ての関
連アスペクトの構文的表現を定義する実行空間と、実行
プランのコストを予測するコストモデルと、最小のコス
トプランを得るために用いられる探索アルゴリズムとに
沿って、並列照会の最適化問題に対する解決策の説明を
行うことにする。
【0054】本明細書で解説の解決策は、並列マシンア
ーキテクチャの全範囲にわたって適用可能である。アー
キテクチャ間における相違は、コストモデルの厳密な細
部の変化及び探索方法の設計において重要とみなされる
要素の変化として現れる。
【0055】従来の実行空間を拡張して、並列実行の誘
因(異なる結合の並列に実行や1つの結合の並列化等)
及び並列実行の抑止因(データ依存性及びリソース競合
等)をモデル化した。こうして、オプティマイザにより
検査すべきトレードオフが明らかになった。
【0056】応答時間の予測における上述のトレードオ
フを推定することのできるコストモデルの設計が可能で
あることが明らかになった。例えば、パイプライン式実
行の応答時間推定値は、データフロー依存性及びリソー
ス競合に応じて、独立した並列実行の推定値から、逐次
実行時より悪い推定値までの範囲にわたる。この悪化時
のパイプライン式実行は、並列処理が利用可能でない場
合におけるパイプライン式演算の実行に対する不利益を
反映するものである。このため、思慮に富んだコストモ
デルの実現可能性を立証した。
【0057】応答時間は、基本特性に、即ち市場で認め
られた探索アルゴリズム[SAC+79]が必要とする最適性の
原理に背くものである、ということが明らかになった。
従来の動的計画法によるアプローチでは、作業に関する
配列全てを用いているが、本拡張案では、応答時間を予
測する方法に関して部分的配列を用いている。更に、本
アプローチの実践性を実証する分析が提供される。
【0058】要するに、特別な作業に関して制約を受け
る応答時間を最短化するための一般的ではあるが実践的
な最適化アルゴリズムの実現可能性を立証するため、実
行空間とコストモデルと探索アルゴリズムとの設計にお
ける問題を扱った。
【0059】以下、セクション2で最適化方法の厳密な
説明を行い、セクション3で従来のオプティマイザの概
要を示す。セクション4では並列処理の誘因及び抑止因
を実行空間がモデル化する方法を論じ、セクション5で
コストモデルを示し、セクション6で探索アルゴリズム
を扱い、セクション7で結論を示す。
【0060】2 並列照会最適化:最適化方法 照会qと、実行プランの空間Eと、実行プランp∈Eに
数値コストを割り当てるコスト関数cost(p)とを与えた
場合、照会最適化の一般的な問題は、qを計算する最低
コスト実行プランを求めること、と表すことができる。
【0061】照会のコストをその応答時間として公式化
したが、応答時間の短縮と引き換えにすることが可能な
「特別な」作業に制限を設けている。特別な作業に関す
る制限は、作業及び応答時間のトレードオフに対するシ
ステム管理制御を可能にするパラメータによって決定さ
れる。照会の最適化問題に関する本公式化は、全く新規
のものであり、また必要なものであると確信している。
【0062】照会qに関する最適作業プランの作業及び
応答時間コストをそれぞれWo及びToとし、任意の実行
プランpに関する最適作業プランの作業及び応答時間コ
ストをそれぞれWp及びTpとし、特別な作業を制限する
ための2つの方法について考察する。
【0063】●スループットの低下に関する制限:シス
テムアドミニストレータは、システムの最大スループッ
トを低下させることができる係数kを指定することがで
きる。Wp≦k×Woの場合、pのコストはTpであり、
その他の場合は無限となる。
【0064】●コスト/利益比:システムアドミニスト
レータは、必要とされる追加作業に対する応答時間の短
縮の比に対して限界値kを指定することができる。(T
o−Tp)/(Wp−Wo)≧kである場合には、pのコス
トはTpであり、他の場合には無限となる。
【0065】この特別な作業に対する制限は、分岐及び
制限技法の組み込みと同様に、探索アルゴリズム中に組
み込まれる。
【0066】3 従来のオプティマイザの再検討 市販のDBMSはスループットの最適化のために構築された
ものであり、従って、その最適化方法は作業である(全
リソースを消費)。これらのシステムにおけるオプティ
マイザは、System R オプティマイザ[SAC+79]の構想を
採用している。こうしたオプティマイザの設計は、3つ
の構成要素、即ち実行空間とコストモデルと探索アルゴ
リズムとに分解することができる。
【0067】実行空間:照会実行は構文的には注釈付き
結合ツリー(プランとも呼ばれる)として表現される。
これは、各内部ノードが結合演算であり、各葉ノードが
基底関係である、2進ツリーである。ノードにおける
「ラベル=値」という形式の注釈は、モデル化すべき実
行の重要な要素である。結合ノードに関する注釈の例
は、「結合方法=ネスト型ループ」である。他のラベル
例には、経路アクセス、索引生成、及び重複排除があ
る。
【0068】こうしたツリーの意味論は、左深層(left-
deep)ツリーの場合直感的である。結合ツリーの副ツリ
ーから成る各組が正確に1度ずつ計算されるという意味
論的制約が課されている。その結果、左深層ツリーと
「同一」の実行を表すブッシー(bushy)ツリーが排除さ
れる。
【0069】照会が行われると、(データベースの状態
に関わらず)その照会の計算を行う全てのツリーは、そ
の照会に関する「正当なプラン」であるとみなされる。
オプティマイザは、正当なプランの無限空間の有限部分
集合だけを探索するように設計される。「探索空間」と
呼ばれるその部分集合は構文的に特徴付け可能なもので
ある。例えば、System R の探索空間は、[SAC+79]に記
載の注釈付きの左深層結合ツリーである。
【0070】コストモデル:コストモデルは、データの
統計的分配及びプランを実行する抽象機械に関する前提
からなる幾つかの集合に基づいてプランに整数コストを
割り当てる。コスト関数「cost(plan)→descriptor」
は、プランの左右の副ツリーの記述子によって再帰的に
定義される。この記述子には、関係サイズ、対象となる
配列、索引の利用可能性といった情報が含まれる。コス
ト関数は、簡略化のためだけに再帰的であるのではな
く、動的計画法に基づく探索アルゴリズムで利用できる
ようにしたものである。
【0071】探索アルゴリズム:これは、最低のコスト
でプランの探索空間を探索するために用いられるアルゴ
リズムである。System R 式の動的計画法のアルゴリズ
ムについては、セクション6.1.1で再検討する。
【0072】4 並列実行のモデル このセクションでは、並列実行の重要な局面について概
説し、次に、その新しい局面がモデル化される演算子ツ
リーと呼ばれる新しいツリーを得るため、従来の注釈付
き結合ツリーのマクロ拡張を示す。
【0073】4.1 並列実行の局面 逐次実行の重要な局面のモデル化に加え、並列処理の
及び抑止因を説明するためには並列実行のモデルが必
要になる。
【0074】並列処理には基本的に2つの誘因がある。
それは、(1)1対の演算子(一般には副ツリー)のデ
ータ独立性並列実行と、1対の演算子のデータ依存性
(即ちパイプライン式)並列実行との両方を含む演算子
間並列処理と、(2)クローニングと称する単一演算
(例えばソート)の並列処理を表す演算子内並列処理と
である。
【0075】こうした並列処理の2つの主たる抑止因
は、1)演算子間の論理的関係により生じる演算子間に
おける「データ依存性」(例えば、ハッシュ結合のプロ
ーブは、構築が完了するまで開始できない)と、2)幾
つかの演算子が並列に実行して同一のリソースを競合す
ることにより生じる「リソース競合」とである。
【0076】4.2 演算子ツリー 並列実行の局面を正確にモデル化するために、結合ツリ
ーの実行モデルをより精妙に改善する。各注釈付き結合
ツリーは、後述のような態様で、各結合ノードを演算子
副ツリーにマクロ拡張することにより、「独特な」演算
子ツリーに拡張される。直感的に、演算子ツリーは、ク
ローニングのための入力の区分化を除き、実行時間スケ
ジューラがその演算をそれ以上細分することができない
という意味において最小なノードを備えている。ここで
の意図は、コストモデルについて論じることの可能な基
礎となる演算子ツリーモデルの典型的な局面のいくつか
を提供することだけである点に留意されたい。従って、
それは、完全なものではない。
【0077】ノードsort-merge(R1,R2)*1は、明示的ソ
ート及びマージによりマクロ拡張される(*1 厳密に言
えば、演算はjoinであり、結合法の注釈はsort-mergeで
ある。簡略化のため、曖昧にならない限りにおいてその
表記法を用いることにする)。例えば、merge(sort(Sca
n(R1)),(Scan(R2)))が演算子ツリーである場合、そのソ
ート演算及びマージ演算のデータ依存性並びに2つのソ
ート演算の独立した並列実行がここで明示的に表され
る。R2が既にソートされている場合、演算子ツリーに
は1つのソート演算しか記述する必要がないことに留意
されたい。同様に、ノードhash-join(R1,R2)は、ハッシ
ュテーブル(例えば、probe(Scan(R1),build(Scan
(R2))))の構築及びそれに次ぐプローブに明示的に関連
して拡張させることが可能である。nested-loops結合
は、索引生成、重複排除(例えば、pure-nested-loops
(Scan(R1),create-index(Scan(R2))))のようなその結
合法の変化に明示的に関連して拡張される。演算子pure
-nested-loopsが全く変化を有さずにネスト型ループの
実行を示す点に留意されたい。
【0078】上述のように、実行の更なる詳細は注釈と
して示される。その幾つかを以下に示す。
【0079】1.対(子,親)に関する注釈「構成方
法」は、2つの可能性、即ち、「パイプライン化」と
「具体化」とがある。子が部分的出力を生成可能な場合
にはパイプライン型に設定することができ、この場合、
親は部分的出力を消費することができる。その他の場合
には、「具体化」として注釈が付けられる。対(子,
親)に関する方法を示すこの注釈は、演算子ツリー中で
一意的に定義される子ノードに関連するという点に留意
されたい。
【0080】2.注釈「クローニング」は、演算子内並
列処理のモデル化を意図したものである。この値は、リ
ソースに関して属性区分化データを用いた並列実行を表
す対(リソース集合、区分化属性)である。ソート/マ
ージノードは、結合属性Aでプロセス1,2,5,7において
クローニングされているものとして注釈付けされている
と仮定する。これは、[SD89]に記載のハッシュ区分化ソ
ート/マージを表している。
【0081】子ノードにおいて注釈が付けられる対
(子、親)間におけるデータの再分配には、2つの可能
性、即ち、真または偽がある*2*2実際の用途では更に
明確な表現の注釈が必要となり得るという点に留意され
たい。本書においてはこれで十分であるため、最も単純
な事例を示した)。後続のクローニングされる演算に基
づいて子ノードの出力を再分配する必要があると判明し
た場合、それは真に設定され、その他の場合には、偽に
セットされる。
【0082】例1 並列実行用の演算子ツリー:nested-
loops(merge(sort1(scan(R1)),sort2(scan(R2))),scan
(R3))に関し、 結合ツリー:nested-loops(sort-merge(R1,R2),R3))に
ついて考察する。
【0083】この演算子ツリーに関する注釈は、下記の
表1に示すとおりである。
【0084】
【表1】
【0085】5.コストモデル 主にトレードオフが表現可能であることを示すためにコ
ストモデルを提示する(トレードオフは応答時間に影響
を与えるものであり、このため並列実行の局面のうちで
も特にそれを示すこととした)。逐次実行(SE)につ
いてだけでなく、独立並列実行(IPE)、依存性並列
実行(DPE)、クローニングされた演算の並列実行
(CPE)についても応答時間の推定を行い、抑止因が
応答時間に影響を与えるようにした。とりわけ、以下に
示すコストモデルに関する必要事項については以降で説
明することとする。
【0086】1.IPEの応答時間は、リソースの競合
レベルに従ってSEの応答時間まで劣化する。
【0087】2.DPEの応答時間は、IPEの応答時
間から、データフローの依存性及びリソースの競合によ
りSEの応答時間より悪化した応答時間までの範囲に及
ぶ。
【0088】3.CPEの応答時間は、クローンのIP
Eと同様である。
【0089】並列処理が利用可能でない場合、特にリソ
ース競合により禁止されている場合には、パイプライン
方式での演算の実行に不利益が生じるので、DPEは、
SEより更に悪い実行にまで性能が低下する可能性があ
るという点に留意されたい。これは、該システムが、必
然的にパイプラインを設定してDPEの実行時間につい
て妥協を行うのに、SEにはそのような不利益が生じな
いからである。
【0090】以下に示すコストモデルは、この必要事項
毎に誘因及び抑止因のトレードオフを行うことが可能な
単なる一例である。従って、これは、並列実行について
規定されたコストモデルを意図したものではなく、従っ
て、前記例示の目的を損なうことにならない限り、前提
条件の簡略化を計ることとした。
【0091】まず、クローニングまたは再分配がないも
のと仮定したコストモデルを提示する。次にそのコスト
モデルをそれらの注釈に適応するように拡張する。それ
ら注釈がなければ、問題となる注釈は構成方法及びその
並列処理への影響のみとなる。要するに、実行は、ディ
スクに並列アクセスを行う従来の実行とみなすことがで
きる。
【0092】応答時間(RT)はコストモデルに関する方
法である。応答時間を表す記述子におけるコスト推定に
関するコスト記述子中の通常の情報を仮定する。演算子
ツリーPにおけるデータ依存性とりわけパイプライン式
演算を説明するため、コスト記述子は2つの部分を備え
ていなければならない。
【0093】1.第1組のPが後続の演算に対して出力
される前に終了しなければならないPの副ツリーに関す
る記述子である第1組の記述子。より精確に言えば、S1
がPにおける副ツリー集合であるとすれば、第1組のS1
が出力される前に終了しなければならないS1の最小部分
集合S2。これは、副ツリーのルートに、具体化した注釈
を有するS1の全ての副ツリーの集合である。S2は、S1の
具体化されたフロントと呼ばれる。例1の場合、S2は、
sort1及びsort2でルートされた副ツリーの集合である。
第1組の計算後に行われるS1の残余照会をS1ΘS2と表す
こととする。
【0094】2.Pの完全な実行に関する記述子である
最終組の記述子。
【0095】第1(最終)組の記述子のコスト部分は、
当初は、第1(最終)組のプランが出力される推定時間
を示す整数tf(tl)で表される。これは、時間記述子と
称し、一般にt=(tf,tl)で示される。これは、後者のサ
ブセクションにリソースの利用が含まれるように一般化
され、このため、リソース記述子と呼ばれ、これは、一
般にヘ゛クトルrで表される。これら以外に、形式主義的には
明示しなかったが、これら以外にもコスト推定に必要な
通常の統計的情報が想定される。
【0096】コストモデルは2ステップで提示される。
まず、リソース競合を前提としない応答時間の推定につ
いて解説される。従って、任意の照会に関する時間記述
子の推定について論じられる。次に、リソース競合がリ
ソース記述子の推定に組み込まれ、これによって、更
に、応答時間が影響を受ける。
【0097】 5.1 リソース競合が存在しないRTの推定 リソース競合が存在しないものと仮定してデータ依存性
と演算子内及び演算子間並列処理とについて説明して、
従来のDBMSのコストモデルに対する拡張を提示す
る。時間に関する3つの2進演算子を導入し、各演算子
がそのコストのモデル化を期待されているシナリオにつ
いて解説する。t1,t2は、演算子の2つの集合、例えばS
1,S2の完了時間を表すものと仮定する。
【0098】1.t1‖t2は、S1,S2のIPEの応答時間
を推定する。リソース競合がなければ、これはmax(t1,t
2)となる。
【0099】2.t1;t2は、S2が後に続くS1のSEの応
答時間を推定する。この場合、これはt1+t2である。
【0100】3.t1Θt2は、残余照会S1ΘS2に関する応
答時間を推定し、ここで、S2は、(S1ΘS2)にパイプ化さ
れたS2のDPEを利用したS1の具体化されたフロントと
仮定される。
【0101】このΘ演算の値は、t1とt2の間の差、及
び、応答時間を決定するクリティカルパスに対するS1及
びS2のそれぞれの影響によって決まる。現時点では、こ
の概算は、t1−t2になるが、次のセクションでは、より
正確な推定値を得るため、リソースの利用が考慮され
る。
【0102】これらの演算子を用いることにより、2つ
の構成法法、即ち、パイプライン式実行及び具体化実行
に関する公式が、下記のように導き出される。
【0103】● 生産者と消費者の時間記述子に関する
パイプラインをそれぞれp=(pf,pl)及びc=(cf,cl)とする
と、演算子p|cは、下記によって得られるパイプライン
に関する記述子(tf,tl)である: tf=(pf;cf) tl=(pf;cf;((plΘpf)‖(clΘcf))) tfは、第1組が最初の可能性のある時間において計算さ
れるという仮定の下に計算される。生産者演算子の残り
は、tlに関する公式に反映されるように、消費者演算子
の残りと並列に実行される。
【0104】● tfをtlと設定した演算子sync(t)、即
ちsync(tf,tl)=(tl,tl)を利用して時間記述子t=(tf,tl)
が計算される副ツリーの具体化実行。
【0105】演算子ツリーのコストは、上述の公式を利
用して、再帰的に計算される。基本的事例では、従来の
方法によって、ツリーの葉の記述子並びに結合法が導き
出されるが、この場合、応答時間は、その演算に必要な
全作業である。次に、それぞれ、左/右演算子及びルー
トノードに関する記述子をL,R及びrootとすると、ツリ
ーに関する記述子は、次のように再帰的に計算すること
ができる。Lの具体化フロンティア(frontier)とRの具体
化フロンティアを並列に実行することによって、時間記
述子t1=(Lf‖Rf,Lf‖Rf)を得ることができ、次に、Lの
残余照会とRの残余照会をパイプライン式に並列に実行
することによって、記述子t2=t1;(0,LlΘLf)|(0,RlΘR
f)を得ることができ、このパイプラインの結果をルート
ノードにパイプ化することにより、t=t2|rootが得られ
る。この演算子は、ツリー(L,R,root)として表される。
ルートノードが、1つの副ツリーだけであれば、公式
は、単にL|rootとなる。上述の公式は、具体化される
副ツリーにも適用可能である。
【0106】例2 例1に引き続き応答時間の推定を行
う。ツリーの各演算子に関する時間記述子(tf,tl)が、
従来のアプローチで推定される。例えば、索引の生成
は、走査を利用する前に実施しなければならないtf成分
を招来することになる可能性がある。下記の表2に、こ
れら演算の仮想時間記述子に関する推定値の計算を示
す。
【0107】
【表2】
【0108】ここで、クローニング及び再分配を許さな
い前提条件を緩和することにする。結合または選択のク
ローニングを行う能力は、量k、即ち、クローニング度
によって時間記述子(tf,tl)を変更することによって得
られる。例えば、単純なアプローチの1つは、時間記述
子を(tf/k,tl/k)とすることである。もちろん、より大
がかりな公式であれば、クローニングに関連したオーバ
ヘッドを考慮することになる。データの再分配には、ネ
ットワーク及びCPUのオーバヘッドを伴うことになる
が、この場合、ネットワークは、受け取り側のCPUに
対してパイプライン処理が施される。現在、生産者から
消費者への(即ち、任意の2つの演算間における)デー
タ転送は、ゼロコストであると仮定されている。一般
に、これは、再分配コストが示唆するように、真実では
ない。この転送コストは、この転送において利用可能な
潜在的並列処理だけでなく、プロセス間オーバヘッド、
通信オーバヘッドも数量化することを必要とする。これ
は、上述の公式を利用して応答時間を推定するだけでな
く、転送に関する時間記述子を利用して、上述の公式に
組み込むこともできる。要するに、上述のコストモデル
は、拡張することによって、他の注釈の取扱いも可能に
なる。
【0109】要するに、照会プランの応答時間の推定に
おいて、並列処理の誘因と抑止因のトレードオフを行う
コストモデルの提示が行われたことになる。この場合、
各種演算によって生じた/招来した、オーバラップした
/余分な作業は、モデル化され、応答時間のおおよその
推定が行われる。これは、全て、リソース競合がないも
のと仮定して行われた。これは、次のセクションにおい
て緩和される。
【0110】5.2 リソース競合のモデル化 まずリソース利用モデルについて提示され、次に、これ
を利用してコスト計算法が提示される。
【0111】5.21 リソース利用モデル タスクによるリソース利用は、2つのパラメータ、即
ち、t及びwによってモデル化されるが、ここで、tはリ
ソースが開放されるまでの時間、wはリソースが利用さ
れる有効時間として測定される作業である。例えば、C
PUが10秒間にわたって利用され、有効作業が5秒で
あったと仮定する。これは、CPUがその時間の50%
しか働かなかったということである。しかし、この抽象
において、使用中期間がいつであったかを正確に予測す
ることはできない。
【0112】実際のところ、リソース利用に関するこの
(t,w)抽象については、均等性の仮定が行われる。リソ
ースの利用は、時間期間t*3に対し均等である(*3
の結果、ホットスポットをモデル化する能力が損なわれ
る)。更に、リソースは、時間を共用することができる
という意味において優先使用可能である。CPU、ディ
スク、ネットワークのようなリソースは、優先使用可能
であるが、メモリは、可能ではない*4*4 仮想メモリ
を利用する2つ以上のプロセスによってメモリを共用す
る時間は、ひどく高くつくことになるものと仮定し
て)。下記の特性はこれらの仮定に基づくものである。
【0113】ストレッチ特性:プランのリソース利用が
(t,w)の場合、任意の正の数m>1に関してリソース利用を
(mt,w)とする(即ち、適当なスケジューリング戦略を利
用してそれを行う)ことが可能である。
【0114】リソースr1,..,rnは、所定の演算集合(プ
ラン)によって用いられるものと仮定する。ストレッチ
特性が利用されるものと仮定されているので、t,sが全
て同じでtに等しくなると仮定することができるものと
仮定される。従って、tは、プランの応答時間を表し、
プランによって実施される全作業は次式で与えられる。
【0115】
【数1】
【0116】ベクトル成分がそのリソースについて実施
される作業を表す対(t,ヘ゛クトルw)は、リソースベクトルと
呼ばれる。それは、通常、ヘ゛クトルrによって示される。時
間記述子と同様、リソース記述子は、1対のリソースベ
クトル(ヘ゛クトルrf,ヘ゛クトルrl)と定義されるが、ここで、ヘ゛ク
トルrfは第1組が出力されるまでの資源ベクトルを表し、
ヘ゛クトルrlは最終組が出力されるまでのリソースベクトル
を表している。
【0117】このリソース記述子を利用して、応答時間
に対するリソース競合の効果が推定される。
【0118】5.2.2 コスト計算法 ここで、時間を示す整数に関する‖,;,Θの計算法を
リソースベクトルへと拡張する。下記においては、ヘ゛クトル r1=(t1,ヘ゛クトルw1)ヘ゛クトル r2=(t2,ヘ゛クトルw2) が演算集合S1,S2に関する2つの任意のベクトルである
とする。オペレーションのそれぞれの適用可能性につい
て示されるシナリオは、前述の場合と同様である。ベク
トルに対する演算+及び-は、通常の座標式加算及び減算
を表している。
【0119】 演算ヘ゛クトルr1;ヘ゛クトルr2をヘ゛クトルr1+ヘ゛クトルr2と定義し、ヘ゛クトル r1Θヘ゛クトルr2をヘ゛クトルr1−ヘ゛クトルr2と定義する。
【0120】これによって、具体化フロントの減算が正
確に推定される点に留意されたい。従って、公式ではΘ
演算の代わりに通常のベクトル・マイナス・オペレーシ
ョンが用いられる。ヘ゛クトルr1‖ヘ゛クトルr2は、各リソースi
毎に、(t,ヘ゛クトルw)と定義されるが、ここで、各リソー
スi毎に、
【0121】
【数2】
【0122】となり、ヘ゛クトルw=ヘ゛クトルw1+ヘ゛クトルw2である。
【0123】次に、これらの演算を利用して、以前のよ
うに、ツリー及びパイプライン演算子|が定義される
が、この場合、これらは、時間記述子ではなく、リソー
ス記述子を引数とする。|の演算子は、インターリーブ
した演算のリソース競合を考慮して、わずかに変更され
るので、結果得られる推定値は、SEよりも悪くなる。
【0124】p=(ヘ゛クトルpf,ヘ゛クトルpl)、c=(ヘ゛クトルcf,ヘ゛クトルc
l)が、それぞれ、パイプラインの生産者と消費者に関す
るリソース記述子を表すものとする。次いで、前述の公
式によれば、記述子は p|c=(ヘ゛クトルrf,ヘ゛クトルrl)となり、ここで、ヘ゛クトル rf=ヘ゛クトルpf;ヘ゛クトルcfであり、ヘ゛クトル rl=ヘ゛クトルpj,ヘ゛クトルcf;((ヘ゛クトルpl-ヘ゛クトルpf)‖(ヘ゛クトル
cl-ヘ゛クトルcf))である。
【0125】ヘ゛クトルrlの並列成分は、パイプライン処理
の同期オーバヘッドに対処するため、(スカラー)係数
δ(k)によってペナルティが科せられる。従って、ヘ゛クトル rl=ヘ゛クトルpf;ヘ゛クトルcf;δ(k)×((ヘ゛クトルpl-ヘ゛クトルpf)‖(ヘ゛クトルcl-ヘ゛クトルcf)) となる。
【0126】係数δ(k)は以下のように得られる。(t´,
ヘ゛クトルw)が、S1‖S2のリソースベクトルを表すものとす
る。t´がt1+t2に近ければ、並列パイプライン処理がリ
ソース競合を招来することを意味する。一方、このt´
がmax(t1,t2)に近ければ、リソース競合はほとんどな
い。δ(k)は、max(t1,t2)とt1+t2の間におけるt´のパ
ラメータ化された線形補間、即ち、 δ(k)=1+k×(t´-max(t1,t2))/(t1+t2-max(t1,t2)) として定義される。前記公式において、kは、調整可能
なパラメータである。線形補間の代わりにより正確な他
の非線形推定を用いることも可能である。
【0127】要するに、並列処理の誘因及び抑止因を考
慮した、IPE、DPE、及び、CPEの実行に関する
応答時間の推定が行われたことになる。
【0128】6 探索 このセクションでは、照会があった場合、探索空間を有
効に探索することにより、最適な応答時間の照会プラン
を得ることができる方法について考察される。
【0129】System Rタイプの動的計画法(DP)アル
ゴリズムで開始して、最適化方法としての応答時間の利
用の影響力が調べられる。DPを利用するには、課題が
最適性の原理を満たすことが必要になる「Bel57」。
【0130】応答時間によってこの原理が侵害されるこ
とが明らかにされる。更に、応答時間を正確に予測し、
同時に、DPが必要とする特性を満たすコスト方法が存
在しない。DPを拡張することによって、この問題が解
決され、余分なものを除去して、応答時間を正確に予測
する方法を設計することが可能な方法について解説され
る。この拡張アルゴリズムは、実用的な複雑性を有して
いることが明らかにされる。
【0131】「余分な」作業に対する制限を取り入れ、
実際に活用して、探索効率を高めることが可能な方法に
ついて明らかにされる。
【0132】定理の証明については資料Aを、アルゴリ
ズムを使用中のツリーの探索空間に拡張することについ
ては資料Bを参照されたい。
【0133】6.1 DPの失敗 6.1.1 DPの再検討 図1には、レフトディープ結合ツリーの空間内において
最適な作業プランを探索するSystem RスタイルのDP
アルゴリズムが示されている。
【0134】このアルゴリズムの細部のいくつかが、抽
象化される。ルーチンaccessPlan(R)によって、関係Rに
関する最良のプランが得られる。joinPlan(p´,R)によ
って、結合プランpは別のプランpに拡張され、p´の
結果と関係Rとの結合が、考えられる最良の方法で行わ
れる。p´から得られる束縛を活用して、Rとの結合が可
能である。述語≦workは、コストモデルによって供給さ
れる*5*5 2つのプランp1及びp2を所与のものとすれ
ば、p1≦αp2及びα(p1)≦α(p2)は、等価表記であると
定義される。α()関数の例には、work()及び応答時間関
数RT()がある)。
【0135】このアルゴリズムは、全ての関係集合の部
分集合が次第に大きくなることを考慮して、進められ
る。濃度iの集合に関するプランは、濃度i-1の集合に関
する最良のプランの拡張として作成される。これは、最
適化問題の性質によって、関係集合に関する最適のプラ
ンが、集合の部分集合に関する最適なプランの拡張にな
るので、可能である。最適性の原理と呼ばれることの多
いこの特性は、アルゴリズムによって活用される。部分
集合に関する最適なプランは、optPlan()に記憶され、
再計算ではなく再利用が行われる。
【0136】
【外1】
【0137】6.1.2 DPにおける基本的前提条件 図1のDPアルゴリズムに関する正確さの証明には、コ
スト方法に関する下記の前提条件が必要になる。
【0138】● 最適性の原理。2つのプランが、副プ
ランにおいてのみ異なる場合、より優れた副プランを有
するプランが、やはり、より優れたプランである。即
ち、左深層ツリーの場合、下記が必要になる:p1及びp2
が、同じ副照会に関する2つのプランである場合、 p1costp2⇒(∀i)joinPlan(p1,Ri)≦costjoinPlan(p2,Ri) ● 全体配列。プランは、コスト方法に基づいて全体と
しての配列を施すとができる。
【0139】 (∀p1p2)not(p1costp2)⇒(p2costp1) コスト方法workは、整数であり、従って、全体配列が可
能である。最適性の原理が満たされるか否かは、コスト
モデルの選択によって決まる(これは、更に、選択され
る実行空間によって決まる)。
【0140】例えば、結合法としてネスト式ループ及び
ハッシュ結合を可能にし、アクセス法として索引走査及
び関係走査を可能にする実行空間について考察すること
にする。この実行空間*6に関する妥当なコストモデルに
おいて、副照会と追加関係との結合を行う最良の方法
は、副照会によってのみ決まり、副照会に関するプラン
の選択によって決まることはない(*6 コストモデルは
人間によって作成されたものであるということが想起さ
れる。人間の性質の癖が所与ものであるとすると、コス
トモデルの特性が実行空間の選択の結果生じるものと仮
定する場合、「妥当性」を訴えることしかできない)。
結合コストは、利用可能な束縛のような副照会の論理的
局面によってのみ左右され、物理的プランからは独立し
ている。即ち、p1が副照会q1に関するプランであり、jo
inwork(q1,R)が、関係Rと副照会q1の結果を結合する最
良の方法の作業コストであると仮定する。
【0141】定義(物理的透過性): コストモデル
は、次の式があてはまる場合、物理的透過性を示すとい
われる:work(joinPlan(p1,R))=work(p1)+joinwork(q1,
R) 定理1 作業に関するコスト方法≦workは、(1)全体
配列であり、(2)物理的透過性の前提条件の下で最適
性の原理を満たす。
【0142】実行空間にソート/マージ結合が含まれる
場合、物理的透過性を示すコストモデルは、妥当ではな
い。今や、プランによって生じる物理的な組配列によっ
て、後続のソート/マージ結合に備えて作業を保管する
ことが可能である。副照会qに関するプランp1及びp2
よって、p1workp2になるが、p2によって、関係Rとの
ソート/マージ結合に必要な配列をなす組が得られるも
のと仮定する。p2によって生じる関心のある配列によっ
て、ソートパスがソート/マージ結合アルゴリズムに保
管される場合、joinPlan(p2,R)≦joinPlan(p1,R)となる
可能性がある。従って、最適性の原理が、侵害される。
【0143】System Rにおけるようなオプティマイザ
は、後続ステージで結合のコストを節減することによっ
て有効であることが証明されるものと期待して、「関心
のある配列」が異なる副照会に関するプランを保持して
いる。最適性の原理の侵害に対するこの発見的解決策
は、実際において十分なものであると一般に認められて
いる。
【0144】6.1.3 DP及び応答時間 重要な問題の1つは、応答時間方法RT(p)をDPにおけ
るコスト方法に利用することが可能か否かということで
ある。
【0145】応答時間が最適性の原理を満たすであろう
か。さして驚くほどのこともない答であるが、それは、
コストモデルの選択しだいである。しかし、応答時間に
関する妥当なコストモデルによって、最適性の原理が極
めて甚だしく侵害されるものと確信している。直感的理
由は、データ依存性と、プランの部分間におけるリソー
ス競合が、応答時間にとって重大な要素であり、これら
を考慮に入れたコストモデルは、最適性の原理を侵害す
ることになるというものである。下記の例では、リソー
ス競合によって、最適性の原理がいかにして侵害される
に至るかが示される。
【0146】例3 テーブルCTR(コース、時間、ル
ーム)とCI(コース、インストラクタ)から成るデータ
ベースについて考察することにする。CTRが、2つの索
引、即ち、クラスタ化索引ICT(コース、時間)(ディ
スク1に記憶)及び非クラスタ化索引ICR(コース、ル
ーム)(ディスク2に記憶)を備えており、CIは、1つ
の索引IC(コース)(ディスク1に記憶)を備えている
ものと仮定する。
【0147】
【外2】
【0148】書式*7NL(p,indexScan(IC))の2つのネス
ト式ループ結合プランについて考察することにする。こ
こで、pはp1=indexScan(ICT)またはp2=indexScan(ICR)
である(*7 簡略化のため、これらの式では、NLを利
用して、ネスト式ループが表される)。リソースベクト
ル(ディスク1及びディスク2が唯一の重要なリソース
であるとみなすと)が、p1に関して((20,20),(0,0))で
あり、p2に関して((0,0),(25,25))であり、NL(*,indexS
can(IC))(pを計算しない結合)に関して((40,40),(0,
0))であると仮定する。ネスト式ループは、パイプライ
ン処理されるので、リソースベクトルに関する計算法を
適用すると、NL(p1,indexScan(IC))のリソース利用は
((60,60),(0,0))になり、NL(p2,indexScan(IC))のリソ
ース利用は((40,40),(25,25))になる。
【0149】応答時間の定義を適用すると、RT(p1)=20
及びRT(p2)=25となる。しかし、 RT(NL(p1,indexScan(IC))=60 RT(NL(p2,indexScan(IC))=40 であり、これは、応答時間によって最適の原理が侵害さ
れることを示している。
【0150】関心のある配列による最適性の原理の侵害
によって、作業の最適化に問題が生じることになる。同
じ原理が、応答時間を最適化する場合には、リソース競
合のために侵害される。因果要素の数が急増するため、
応答時間の場合、問題はいっそう困難になるものと予測
される。リソース競合は、プランの任意の2つの部分間
において生じることになると思われる。プランのリソー
ス利用は、アクセス法、結合法、及び、結合配列といっ
た変数に加えて、中間結果のソートまたは区分化に、ど
のリソースが利用されるかによって、異なることにな
る。
【0151】次に行うべき当然の質問は、応答時間を正
確に予測し、必要とされる2つの特性を満たす新しい方
法を設計することが可能か否かということである。こう
した方法は、DPにおいて余計なものを除去するために
用いることが可能である。こうした方法は剪定方法と呼
ばれる。
【0152】定義(正確な予測):剪定方法αは、 p1≦αp2⇒p1RTp2 の場合、応答時間を正確に予測するということになる。
【0153】定理2 応答時間を正確に予測し、全体
配列を可能にし、最適性の原理を満たす剪定方法は存在
しない。
【0154】この定理の意味するところは、該要件を緩
和せずに、DPを利用して、応答時間を最適化するのは
不可能ということである。既述の2つの前提条件のうち
一方に見切りをつけることを基本において、DPの変形
を開発することが必要である。最適性の原理に見切りを
つけることは、本質的に、いやしくも探索空間の剪定能
力に見切りをつけるということになるので、全数探索の
アルゴリズムを無理矢理強制することになる。従って、
それほどひどくない代替案は、全体配列の要求の緩和で
ある。
【0155】下記を示すことによって、これが実際的な
方向であることが明らかになる。
【0156】● 部分的配列を利用することができ、共
用可能な性能を示すDPの一般化(セクション6.
2)、 ● 応答時間を正確に予測し、部分的配列を可能にし、
最適性の原理を満たす剪定方法設計することができる方
法(セクション6.3)。
【0157】6.2 部分的配列に関するDPの一般化 下記のように、l次元における部分的配列を可能にする
less-than関係を定義することができる: 定義(l次元LESS-THAN):l次元空間における2つのポイ
ント
【0158】
【外3】
【0159】
【外4】
【0160】次のセクションで示すように、α(プラン)
がl次元ベクトル*8になるように、剪定方法αを設計す
ることが可能である(*8 2つのプランp1及びp2が所与
のものとすると、p1≦αlp2及びα(p1)≦lα(p2)は等価
の表記であると定義される)。こうした剪定方法は、設
計によって、応答時間を正確に予測し、かつ、最適性の
原理も満たすことになる。
【0161】図2には、部分配列を利用するためのDP
の一般化が示されている。図1との重要な相違が、強調
されている。最も内側のループにおけるアクション(図
1のライン7,8,9)が、新しいアクションに置換されて
いる(図2のラインL1〜L8)。
【0162】一般的な概念は、各関係部分集合毎に1つ
の最適プランではなく、比較にならないが、最適なプラ
ン集合を保持するということである。これら比較になら
ないプランが、全ての可能性のあるプランに関する一意
性のカバー集合を形成する。
【0163】濃度iの集合Sに関するプランは、濃度i-1
のSの部分集合に関するカバー集合におけるプランの拡
張として、構成される。これらのプランのカバー集合
は、Sに関する最適なプランの集合として計算され、保
持される。最適性の原理に従って、こうして計算された
カバー集合は、実際、Sに関して可能性のある全てのプ
ランのカバー集合ということになる。
【0164】アルゴリズムの最終結果が、{R1,...,Rn}
に関するプラン集合から選択することによって最良のコ
ストで得られる。
【0165】最適なプランの探索に関する時間及び空間
の複雑性は、各関係集合に関する最良のプラン集合のサ
イズによって決まる。このサイズをkと仮定する。従っ
て、アルゴリズムの時間及び空間の複雑性は、それぞ
れ、kn2n-1、及び、
【0166】
【外5】
【0167】として表すことができる。これが、許容可
能な複雑性であるか否かは、kの値によって決まる。
【0168】定義(カバー集合):関係≦pに対するポ
イント集合Pに関するカバー集合Cは、Pの部分集合であ
るため、Cにおける全てのポイントが、比較できず、Pに
おける全てのポイントp´が、Cにおけるいくつかのポイ
ントc´「によってカバーされる」(即ち、c´≦pp
´)。
【0169】定理3 l次元空間においてランダムに
選択されたm個のポイントのカバー集合の予測サイズ
(≦lに対する)は、確率分布が各次元に沿って独立し
ている場合、せいぜい、2l(1-(1-1/2l)m)である。
【0170】この定理は、本質的に、2lがkの上限であ
ることを示している。次元の独立という前提条件は、ほ
とんどの剪定方法にとって最適であると思われる。従っ
て、2lは、最適性の前提条件下において、上限をなす。
【0171】要するに、次元数lが小さい値に保たれる
と、部分的配列のDPによって、許容可能な性能が得ら
れる。
【0172】6.3 剪定方法及び近似技法 例3に示す状況を固定する方法の1つは、リソースベク
トル自体を剪定方法として利用することである。プラン
pのリソースベクトルrv(p)は、l次元ベクトルである。
従って、リソースベクトルは、≦lの関係を利用して、
部分的に配列することが可能である。明らかに、リソー
スベクトルは、応答時間を正確に予測する。
【0173】剪定方法の設計における一般概念は、結果
が誤りの場合に関して、最適性の誤りの原理についての
定義に先例を作ることにある。
【0174】例えば、剪定方法の追加次元として、組配
列を組み込むことが可能である。これには、配列に対し
て、≦orderingの関係が必要になる。配列が列数のシー
ケンスとして表される場合、≦orderingの関係
は、「...の副シーケンス」とみなすことができる。配
列と同様に、データ依存及びデータ区分化を組み込むこ
とも可能である。
【0175】しかし、探索コストを許容可能に保つため
には、剪定方法に含める次元が多くなりすぎないように
注意する必要がある。2つのリソースが互いにぴったり
とトラッキングする場合、単一のリソースとしてまと
め、モデル化すべきである。例えば、XPRS[HS91]におけ
るRAIDシステムの場合、各ディスクの使用を均等に保つ
ことを意図して、データは全てのディスクにハッシュ区
分化されているので、単一のリソースとみなすことが望
ましい。あるリソースのボトルネックが稀であると予測
される場合にはそれは無視すべきである。例えばディス
クコントローラにおけるリソース競合は、うまく設計さ
れたシステムでは滅多に問題にならない。
【0176】
【表3】
【0177】6.4 論議 ブッシーツリーは、2つの副ツリーを並列に実行するこ
とができるので、独立した並列処理の範囲が広くなる。
ブッシーツリーの空間に拡張されるDPアルゴリズムに
ついては、資料Bを参照されたい。
【0178】ブッシーツリーの探索は、左深層ツリーに
比べてかなり高くつく。DPの複雑性は、2つの理由で
増すことになる。第1に、より重要な理由として、プラ
ンの空間が、はるかに広い。第2に、それほど明瞭では
ないが、副照会の可能性のある全ての束縛についてプラ
ンを保持せざるを得ない。これによって、複雑性は2b
倍になるが(最悪の場合)、ここで、bは、副照会の出力
における列数である。
【0179】表3は、いくつかのアルゴリズムの時間及
び空間の複雑性が要約されている。左深層ツリーの代わ
りにブッシーツリーの探索空間を利用すると、探索の時
間複雑性はO(2n)〜O(3n)になる。全体配列の代わりに、
l次元に部分的配列を利用すると、時間複雑性は、2l
になる。
【0180】作業束縛は、探索アルゴリズムに簡単に組
み込むことが可能であり、実際、探索空間を節減するこ
とができる。
【0181】例えば、まず、作業オプティマイザ(図1
のような)を実行して、照会の最適な作業コストWoを求
めることによって、スループットの低下を制限すること
が可能である。応答時間アルゴリズムについて選択され
た剪定方法は、部分的配列をより厳格なものにする作業
制限によって拡張されるだけである。コスト・便益比を
組み込むために、同様のアプローチをとることも可能で
ある。
【0182】7 結論 本書では、従来のDBMS問題の二元性として動機づけ
られた、照会最適化の問題、即ち、スループットに制約
を受ける応答時間の最短化について新規の公式化が提案
された。Select-Project-Join照会に関連したこの新規
の問題については、市販のDBMSにおいて広く用いら
れている実行空間、コストモデル、及び、探索アルゴリ
ズムを拡張することによって、取り扱われた。従来の実
行空間には、並列処理の誘因と抑止因が組み込まれた。
コストモデルは、応答時間を予測し、同時に、並列処理
による新しい局面に対処することができるということが
分かった。応答時間の最適化方法は、ほとんどの市販D
BMSのオプティマイザの要をなしている、動的計画法
アルゴリズムにおける基本的前提条件を侵害するもので
あることが明らかになった。動的計画法が拡張され、応
答時間を正確に予測する最適化方法の設計を可能にする
方法が提示された。
【0183】総合的な並列照会オプティマイザは、今日
では利用できないという確信が広く行き渡っている。こ
の問題のクリティカルな局面のいくつかについて取り扱
ってきたが、多くの未解決の問題点がある。以下では、
そのいくつかについて論じることにする。
【0184】実行空間における並列処理の誘因及び抑止
因をモデル化するが、スケジューリングのように、包含
される候補となる実行時間の局面がいくつか存在する。
一般に、コンパイル時に、実行時間の実行に関してどの
局面に決定すべきかを調査することは、興味のある問題
である。
【0185】優先使用可能な(即ち、タイムスライス可
能な)リソースの利用について取り扱われた。メモリの
ような優先使用不可能なリソースの組み込みは、未解決
の問題点である。更に、本コストモデルでは、パイプラ
イン処理及びクローニングによるオーバヘッドを数量化
しなかった。
【0186】従来の動的計画法アプローチに関する欠点
について述べ、適合する剪定方法を設計するための方法
が提示された。剪定方法の代替例に関する評価が必要で
ある。探索アルゴリズムについては、左深層ツリーに関
連して説明が行われた。広く信じられているところで
は、ブッシーツリーを用いた方が、より高度な並列処理
が可能になる。10の関係についてさえ、これによっ
て、探索空間のサイズが3桁も増すことが明らかになっ
た。従って、非全数探索アルゴリズムの利用は、避けら
れなくなる可能性がある。
【0187】謝辞:この研究の初期の段階から忠告し、
励まし、支援して下さったことに関して、Mrie-Anne Ne
imat氏に感謝するものである。Donovan Schneider氏に
は、Gammaの経験の共有について感謝している。また、T
im Connors、Curtis Kolobson、Kevin Wilkinson、及び、D
atabase Technlogy Departmentの他の全てのメンバーに
対して謝意を表するものである。また、有効なフィード
バックをいただいたことに関して、Don Batory、Stefano
Ceri、Avi Silberschatz、及び、Gio Wiederholdの各氏
にも感謝するものである。
【0188】8 参考文献
【0189】
【表4】
【0190】資料A 証明 定理:作業に関するコスト方法≦work (1)は、全体配列であり、(2)は、物理的透過性の
前提条件下において、最適性の原理を満たす。
【0191】証明:(1)は、作業が数値方法(整数ま
たは実数のような)であるため、単純に真である。
(2)を証明するためには、p1及びp2が同じ副照会に
関する2つのプランであると仮定して、下記のようにな
ることを明らかにしなければならない: p1workp2⇒[(∀i)joinPlan(p1,Ri)≦workjoinPlan(p2,Ri)] p1workp2と仮定し、任意の値をiとすると、joinPlan
(p1,Ri)≦workjoinPlan(p2,Ri)になる。
【0192】work(joinPlan(p1,Ri)) =work(p1)+joinwork(q1,Ri) (物理的透過性によ
る) ≦work(p2)+joinwork(q1,Ri) (p1workp2との仮
定による) =work(joinPlan(p2,Ri)) (物理的透過性によ
る) 定理:応答時間を正確に予測し、全体配列を可能にし、
最適性の原理を満たす剪定方法は存在しない。
【0193】証明:この定理の証明は、応答時間を正確
に予測し、全体配列を可能にするコスト方法は、応答時
間方法によって得られるのと同じ全体配列をもたらすと
いう点を明らかにすることに基づくものである。応答時
間が最適性の原理を侵害することを示すために用いられ
る反例が、提示の剪定方法にもあてはまるので、これ
で、この定理の証明には十分である。
【0194】ここで、(1)応答時間を正確に予測する、
即ちp1≦αp2⇒p1rtp2になり、また(2)プランの全体
配列を可能にする、即ち任意のプランp1及びp2について
p1≦αp2,p2≦αp1のうちの厳密に一方が真になる、コ
スト方法が存在するものと仮定する。
【0195】ここで、p1rtp2の場合、及び、この場合
に限って、p1≦αp2になることを明らかにしなければな
らない。仮定(1)は、場合の部分を表している。場合に
限っての部分を示すため、p1rtp2と仮定する。≦
rtは、全体配列であるため、これは、p2rtp1が偽でな
ければならないということを表している。仮定(1)によ
り、これは、p2≦αp1が偽でなければならないというこ
とになる。従って、(2)によって、p1≦αp2になる。
【0196】補助定理1:≦pに関する任意の集合Pのカ
バー集合Cは、推移的である。
【0197】証明:省略。
【0198】定理:確率分布が、各次元に沿って独立し
ている場合、l次元空間においてランダムに選択された
m個のポイントのカバー集合(≦lに関する)の期待サイ
ズは、せいぜい2l(1-(1/2l)m)である。
【0199】下記のより単純な定理の証明を示すだけに
する。
【0200】均一に分布した2次元においてランダムに
選択されたm個のポイントのカバー集合(≦lに関する)
の期待サイズは、せいぜい4(1-(3/4)m)である。
【0201】証明:検討されるポイントの集合が、Pm=
{x1,...,xm}であると仮定する。更に、2D空間におい
てランダムに選択されたポイントがx及びyの時、確率(x
2y)=βであると仮定する。
【0202】≦2は、推移的であるため、補助定理1に
よれば、ポイント集合Pmのカバー集合wrt≦2は、一意性
である。このカバー集合は、帰納的に生成されたものと
みなすことができる。即ち、Ciは、Piに関するカバー集
合とみなすことが可能であり;C0=P0={};及び、ポイント
xi+1を考慮して、下記を行うことにより、CiからCi+ 1
生成することができる: (1)xi+1がx1,...,xiのどれによってもカバーされない場
合、Ci+1=Ci {xi+1} (2)xi+1がx∈Ciをカバーする場合、xiをxi+1に置き換え
る。
【0203】ステップ(1)によって、カバー集合が成長
する。ステップ(2)によって、カバー集合のサイズが縮
小される。ステップ(1)だけを考慮した場合、カバー集
合の期待サイズに対する下限が得られる。ステップ(1)
の確率は、(1−β)iであり、従って、Cmの期待サイズ
に関する上限は、
【0204】
【数3】
【0205】となる。
【0206】ポイントが2D空間において均等に分布し
ているものと仮定した場合の、β=1/4の検証は、当業者
に委ねるものとする。期待サイズの上限は、従って、4
(1-(3/4)m)になることが分かる。
【0207】定理:任意の副照会q1及びq1を計算する任
意のプランp1、及び、任意の関係Rに関して、コストモ
デルが、rv(joinPlan(p1,R))=rv(p1)‖joinrv(q1,R)の
場合、方法≦rvlによって、最適性の原理が満たされ
る。
【0208】証明:p及びpが同じ副照会に関する2つの
プランである時、次のようになることが明らかにされ
る。
【0209】 p1rvlp2⇒[(∀i)joinPlan(p1,Ri)≦rvljoinPlan(p2,Ri)] p1rvlp2と仮定し、任意の値をiとすると、 joinPlan(p1,Ri)≦rvljoinPlan(p2,Ri) となる。この証明は、r1lr2の場合、(r1‖r3)≦l(r2
‖r3)になるという特性から直接得られることになる。
【0210】B ブッシーツリーに関するDP
【0211】
【外6】
【0212】
【外7】
【0213】以上、本発明の特定の実施例について説明
及び図解してきたが、本発明は、前記において説明され
図解された部分の特定の形態や構成のみに限定されるべ
きものではなく、本発明の思想及び範囲から逸脱するこ
となく、多くの修正や変形を行うことができる。従っ
て、特定的に説明され図解されたもの以外についても、
特許請求の範囲に記載の本発明の範囲内で実施すること
ができる。
【0214】
【発明の効果】本発明は上述のように構成したので、並
列操作可能な複数のリソースを有するコンピュータ化デ
ータベースシステムにおいて問題を解決するのに必要と
される応答時間を最少化することが可能となる。
【図面の簡単な説明】
【図1】データベースシステムに関する一連の問題解決
のためのステップを示すフローチャートである。
【図2】データベースシステムで用いられる3つのテー
ブルを示す説明図である。
【図3】図2の3つのテーブルを結合させるための2つ
の方法を示す説明図である。
【図4】問題を解決するために並列操作する異なるリソ
ースが必要とする時間を示すグラフである。の
【図5】問題を解決するための2つのプランを示す説明
図である。
【図6】本発明の方法が如何にして問題解決において応
答時間を最適化するかを示す説明図である。
【図7】本発明の方法により問題解決に使用可能なデー
タベースシステム中の複数のリソースを示すブロック図
である。
【図8】問題解決における本発明の第1の好適実施例を
示す説明図である。
【図9】セレクト・プロジェクト・ジョイン照会の「セ
レクト」操作を示す説明図である。
【図10】セレクト・プロジェクト・ジョイン照会の
「プロジェクト」操作を示す説明図である。
【図11】セレクト・プロジェクト・ジョイン照会の
「ジョイン」操作を示す説明図である。
【図12】問題解決における本発明の第2の好適実施例
を示す説明図である。
【符号の説明】
1,2,3 レベル 10 問題 10,11,12,13,15,17,19 副問題 20,22,50,52 副プラン 20A,20B,22A,22B 副々プラン 30 関連する副プラン 51 データ 60,63 プラン 102,104 計算リソース 106,108 ディスク記憶リソース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 サミット・ガングリー アメリカ合衆国テキサス州78751オウステ ィン,アヴェニュー・エイ・ナンバー・ 214・4605

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】並列動作可能な複数のコンピュータリソー
    スを有するコンピュータ化データベースシステムにおい
    て問題解決用の最適プランを選択するための方法であっ
    て、この方法が、 問題を複数の副問題に分割し、 前記副問題を複数レベルの階層状に配列し、第1レベル
    における前記副問題の各々が、記憶リソースからデータ
    を取り出すことを必要とし、一層高レベルにおける前記
    副問題の各々が、一層下位レベルにおける前記副問題の
    結果を計算リソースにおいて操作することを必要とし、 前記副問題の各々を解決するために使用可能な副プラン
    を全て識別し、 2つ以上の副プランを有する第1レベルにおける任意の
    副問題に関連する副プランのうち、前記副問題を解決す
    るために複数のコンピュータリソースの各々に対して必
    要とする時間が、それと同一の副問題を解決するために
    他の副プランにより必要とされる前記時間より長い副プ
    ランを全て削除し、 問題を解決することになる残りの副プランの考えられる
    各組み合わせ毎に応答時間を計算し、 最短の応答時間を有する組み合わせを最適プランとして
    選択する、というステップより成ることを特徴とする、
    コンピュータ化データベースシステムにおいて問題解決
    用の最適プランを選択するための方法。
JP5130886A 1992-06-01 1993-06-01 データベースへのアクセス時の応答時間を最少化する方法 Pending JPH0652022A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US892534 1978-04-03
US89253492A 1992-06-01 1992-06-01

Publications (1)

Publication Number Publication Date
JPH0652022A true JPH0652022A (ja) 1994-02-25

Family

ID=25400080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5130886A Pending JPH0652022A (ja) 1992-06-01 1993-06-01 データベースへのアクセス時の応答時間を最少化する方法

Country Status (2)

Country Link
EP (1) EP0573252A3 (ja)
JP (1) JPH0652022A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778364A (en) * 1996-01-02 1998-07-07 Verity, Inc. Evaluation of content of a data set using multiple and/or complex queries
US5822747A (en) * 1996-08-23 1998-10-13 Tandem Computers, Inc. System and method for optimizing database queries
US6021405A (en) * 1996-08-23 2000-02-01 Tandem Computers, Inc. System and method for optimizing database queries with improved performance enhancements
US10334021B2 (en) 2011-08-01 2019-06-25 Telefonaktiebolaget Lm Ericsson (Publ) Retained data handling at differentiated response times

Also Published As

Publication number Publication date
EP0573252A3 (en) 1994-09-07
EP0573252A2 (en) 1993-12-08

Similar Documents

Publication Publication Date Title
Jankov et al. Declarative recursive computation on an rdbms, or, why you should use a database for distributed machine learning
Chen et al. Ontological pathfinding
Shkapsky et al. Big data analytics with datalog queries on spark
Boehm et al. Data management in machine learning systems
Amsterdamer et al. Putting lipstick on pig: Enabling database-style workflow provenance
US5325525A (en) Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time
Darwiche Decomposable negation normal form
US5806059A (en) Database management system and method for query process for the same
US8239847B2 (en) General distributed reduction for data parallel computing
Mishra et al. Generating targeted queries for database testing
Guravannavar et al. Rewriting procedures for batched bindings
Shalamov et al. Reinforcement-based method for simultaneous clustering algorithm selection and its hyperparameters optimization
WO2011106006A1 (en) Optimization method and apparatus
WO2023278614A1 (en) Apparatus and method for maintaining a machine learning model repository
Claussen et al. Optimization and evaluation of disjunctive queries
Vieira et al. Dyna: Toward a self-optimizing declarative language for machine learning applications
JPH0652022A (ja) データベースへのアクセス時の応答時間を最少化する方法
Drenick et al. Stochastic query optimization in distributed databases
Salama Scalable data analytics and machine learning on the cloud
Rich et al. Reducing duplicate work in relational join (s): A unified approach
JP3732655B2 (ja) データベース管理システム、データベース管理装置および問い合わせ処理方法
Andres et al. EDS—collaborating for a high performance parallel relational database
Kim et al. Classification and retrieval of knowledge on a parallel marker-passing architecture
JP4422697B2 (ja) データベース管理システムおよび問合せの処理方法
JP3668243B2 (ja) データベース管理システム