JP2002073387A - データベース処理方法 - Google Patents

データベース処理方法

Info

Publication number
JP2002073387A
JP2002073387A JP2000255011A JP2000255011A JP2002073387A JP 2002073387 A JP2002073387 A JP 2002073387A JP 2000255011 A JP2000255011 A JP 2000255011A JP 2000255011 A JP2000255011 A JP 2000255011A JP 2002073387 A JP2002073387 A JP 2002073387A
Authority
JP
Japan
Prior art keywords
query
access plan
optimization
database
processing method
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
JP2000255011A
Other languages
English (en)
Other versions
JP2002073387A5 (ja
Inventor
Kaoru Maeda
薫 前田
Kazushige Asada
一繁 浅田
Takuya Hiraoka
卓也 平岡
Tetsuya Ikeda
哲也 池田
Hiroshi Takegawa
弘志 竹川
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2000255011A priority Critical patent/JP2002073387A/ja
Publication of JP2002073387A publication Critical patent/JP2002073387A/ja
Publication of JP2002073387A5 publication Critical patent/JP2002073387A5/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 コンパイル過程のメリットを生かし、より小
型で高速な実行過程が得られるデータベース処理方法を
提供する。 【解決手段】 データベース処理方法においては、デー
タベースへの問合せに対して、問合せの構文解析、意味
解析、及びエラー検査を該問合わせの実行時と分離して
予め行う。すなわち、問合わせ文101をアクセスプラ
ン302に変換する問合わせの最適化に際し、その問合
わせの実行時に得られる実行時情報に依存しない最適化
処理が終った中間状態のアクセスプランを登録し、その
実行時情報に依存した最適化処理を前記問合わせの実行
時に行うことにより、最終的に最適なアクセスプランを
得る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データベース処理
方法、より具体的には、関係モデルに基づくデータベー
スシステムにおける問合せ最適化処理の方法に関する。
【0002】
【従来の技術】データベース問合せの実行は、コンパイ
ル過程と実行過程に分けられることが多い。このとき、
コンパイル過程では問合せの構文解析、意味解析、エラ
ー検査、最適化を行った結果、問合せ実行の処理手順で
あるアクセスプランを生成する。実行過程では、このア
クセスプランを実行することにより問合せ結果を得る。
このコンパイル過程を予め実行し、アクセスプランをデ
ータベースに登録しておけば、実行時に問合せの最適化
を行う必要がなくなり、問合せ実行時に必要な処理コス
トを低減することができる。
【0003】一方で、問合せに出現する検索条件式によ
っては、事前に最適な処理を決定することができない場
合がある。例えば条件式に変数を含む場合や、データの
統計情報が実行時まで得られないような場合である。こ
のため、複数のアクセスプランを登録しておき、実行時
にコスト評価することによって最適なアクセスプランを
選択するという方法がある(特許第2760794号な
ど)。さらに、実行時のコスト評価自体にかかるコスト
を低減するために、変数に与えられる値の組み合せに応
じてアクセスプランの選択基準を予め計算しておくなど
の工夫も行われている(以下に説明する特開平6−45
87号公報)。
【0004】しかし、上述のごとくの方法では、コンパ
イル時に統計情報が必要になってしまったり、実行時の
変数の組み合わせ以外の実行時環境情報、例えば他のト
ランザクションとの同時実行制御などを組み入れること
が困難であった。
【0005】本発明に関わる技術を記載した公知の文献
として例えば以下に示すごとくのものがある。 ・特開平6−4587号公報「データベース処理方法」 最適化結果のアクセスプランが複数登録されていると
き、複数のプロセッサで並行して実行し、最も速かった
ものの出力をユーザに返す。また、特許第276079
4号における実行時コスト評価自体にかかるコストをコ
ンパイル時に考慮し、アクセスプランの選択を、実行時
にコスト評価をして行うか、実行時に表参照によって行
うか、コンパイル時に行うかを決定する。
【0006】・特開平8−16438号公報「データベ
ース問合せのコンパイラ方式」 ホスト言語に埋め込まれた問合せ文をソースプログラム
から抽出してコンパイルし、アプリケーションにはコン
パイルされた問合せ文を呼び出す命令を生成する。 ・特開平5−143410号公報「分散データベースの
アクセス制御方法」 分散データベースにおいて、問合せのコンパイルおよび
コンパイル結果の保存を、該当するデータベースの存在
するサーバーにて行う。
【0007】・特許第2760794号「データベース
処理方法および装置」 最適化結果のアクセスプランを複数登録しておき、実行
時にコスト評価して最適なものを選択する。
【0008】・特開平5−81330号公報「データベ
ースの問合せ最適化器」 データ型別にルールセットを管理し、無駄なルール適用
を防ぐ。また、特定のデータ型にルールを追加すると
き、他のデータ型に独立して行える。 ・特開平9−34760号公報「検索命令最適化装置お
よび検索命令最適化方法」 問合せの最適化をルールベースで行う。 ・特開平11−25116号公報「最適SQL文自動生
成装置及び記録媒体」 複数のRDBMSの特性を反映した最適化ルールセット
を各RDBMSが持ち、同一のSQL文からそれぞれの
RDBMSに対して効率的な検索を実行する。
【0009】しかしながら、上記各公報いずれにおいて
も、問合せ最適化ルールをコンパイルし、より高速に適
用できるルールセットに変換する技術は示されていな
い。
【0010】
【発明が解決しようとする課題】従来の技術では、コン
パイル過程においてアクセスプランの生成を完了しよう
とした結果、実行時まで得られない情報を先回りする処
理を強いられ、結果としてアクセスプランに反映できる
実行時情報の種類を制限してしまうこととなった。本発
明はこれらの問題点を解決し、コンパイル過程のメリッ
トを生かし、より小型で高速な実行過程が得られるデー
タベース処理方法を提供することを目的とする。
【0011】
【課題を解決するための手段】請求項1の発明は、デー
タベースへの問合せに対して、問合せの構文解析、意味
解析、及びエラー検査を該問合わせの実行時と分離して
予め行うデータベース処理方法であって、問合わせをア
クセスプランに変換する問合わせの最適化に際し、該問
合わせの実行時に得られる実行時情報に依存しない最適
化処理が終った中間状態のアクセスプランを登録し、前
記実行時情報に依存した最適化処理を前記問合わせの実
行時に行うことにより最終的に最適なアクセスプランを
得ることを特徴としたものである。
【0012】請求項2の発明は、請求項1の発明におい
て、前記中間状態のアクセスプランは、最適化ルールの
適用可能性を予め計算し、該最適化ルールの適用を手順
化した状態で登録することを特徴としたものである。
【0013】請求項3の発明は、請求項2の発明におい
て、アプリケーションに含まれるすべての問合せを抽出
し、抽出した問合わせによって、前記中間状態のアクセ
スプランと最適化ルールの適用方法とを含む探索空間グ
ラフを生成し、生成した探索空間グラフに必要な最適化
ルールのみを問合せ実行用のデータベースサーバに置く
ことを特徴としたものである。
【0014】請求項4の発明は、請求項2または3の発
明において、データベースの統計情報を用いて、データ
ベースサーバの起動時に前記最適化ルールの適用手順を
さらに最適化することを特徴としたものである。
【0015】
【発明の実施の形態】図1は、本発明のデータベース処
理方法を実施するための処理の流れを説明するための図
である。本発明が実行される問合わせコンパイル過程1
00と、生成された最適化ルールプリコンパイル結果2
00と、問合わせ実行過程300との各処理過程におい
て、必要とする要素の機能を説明する。ここでアクセス
プランは、問合せ要求に応じた問合せ結果を得るための
処理手順をいう。
【0016】問合せ要求入力手段305:問合せ要求の
入力を受け付ける。 問合せ結果出力手段304:問合せ要求に応じた問合せ
結果を出力する。 問合せ解析手段102:問合せ文101を構文解析、意
味解析し、エラー検査を行う。解析した結果は初期アク
セスプラン(アクセスプラン103)となる。 問合せ最適化ルール108:最適化ルール適用手段10
4が使用するアクセスプラン書き換え方法の記述。
【0017】最適化ルール適用手段104:問合せ最適
化ルール108をアクセスプランに適用可能かどうか判
定し、適用可能な場合には書き換え後のアクセスプラン
を生成する。 探索空間グラフ105:最適化途中のアクセスプランを
ノードとし、最適化ルールの適用方法をエッジとしたア
クセスプラン生成手順を表わすグラフ構造。探索空間グ
ラフ分割手段106:探索空間グラフ105から部分探
索空間グラフの集合を生成し、最終アクセスプラン候補
をすべて含むようにする。
【0018】最適化ルールプリコンパイル結果200:
探索空間グラフ分割手段106によって生成された、探
索空間グラフの集合。 実行時最適化手段301:実行時情報に基づき、最適化
ルールコンパイル結果の記述に従って最適化を再実行
し、最適なアクセスプランを選択する。 問合せ実行手段303:実行時最適化手段によって生成
されたアクセスプランを実行し、問合せ結果を生成す
る。
【0019】スキーマファイルアクセス手段107:ス
キーマファイル110に対するデータの入出力を行う。 スキーマファイル110:スキーマ情報(データベース
の構成要素、ファイル構成)を記録する。 データファイルアクセス手段309:データベースファ
イル311に対するデータの入出力を行う。 データベースファイル111:データベースのデータを
記憶する。 データ統計情報アクセス手段109,:データベースフ
ァイル111内のデータの出現頻度等の統計情報を得
る。
【0020】以下に本発明のデータベース処理方法につ
いて更に具体的に説明する。データベースに対する問合
せ実行は、問合せ解析、問合せ最適化、問合せ実行とい
う手順に分けられる。問合せ解析は、SQLなどの問合
せ言語で記述された問合せ文を構文解析し、その中に出
現するテーブル名、カラム名などを意味解析し、スキー
マ情報と照合してエラーがないか検査する。
【0021】次に問合せ最適化では、宣言的に記述され
た問合せを手続き的に実行する実行手順(これをアクセ
スプランと呼ぶ)に変換する。最後に、問合せ実行では
生成されたアクセスプランを実行し、問合せ結果を得
る。この問合せ解析、問合せ最適化を合わせて、問合せ
のプリプロセスまたは問合せのコンパイルと呼ぶ。
【0022】同一の問合せ文が複数回実行される場合、
このコンパイル過程の処理のうち多くの部分は共通の処
理である。この処理を例えばアプリケーションプログラ
ム(以下AP)のコンパイル時に行うことによって、問
合せ発行時の問合せのコンパイルにかかるコストを削減
することが可能である。このために、APから問合せ文
を抽出し、これらを予めコンパイルしたアクセスプラン
をデータベースサーバに登録し、APからは登録された
アクセスプランの識別番号によって問合せを発行するこ
とが行われている。
【0023】ここで、問合せの中に変数を含む場合、問
合せ実行時に変数に与えられる値によってタプルの選択
率が変化し、従って最適なアクセスプランが変化する場
合がある。また、問合せを実行するマシンのメモリ容量
が小さい場合には、ソートにかかるコストが変化するこ
とも考えられる。このような要因によって、コンパイル
時に最適なアクセスプランを選択することができない場
合がある。以下、この状況を「アクセスプランのコスト
評価が実行時情報に依存する」と表現することにする。
実行時情報としては、変数に与えられた値や、カラムの
統計情報、問合せ実行マシンのメモリ容量、更新問合せ
の場合の同時実行制御のレベルなどが考えられる。
【0024】以下では、問合せ最適化の手順において、
実行時情報に依存した処理と、依存しない処理とを分離
し、コンパイル時には実行時情報に依存しない処理のみ
を行ない、その中間結果を記録し、実行時情報が得られ
た時点で再開できるようにすることを考える。
【0025】問合せ最適化は、ある1つの問合せに応じ
た複数のアクセスプランのうち、その実行時間が最短で
あるものを選出する処理を行う。問合せ最適化は、ある
問合せに対して同じ実行結果を得ることができるアクセ
スプランを列挙する第一フェーズと、その列挙したアク
セスプランの中から実行時間が最短であるものを選出す
る第二フェーズの2つからなる。第一フェーズで列挙さ
れるアクセスプランの集まりは、探索空間と呼ばれる。
第二フェーズでは、探索空間中の各アクセスプランのコ
ストを計算し、コストが最小であるものが最適なアクセ
スプランであると見なし、実行対象のアクセスプランと
して選出する。ここで、コストとは、一般的には実行時
間の予測値を表す。
【0026】本発明では、この第一フェーズで、ルール
ベースの書き換えを用いる。アクセスプランの中に特定
の形をした部分式があったとき、同等の結果を得る別の
(普通はより効率のよい)式に書き換える。これをくり
返すことにより、探索空間の要素となるアクセスプラン
を生成する。この書き換えを定式化したものをルールと
呼ぶ。ルールは、書き換えの対象となる部分式を表現す
るパターン、適用可能かどうか判定するための条件、お
よび書き換え結果となる新しい部分式の組である。一般
には書き換え前のアクセスプランと、書き換え後のアク
セスプランは、ともに最終的な最適化結果の候補となり
得るため、両方が探索空間の要素となる。しかし、ルー
ルの性質によっては、適用可能な場合には必ず書き換え
後のアクセスプランを採用することがわかっている場合
や、適用直後にコストを計算し、効率の悪い方は最終候
補となり得ないことがわかっている場合がある。このよ
うな場合には、適用前のアクセスプランに対してすべて
のルール適用を試した後、探索空間から削除することも
可能となる。
【0027】図2は、あるアクセスプランを初期値とし
て、ルールを適用しながら探索空間中のアクセスプラン
を生成する様子を示す図である。ここで、丸はアクセス
プランを、矢印はルールの適用を意味する。特に点線の
丸は、上記の性質により最終的な候補となり得ないアク
セスプランを示す。ここで、以下の各点に注意する必要
がある。 ・同一のアクセスプランとルールの対においても、アク
セスプランの異なる部分式に適用することができる。 ・適用したルールや順序が違っても、結果として同一の
アクセスプランを得る場合がある。 ・ルール適用の結果、祖先となるアクセスプランと同型
になる場合がある。
【0028】探索空間の生成図は、ノードをアクセスプ
ランとし、エッジをルールと適用部分の組としたグラフ
となるが、部分的な循環を持つ場合がある。以後、この
生成図を探索空間グラフと呼び、最適化の第一フェーズ
では、この探索空間グラフを生成することを目的とす
る。
【0029】この探索空間生成の過程において、ルール
の適用可能性条件の判定に必要な情報が、実行時情報に
依存する場合が考えられる。このとき、適用可能な場合
と適用可能でない場合の両方を仮に探索空間に加えるこ
とで、実行時情報が得られた時点で最適化を行った場合
に得られるであろう探索空間のスーパーセットを得るこ
とができる。このとき、実行時情報に依存した適用可能
条件をアクセスプランに付加しておき、後に実行時情報
が確定した時点でこのアクセスプランが本来の探索空間
に入るべきものであるかどうか判別できるようにしてお
く。図2ではこのようなアクセスプランを二重丸で、ル
ール適用条件を道しるべ型ラベルで表現している。
【0030】他のアクセスプランを元として、実行時情
報に依存しないルールの組み合わせで同じアクセスプラ
ンに達することができる場合、グラフ上でこの同じノー
ドへ至る別のパスとして出現する。これを検出した場合
には、適用可能条件のマークを外すことができる。逆
に、二重丸のアクセスプランにルールを適用して得られ
たアクセスプランは、これを生成できる他のパスがない
場合には祖先の適用可能条件を受けつぐ。
【0031】最適化の第二フェーズでは、探索空間の各
アクセスプランにつき、コスト評価を行って、効率の良
いアクセスプランを選択する。このとき、点線の丸で表
示されるアクセスプランについては、コスト評価を行う
必要はない。ここで、コスト評価に必要な特性値が実行
時情報に依存する場合があり得る。例えば変数の値によ
るタプルの選択率が考えられる。この場合、コストは実
行時情報に依存する特性値を変数とした式となる。
【0032】問合せ最適化の開始点とした初期アクセス
プランは、宣言的な問合せの直訳であり、一般的にはそ
のまま実行できない。同様に、探索空間内のアクセスプ
ランの中には、ルール適用の中間状態としての意味が重
要であり、実際にそのとおりに実行できないものが存在
する。これらのアクセスプランは、第二フェーズのコス
ト評価において、採用できないアクセスプラン(点線丸
のノード)としてマークされる。
【0033】図3は、コスト式評価の終了した探索空間
グラフの例を示す図である。図中ではエッジのルール情
報は割愛されているが、この段階ではまだ保持してい
る。ここまでの処理で、探索空間内の実行可能な各アク
セスプランについて、そのコストを与える式(以下コス
ト式とする)が得られた。コスト式は、そのアクセスプ
ランのコスト評価が実行時情報に依存しない場合には定
数値となる。もしすべてのアクセスプランのコスト式が
定数値であれば、処理の対象となった問合せ文が実行時
情報に依存せずに最適化できたことになり、最もコスト
の低いものを選択し、最適化は終了する。そうでない場
合でも、実行時情報の決定する特性値によらず、コスト
式の形から数学的にコストの大小を決定できる場合があ
り、コストのより大きいアクセスプランは、最終的なア
クセスプランの候補から外すことができる(点線丸とし
てマークされる)。
【0034】第一フェーズで、ルール適用条件が実行時
情報に依存するために仮とマークされたアクセスプラン
に対するコスト式の評価には注意が必要である。ルール
適用条件が満たされない場合、アクセスプランは生成不
能であると識別する必要がある。このためには、コスト
式の中に条件が満たされない場合に無限大を加える項を
加える方法が考えられる。
【0035】探索空間内でコスト式が与えられているア
クセスプランから最終的なアクセスプランとなり得る候
補を選出するには、上記までの過程で点線丸とマークさ
れなかったものを集めればよい。この結果、複数のアク
セスプランとそれぞれを評価するためのコスト式が得ら
れる。これらの情報をコンパイル時の最適化結果として
保存し、実行時情報が得られた時点でコスト式を評価
し、最適なアクセスプランを選択することができる。こ
のときのアクセスプランにルール適用条件を持つ(つま
り二重丸の)アクセスプランが存在しない場合には、従
来技術で述べた複数のアクセスプランを実行時に選択す
る方法に相当する。
【0036】探索空間グラフ上で、エッジによって連な
った一連のアクセスプランを、始点となるアクセスプラ
ンと順次適用するべきルール列として取り出し、部分探
索空間グラフを作ることができる。この部分探索空間グ
ラフには、始点となるアクセスプランのどの部分式にど
の最適化ルールをどの順で適用すべきか、第一フェーズ
で計算した結果が記述されていることになる。この部分
探索空間グラフの記述に従えば、始点アクセスプランを
出発点としたルールによる最適化を、高速に再実行する
ことが可能である。始点以外のアクセスプランはこのデ
ータ構造から削除してあっても、再実行時に生成するこ
とが可能である。ここにはコスト式も記述されている
が、コスト式も同様に生成できるため、メモリ容量の制
約からコスト式を部分探索空間グラフから削除してもよ
い。このように小型化した部分探索空間グラフのデータ
構造は、最適化ルールとルール適用手段の動作とを、始
点となるアクセスプランに応じてプリコンパイルしたも
のと考えることができる。以後これをこのアクセスプラ
ンに対してプリコンパイルされたルール適用手順と呼
ぶ。
【0037】図4は、探索空間部分グラフから生成され
たルール適用手順の例を示す図である。問合せ実行時に
は、実行時最適化手段が、予め登録された探索空間グラ
フから、アプリケーションの指示によって識別される問
合せに対応するものを取り出す。次いで、実行時情報を
利用して上記ルール適用手順の再実行を行うことによ
り、問合せに対するアクセスプラン群と対応するコスト
値を得ることができる。このとき、コスト式内の変数に
は実行時情報から得られた特性値が代入され、各コスト
式に対して最終的なコスト値を決定することができる。
この結果得られた複数のアクセスプランの中から、最適
なコスト値を与えるアクセスプランを選択し、問合せ実
行手段に渡すことができる。
【0038】探索空間グラフに出現するすべての最終ア
クセスプラン候補を、いくつかの部分探索空間グラフで
生成することが可能ならば、部分探索空間グラフに対応
するコンパイル済みルール適用手順結果の集合を、問合
せ最適化のコンパイル過程の出力として登録しておき、
実行時最適化ではこれらの各ルール適用手順に従った最
適化の再実行を行うことにより、最適なアクセスプラン
を選択することができる。
【0039】特に、部分グラフの集合として、探索空間
グラフ自体を唯一の要素として含む集合を考えると、こ
れは問合せの最適化ルール適用までの過程をプリコンパ
イルしたものと考えることができる。以後これをこの問
合せに対してプリコンパイルされた最適化ルールと呼
ぶ。一方、最終アクセスプラン候補ノードのひとつから
なる部分グラフを、すべての候補について集めた集合
は、前述の方法によって、複数のアクセスプランを列挙
した結果に他ならない。一般に、グラフを最小の部分グ
ラフに分割する方法は計算量が大きくなることが知られ
ている。しかし、本発明では部分グラフが互いに重なっ
てもよいこと、各部分グラフが最小とならなくてもよい
ことから、この計算時間を短縮できることが期待され
る。また、この計算は問合せ最適化のコンパイル過程で
行うため、多くの時間を使っても、問合せの実行時の性
能には影響しない。
【0040】特定のアプリケーション群のコンパイル時
に、各アプリケーションからすべての問合せを抽出し、
それぞれに対する最適化ルールのプリコンパイルを行う
ことが考えられる。データベースサーバーがこのような
一組のアプリケーションのみに対してサービスを行う場
合、プリコンパイルした最適化ルールを備えることによ
り、データベースサーバーでの問合せ最適化を高速に行
うことができる。
【0041】また、アプリケーションのコンパイル時に
得られない実行時情報であっても、データベースサーバ
ーの起動時に得られ、またデータベースサーバーの稼動
時間中に変化が少ない場合があり得る。例えば、同一の
スキーマを持つ複数の独立したデータベースサーバーが
あった場合、各サーバーによってデータの統計情報は異
なるが、ひとつのサーバーを取り出してみると更新が十
分少なく、統計情報が安定しているということがあり得
る。このような状況は、夜間にバッチでデータ登録を行
い、昼間は検索を主とする場合によく見られる。この場
合、データベースサーバーの起動時に得られる続計情報
を使用して、登録されているプリコンパイル結果をさら
に最適化することが可能である。各問合せに対して前述
の最適化再実行を行った後、ルール適用手順の抽出を再
度行うことにより、この処理が行える。新たに入手した
統計情報は、もはや実行時情報ではなくコンパイル時情
報として活用することができる。
【0042】(ハードウェア)図5は、本発明のデータ
ベース処理方法を適用するハードウェアの構成例を説明
するためのブロック図である。端末400は、システム
の利用者が問合せ要求を入力したり、問合せ結果を出力
したりするために利用する計算機である。一般的には、
端末400には、問合せ要求を入力するためのキーボー
ド401及びポインティングデバイス(例えばマウス)
402が装備される。また、端末400には、問合せ結
果を表示するためのディスプレイ403が装備される。
また、端末400は、CPU404、メモリ405、ハ
ードディスク406を備え、ソフトウェアによるプログ
ラムが実行可能である。端末400では、図1の問合せ
要求入力手段305及び問合せ結果出力手段304の機
能がプログラムとして実行される。
【0043】最適化用計算機600は、アプリケーショ
ンから抽出、または送信された問合せ要求を受け取り、
それに応じた最適化ルールのコンパイルを行う。最適化
用計算機600はCPU604、メモリ605、ハード
ディスク606を備え、ソフトウェアによるプログラム
が実行可能である。また、データ入力するためのキーボ
ード601、マウス等のポインティングデバイス602
及びディスプレイ603が装備される。
【0044】最適化用計算機600では、図1の問合せ
解析手段102、最適化ルール適用手段104、探索空
間グラフ分割手段106、スキーマファイルアクセス手
段107がプログラムとして実行される。アクセスプラ
ン、探索空間グラフはメモリに記録される。スキーマフ
ァイル、問合せ最適化ルールはハードディスクに記録さ
れる。ただし、メモリに余裕がある場合には、これらの
ファイルの内容の一部または全部がメモリに保持され
る。
【0045】サーバー500は、端末400から入力さ
れた問合せ要求を受け取り、それに応じた最適化ルール
コンパイル結果を実行時最適化手段301によって実行
し、得られたアクセスプランを問合せ実行手段303で
実行し、問合せ結果を端末に返すための計算機である。
端末400とサーバー500は、通信ネットワーク(後
述)700で接続される。サーバー400は、CPU5
01、メモリ502、ハードディスク503を備え、ソ
フトウェアによるプログラムが実行可能である。
【0046】サーバー500では、図1の実行時最適化
手段301、問合せ実行手段303、スキーマファイル
アクセス手段107、データベースファイルアクセス手
段309、データ統計情報アクセス手段109の機能が
プログラムとして実行される。また、アクセスプランは
メモリに記録される。最適化ルールコンパイル結果、ス
キーマファイル、データベースファイルは、ハードディ
スクに記録される。ただし、メモリに余裕がある場合に
は、これらのファイルの内容の一部または全部がメモリ
に保持される。サーバー500は、登録されていない問
合せを処理するために、最適化用計算機600の一部ま
たは全部の機能をあわせ持つ場合もある。
【0047】通信ネットワーク700は、端末400及
びサーバー500をつなぐための伝送路である。一般的
にはケーブルで実現され、通信プロトコルにはTCP/
IPが使われる。ただし、ケーブルに限らず、端末とサ
ーバーとの通信プロトコルが一致すれば、無線LANや
放送波を使ったネットワークであっても構わない。
【0048】
【発明の効果】本発明によれば、問合せの最適化におい
て、実行時情報に依存しない最適化を行い、実行時情報
に依存した最適化に関してはその処理方法をあらかじめ
コンパイルしておくことができる。これにより、実行時
情報を必要とする最適化の種類を制限することなく、コ
ンパイルしない場合に比較して最適化処理を大幅に減ら
すことができる。
【0049】また、最適化ルールに注目すれば、問合せ
文を限定することにより、最適化ルールおよびルール適
用手段をプリコンパイルしたことになる。アプリケーシ
ョンから発行される問合せ文があらかじめわかっている
場合に、本発明によって最適化手段をプリコンパイルし
ておくことにより、データベースサーバーの最適化手段
を小型化、高速化することが可能となる。
【図面の簡単な説明】
【図1】 本発明のデータベース処理方法を実施するた
めの処理の流れを説明するための図である。
【図2】 あるアクセスプランを初期値として、ルール
を適用しながら探索空間中のアクセスプランを生成する
様子を示す図である。
【図3】 コスト式評価の終了した探索空間グラフの例
を示す図である。
【図4】 探索空間部分グラフから生成されたルール適
用手順の例を示す図である。
【図5】 本発明のハードウェアの構成例を説明するた
めのブロック図である。
【符号の説明】
101…問合わせ文、102…問合わせ解析手段、10
3…アクセスプラン、104…最適化ルール適用手段、
105…探索空間グラフ、106…探索空間グラフ分割
手段、107…スキーマファイルアクセス手段、108
…問合わせ最適化ルール、109…データ統計情報アク
セス手段、110…スキーマファイル、111…データ
ベースファイル、200…最適化ルールプリコンパイル
結果、300…問合わせ実行過程、301…実行時最適
化手段、302…アクセスプラン、303…問合わせ実
行手段、304…問合わせ結果出力手段、305…問合
わせ要求入力手段、306…問合わせパラメータ、30
9…データファイルアクセス手段、400…端末、40
1,601…キーボード、402、602…ポインティ
ングデバイス、403,603…ディスプレイ、40
4,501,604…CPU、405,502,605
…メモリ、406,503,606…ハードディスク、
700…通信ネットワーク。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 平岡 卓也 東京都大田区中馬込1丁目3番6号 株式 会社リコー内 (72)発明者 池田 哲也 東京都大田区中馬込1丁目3番6号 株式 会社リコー内 (72)発明者 竹川 弘志 東京都大田区中馬込1丁目3番6号 株式 会社リコー内 Fターム(参考) 5B081 AA10 CC21 5B082 GA08 HA08

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 データベースへの問合せに対して、問合
    せの構文解析、意味解析、及びエラー検査を該問合わせ
    の実行時と分離して予め行うデータベース処理方法であ
    って、問合わせをアクセスプランに変換する問合わせの
    最適化に際し、該問合わせの実行時に得られる実行時情
    報に依存しない最適化処理が終った中間状態のアクセス
    プランを登録し、前記実行時情報に依存した最適化処理
    を前記問合わせの実行時に行うことにより最終的に最適
    なアクセスプランを得ることを特徴とするデータベース
    処理方法。
  2. 【請求項2】 請求項1に記載のデータベース処理方法
    において、前記中間状態のアクセスプランは、最適化ル
    ールの適用可能性を予め計算し、該最適化ルールの適用
    を手順化した状態で登録することを特徴とするデータベ
    ース処理方法。
  3. 【請求項3】 請求項2に記載のデータベース処理方法
    において、アプリケーションに含まれるすべての問合せ
    を抽出し、抽出した問合わせによって、前記中間状態の
    アクセスプランと最適化ルールの適用方法とを含む探索
    空間グラフを生成し、生成した探索空間グラフに必要な
    最適化ルールのみを問合せ実行用のデータベースサーバ
    に置くことを特徴とするデータベース処理方法。
  4. 【請求項4】 請求項2または3に記載のデータベース
    処理方法において、データベースの統計情報を用いて、
    データベースサーバの起動時に前記最適化ルールの適用
    手順をさらに最適化することを特徴とするデータベース
    処理方法。
JP2000255011A 2000-08-25 2000-08-25 データベース処理方法 Pending JP2002073387A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000255011A JP2002073387A (ja) 2000-08-25 2000-08-25 データベース処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000255011A JP2002073387A (ja) 2000-08-25 2000-08-25 データベース処理方法

Publications (2)

Publication Number Publication Date
JP2002073387A true JP2002073387A (ja) 2002-03-12
JP2002073387A5 JP2002073387A5 (ja) 2005-07-07

Family

ID=18743873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000255011A Pending JP2002073387A (ja) 2000-08-25 2000-08-25 データベース処理方法

Country Status (1)

Country Link
JP (1) JP2002073387A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014102641A (ja) * 2012-11-19 2014-06-05 Bank Of Tokyo-Mitsubishi Ufj Ltd データベース管理装置
JP2015507793A (ja) * 2011-12-23 2015-03-12 ザ アリゾナ ボード オブ リージェンツ オン ビハーフ オブ ザ ユニバーシティー オブ アリゾナ データベース管理システムにおけるマイクロ特化の方法
US10365900B2 (en) 2011-12-23 2019-07-30 Dataware Ventures, Llc Broadening field specialization

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015507793A (ja) * 2011-12-23 2015-03-12 ザ アリゾナ ボード オブ リージェンツ オン ビハーフ オブ ザ ユニバーシティー オブ アリゾナ データベース管理システムにおけるマイクロ特化の方法
US10365900B2 (en) 2011-12-23 2019-07-30 Dataware Ventures, Llc Broadening field specialization
JP2014102641A (ja) * 2012-11-19 2014-06-05 Bank Of Tokyo-Mitsubishi Ufj Ltd データベース管理装置

Similar Documents

Publication Publication Date Title
Ahmad et al. Automatically leveraging mapreduce frameworks for data-intensive applications
Armbrust et al. Spark sql: Relational data processing in spark
US10191943B2 (en) Decorrelation of user-defined function invocations in queries
US9177021B2 (en) Relational query planning for non-relational data sources
JP2005018767A (ja) クエリオプティマイザのシステムおよび方法
US7451137B2 (en) Using a rowset as a query parameter
US8843474B2 (en) Method and database system for executing a XML database query
US20090254891A1 (en) Automatic reverse engineering of input formats
US10642589B2 (en) Extensibility in a database system
JP2002163290A (ja) クエリ最適化のためのコストに基づく具体化ビューの選択
US20080147598A1 (en) Query optimization using materialized views in database management systems
US20090070300A1 (en) Method for Processing Data Queries
US11514009B2 (en) Method and systems for mapping object oriented/functional languages to database languages
JP2018510445A (ja) プログラム性能を向上させる領域特化システムおよび方法
EP3816814A1 (en) Crux detection in search definitions
EP3293645A1 (en) Iterative evaluation of data through simd processor registers
CN110008448B (zh) 将SQL代码自动转换为Java代码的方法和装置
JPH11265395A (ja) データベースアクセスシステム
CN110580170A (zh) 软件性能风险的识别方法及装置
JP2002073387A (ja) データベース処理方法
Shmeis et al. A rewrite-based optimizer for spark
JP3565117B2 (ja) 複数異種情報源アクセス方法及びクライアント装置及び複数異種情報源アクセスプログラムを格納した記憶媒体
CN109388619B (zh) 共享数据系统及共享数据方法
Anderson Modeling and analysis of SQL queries in PHP systems
JP2001222452A (ja) リレーショナルデータベースシステムにおける問い合わせ処理最適化装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041029

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071211

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080408