JPH03189742A - データベース処理方法 - Google Patents
データベース処理方法Info
- Publication number
- JPH03189742A JPH03189742A JP1328906A JP32890689A JPH03189742A JP H03189742 A JPH03189742 A JP H03189742A JP 1328906 A JP1328906 A JP 1328906A JP 32890689 A JP32890689 A JP 32890689A JP H03189742 A JPH03189742 A JP H03189742A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- query
- resources
- internal processing
- database
- 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
Links
- 238000003672 processing method Methods 0.000 title claims description 13
- 238000000034 method Methods 0.000 claims abstract description 110
- 238000007781 pre-processing Methods 0.000 claims description 19
- 238000004458 analytical method Methods 0.000 claims description 14
- 239000000872 buffer Substances 0.000 description 83
- 238000001914 filtration Methods 0.000 description 46
- 238000010586 diagram Methods 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000013138 pruning Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 240000008100 Brassica rapa Species 0.000 description 1
- 244000141353 Prunus domestica Species 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
(産業上の利用分野j
本発明はデータベース処理方法に関し、特にリレーショ
ナルデータベース管理システムに適した問合せ処理に好
適なデータベース処理方法に関するものである。
ナルデータベース管理システムに適した問合せ処理に好
適なデータベース処理方法に関するものである。
【従来の技術J
データベース管理システム(DBMS)、特にリレーシ
ョナルDBMSは、非手続き的に言語で表現された問合
せを処理して、内部処理手順を決定し、実行する。従来
の問合せ処理の主要な方法には、予め設定した規則に基
づいて、単一の内部処理手順を決定するもの(例えば、
S+aith J、M、etal、”Optimizi
ng the Perfor+aance of a
Re1a−tionaLDatabase Inter
face”(CACMvol、18゜Na 10. p
p、 568−579参照)、および、各種統計情報を
用いて選定された複数の候補処理手順から、コスト評価
を行って、最適と思われるものを決定するものく例えば
、Selinger P、G、et al、”Acce
ssPath 5election in a Re1
ational DatabaseManagemen
t S ystem”(Proc、AC:M−S I
GMOD 、 +979. pp、 23−24参照)
がある。 前者は、処理手順の作成に要する負荷は小さいものの、
−律に設定された規則の妥当性に問題があり、選択され
た内部処理手順の最適性にも問題がある。また、後者は
、最適な処理手順を与えるものの、各種統計情報の管理
と、複数の候補処理手順の作成およびそれらのコスト評
価のための負荷が大きいという問題がある。 なお、ここで、データベースはユーザから二次元のテー
ブル形式で見られるリレーションから成るものとし、当
該テーブルの行に対応するものをタプルとするものであ
る。また、タプルは、一つ以上の属性(カラム)から成
るものとする。 〔発明が解決しようとする課題〕 上記従来技術は、問合せで出現する検索条件式を満足す
るデータの割合を基にしたコスト評価により、最適な処
理手順を決定するものであるが、問合せ実行時のリソー
スの状況と処理手順の実行方法(アルゴリズム)によっ
ては、最適な処理とはならず、効率の悪いものとなって
しまう場合があるという問題を有する。 処理実行時における、リソースの状況と内部処理手順と
の関係について考えてみると、例えば、ネストルーブ結
合の場合は、繰り返し読まれる方のテーブル(内側テー
ブル)のデータをできるだけ多くバッファに読み込み、
他方のテーブルデータと突き合せると良い。同様に、他
の結合方式に関しても、バッファの状況により、最適な
実行方法が存在する。 本発明は上記事情に鑑みてなされたもので、その目的と
するところは、従来の技術における上述の如き問題を解
消し、問合せ処理の性能向上を実現可能とするデータベ
ース処理方法を提供することにある。 [課題を解決するための手段) 本発明の上記目的は、データベースに対するユーザから
の問合せを解析して、対応する内部処理手順をプリプロ
セス処理時に決定し、問合せ実行処理時に当該内部処理
手順を実行するデータベースシステムにおいて、プリプ
ロセス処理時に入力された問合せの解析結果を基に問合
せ単位に割当てるべきリソースを算出し、当該リソース
の割当ておよび解放の制御を行う内部処理手順を作成す
るステップと、前記内部処理手順で割当てるリソースの
使用状況に対応して実行すべき内部処理手段を変更する
ステップとを有することを特徴とするデータベース処理
方法によって達成される。 C作用】 本発明に係るデータベース処理方法におけるブリプロセ
ス処理では、問合せ実行時に必要となるリソースの割当
ておよび解放の制御を行い、割当てるリソースの使用状
況に対応して実行する内部処理手順を変更することによ
り、問合せ実行時にプリプロセス処理で算出した割当て
られるべきリソースと当該問合せに割当て可能なリソー
スとを比較し、要求するリソースが割当て不可能な場合
には、問合せに配分するリソースを変更し、実行する内
部処理手順も新たに配分されるリソースで最適となるも
のに変更するようにして、リソースの状況に応じて最適
な問合せ処理を行うことを可能とするものである。 〔実施例〕 以下、本発明の実施例を図面に基づいて詳細に説明する
。 第2図は、本発明が適用されるハードウェア構成の一例
を示す図である。本システムは、主記憶(MM)210
を保持する中央処理袋!!(CP U) 200と、入
出力制御を行うチャネル装置(CH) 220゜ディス
ク(D I S K) 230から成っている。中央処
理装置200からのディスク230内のデータアクセス
要求は、チャネル装置220を介して行われ、データ転
送、制御データ交換のために、中央処理装置200とチ
ャネル装置220の間に経路240.チャネル装置22
0とディスク230の間に経路250が用いられる。上
述の主記憶210内に、DBMSが格納され動作する如
く構成されており、また、ディスク230内には、テー
ブル、統計情報等のデータベースが蓄積されており、更
に、主記憶210に、問合せ実行時に使用するバッファ
が確保される。 第3図は、本発明が適用されたDBMSの処理例を示す
図である。コマンド例303は、DBMS300に入力
され、問合せ処理が行われる。DBMS300は、問合
せ実行前に行われるプリプロセス処理301と、問合せ
実行を制御する問合せ実行処理302から成っている。 本ブリプロセス処理301は、入力されたコマンドの構
文解析、意味解析を実行する問合せ解析処理307と、
コマンドで出現する各種条件式から条件を満足するデー
タの割合(「述語選択率Jまたは単に「選択率」という
)を推定する述語選択率推定処理308と、予め設定し
ている規則を利用し、データベース中の各種データサイ
ズ、データベースの物理構造、インデクスの種類や有無
等のデータベース特性や、バッファサイズまたはCPU
性能等のシステム特性に関する情報を用いて、有効なア
クセスバス候補を剪定するアクセスバス剪定処理309
と、入出力回数またはCPU使用時間等のコスト評価を
行い、内部処理手順の候補を作成する処理手順決定処理
310と、前過程で選出された候補を実行形式に展開し
、各候補で必要となるリソースを算出し、かつ、リソー
スの状況により最適処理となる候補を選べるような実行
形式を作成する最適アクセス手順生成処理3]1 とか
ら成っている。 また、上記問合せ実行処理302は、前過程で選択され
た内部処理手順を解釈・実行する解釈実行312から成
っている。データベース304には、テーブル306″
p3よび統計情報管理テーブル305が蓄積されている
。統計情報管理テーブル305は、データベース304
の各テーブルを構成するカラム値の出現回数情報を設定
している。 第4図(a)〜(f)は、上述の各処理の詳細なフロー
チャートである。同図(a)に示す問合せ解析処理30
7は、問合せコマンドの構文解析、意味解析を実行しく
ステップ401)、コマンドに出現する条件式を、CN
F (Conjunctive Normal Fo
rm)かDNF(Disjunctive Norma
l Form)に変換する(ステップ402)。述語選
択率推定処理308は、同図(b)の如く、当述語のカ
ラム値分布情報があれば、選択率を算出する(ステップ
4月と412)。 当述語のカラム値分布情報がなければ、述語の種類に応
じて、予め設定しているデフォルト値を選折率として登
録する(ステップ411と413)。 また、アクセスバス剪定処理309は、同図(C)の如
く、問合せの条件式に出現するカラムのインデクスを候
補として登録する(ステップ421)。次に、リレーシ
ョンスキャンを候補として登録する(ステップ422)
。選択率の小となる述語のインデクス順に、優先度を高
くする(ステップ423)。更に、CPU性能、cpu
性能からアクセスバス剪定基準を決定する(ステップ4
24)。最後に、単一/複数インデクスを組み合せたア
クセスバスで選択率が上記基準より小であるものだけを
、候補として登録する(ステップ425)。 処理手順決定処理310は、上記各候補について対応す
るコスト評価式の計算を行い(ステップ431)、評価
値の一番小さいものを処理手順として決定する(ステッ
プ432)。最適アクセス手順生成処理311では、決
定した処理手順とカラム値の出現回数情報9選択率から
中間結果等を割当てるバッファサイズを算出し、登録す
る(ステップ441)。 次に、処理手順を実行するための実行形式を生成する(
ステップ442)。 そして、ここで作成する中間結果が、上記ステップ44
2で算出したバッファに入り切らない場合には、それ以
降の処理をバッファの状況により変更可能とする内部処
理を作成する。すなわち、問合せ実行途中に作成する中
間結果が上述のステップ442で算出したバッファに入
りきらない場合、それ以降の処理をバッファの状況によ
り変更可能とする内部処理を作成する。ここで用い得る
ジョイン処理には、ネストループジョイン、ソートマー
ジジョイン、フィルタリング処理およびブリジョインフ
ィルタリング処理を利用したネストブロックジョイン等
が挙げられる。例えば、第3図に示した問合せコマンド
303の結合処理において、ネストブロックジョイン処
理が選ばれたとする。 この場合、ネストループ結合は、第5図に示す如く、テ
ーブルの結合を行うカラムの値504.508とそのカ
ラムの値に対応するデータをポイントする値503.5
07で構成される3時リストを、中間結果り、502.
L、506として作成しくこれを、「フィルタリン
グ処理Jと呼ぶ)、一方の中間結果のテーブルをカラム
の値504でソートし、このソーティングの結果作成さ
れたテーブルL、516(これを、「内側テーブル」と
呼ぶ)と、他方の中間結果のテーブル506(これを、
「外側テーブル」と呼ぶ)のカラム値510.508を
順番に突き合せる(これを、「プリジョインフィルタリ
ング処理Jという)ことにより、補助情報512を作成
する。 第5図(a)で言えば、L 、 506のC,508の
値が、L、516のC,510の値の何番目に該当する
かをチエツクし、その結果を補助情報512として作成
することになる。第5図(b)のり、516のC,51
0の値。 L 、 506のC、508の値の場合、補助情報51
2は、第5図(c)に示すようになる。この補助情報5
12から、結合処理を行うことができる。本結合処理時
に必要なバッファサイズは、この問合せ実行時に使用可
能なバッファサイズをMとすると、内側テーブルのバッ
ファサイズM、は、 で、外側テーブルのバッファサイズM0は、M6=M
Ml で示す式で求めることができる。ここで、Fはテーブル
の選択率、■はテーブルのサイズ、↑↑はCeilin
g Functionとして使う。 上述の結合処理は、フィルタリング処理結果が主記憶上
のバッファにすべて入りきらない場合、処理によっては
ディスクへの入出力要求が多発して、効率の悪い処理と
なってしまうことがあり得る。そこで、ネストブロック
結合が処理手順として選ばれた場合には、主記憶のバッ
ファ数を越えたフィルタリング結果が作られたときにそ
れ以降の内部処理手順を変更するように、第1図に示す
如き実行形式を作成する。以下、上述の第1図および第
6図〜第9図に示す詳細なフローチャートにより、更に
説明する。 (1)L、、 L、の両フィルタリング結果がバッファ
にすべて入った場合の処理(第1,6図)。 まず、テーブルT、 601のフィルタリング処理を行
い(ステップ1010) 、フィルタリング結果を内側
テーブルバッファ600に格納できるか否かをチエツク
する(ステップ1020.■)。 内側テーブルバッファ600に格納できる場合(■)は
、ステップ1100でテーブルT、 606のフィルタ
リング処理を行う。次に、テーブルT、 606のフィ
ルタリング結果が外側テーブルバッファ802に格納で
きるか否かをチエツクしくステップ111Oおよび■)
、格納できる場合(■)には、ステップ1170で、フ
ィルタリング結果L 、 800とり、900のサイズ
を比較する。 L 、 800の方が小さい場合には、L 、 800
をカラムC,の値でソートしくステップ+180.■)
、前述のプリジョインフィルタリング処理を行い(ステ
ップl+90)、その結果出力される補助情報から結合
処理を行う(ステップ1200)。 同様に、L、900の方が小さい場合は、L、900の
バッファを内側テーブルバッファ、LaO2のバッファ
を外側テーブルバッファとして、L、900をカラムC
1の値でソートしくステップ!210)、前述のプリジ
ョインフィルタリング処理を行い(ステップ1220)
、結合処理を行う(ステップ+230)。 (2)L、がバッファに入らなかった場合の処理(第1
.7図)。 まず、テーブルT、 601のフィルタリング処理を行
い(ステップ1010)、フィルタリング結果を内側テ
ーブルバッファ600に格納できるか否かをチエツクす
る(ステップ+020.■)。 内側テーブルバッファ600に格納できる場合(■)に
は、ステップ+100でテーブルT、 606のフィル
タリング処理を行う。次に、テーブルT、 606のフ
ィルタリング結果が外側テーブルバッファ802に格納
できるが否かをチエツクしくステップ111oおよび■
)、格納できない場合、L、を−時ファイルとしてディ
スクに出力しくステップ112oおよび■)、L 80
0はカラムC8の値でソートする(ステップ+130お
よび■)。そして、L、607を外側テーブルバッファ
802に入るところまで読み込み、前述のプリジョイン
フィルタリング処理を行って(ステップ+140)、上
述の外側テーブルバッファ802に入っていたところま
での結合処理を行う(ステップ+150)。 次に、L 、 607の前回外側テーブルバッファに読
み込まれたレコードの次からを、外側テーブルバッファ
802に読み込み、同様に、プリジョインフィルタリン
グ処理および結合処理(ステップ+140と1150)
を、L、607の全データについて繰り返し行う(ステ
ップ+160)。 第7図、第10図(C)で説明すると、L、607は外
側テーブルバッファ802に入りきらず、L 、 、
803とり、ヨ804の二回に分けて外側テーブルバッ
ファ802に読み込むことができるものとすると、第1
O図(c)に示す如く、まず、外側テーブルバッファ8
02にり、、 803を読み込み、内側テーブルバッフ
ァ600内のり、801とり、 803とのプリジョ
インフィルタリング処理を行う(ステップ1406)。 そして、外側テーブルバッファ802にL□804を読
み込み、L。 801とL 、 、 804とのプリジョインフィルタ
リング処理を行う(ステップ1407)。 (3)L、がバッファに入らなかった場合の処理(第1
.8図)。 まず、テーブルT、 601のフィルタリング処理を行
い(ステップ+010)、フィルタリング結果を内側テ
ーブルバッファ600に格納できるか否かをチエツクす
る(ステップ+020.■)。 格納できない場合、L 、 602を3時フアイルとし
てディスクに出力しくステップ+030.■)、テーブ
ルT、 606のフィルタリング処理を行う(ステップ
+040)。そして、上述のフィルタリング結果り、7
00が、内側テーブルバッファ600に格納できるが否
かをチエツクする(ステップ+050および■)。フィ
ルタリング結果L 、 700が、内側テーブルバッフ
ァ600に格納できる場合(■)には、L、700をカ
ラムC。 の値でソートする(ステップ+060および■)。 そして、L 、 602を外側テーブルバッファ802
に入るところまで読み込み、プリジョインフィルタリン
グ処理を行い(ステップ+070)、外側テーブルバッ
ファ802に入っていたところまでの結合処理を行う(
ステップ+080)。 次に、L 、 602の、前回外側テーブルバッファ8
02に読み込まれたレコードの次からを、外側テーブル
バッファ802に読み込み、同様に、プリジョインフィ
ルタリング処理、結合処理(ステップ1070および+
080)を、L 、 602の全データについて繰り返
し行う(ステップ!090)。 第8図、第10図(b)で説明すると、L 、 602
は外側テーブルバッファ802に入りきらず、L 、
、 604とり、、605の二回に分けて外側テーブル
バッファ802に読み込むことができるものとすると、
第1O図(b)に示す如く、まず、外側テーブルバッフ
ァ802にり、、604を読み込み、内側テーブルバッ
ファ600内のり、701とL604とのプリジョイン
フィルタリング処理を行う(ステップ+404)。そし
て、外側テーブルバッファ802にL 、 、 605
を読み込み、L。 701とり、、605とのプリジョインフィルタリング
処理を行う(ステップ1405)。 (4)L、、 L、の両フィルタリング結果ともにバッ
ファに入らなかった場合の処理(第1.9図)。 まず、テーブルT、 601のフィルタリング処理を行
い(ステップ+010)、フィルタリング結果を内側テ
ーブルバッファ600に格納できるか否かをチエツクす
る(ステップ+020.■)。 格納できない場合、L 、 602を3時フアイルとし
てディスクに出力しくステップ+030と■)、テーブ
ルT、606のフィルタリング処理を行い(ステップ1
040)、フィルタリング結果L1607が内側テーブ
ルバッファ600に格納できるか否かをチエツクする(
ステップ1050と■)。 フィルタリング結果L 、 607が内側テーブルバッ
ファ600に格納できないとき、L 、 607を3時
フアイルとしてディスクに出力しくステップ1340と
■)、L 、 602のサイズと L、607(7)サ
イズを比較する(ステップ+240)。 (i ) L、602< L、607の場合L 、 6
02をカラムC,の値でソートし、L、603とする(
ステップ1250と■)。そして、L、603を内側テ
ーブルバッファ600に入るところまで読み込み、Lj
607も外側テーブルバッファ802に入るところまで
読み込み、プリジョインフィルタリング処理を行う(ス
テップ1260)。 そして、L、603. L、607の内側テーブルバッ
ファ600.外側テーブルバッファ802に入っている
ところだけの結合処理を行う(ステップ+270)。次
に、L、607の前回外側テーブルバッファ802に読
み込まれたレコードの次からを、外側テーブルバッファ
802に読み込んで、同様に、プリジョインフィルタリ
ング処理および結合処理(ステップ1260および+2
70)を、L、607の全データについて繰り返し実行
し、次に、L、603の前回内側テーブルバッファ60
0に読み込まれたレコードの次からを、内側テーブルバ
ッファ600に読み込んで、同様に、L、603の全デ
ータについて、プリジョインフィルタリング処理(ステ
ップ+260)および結合処理(ステップ1270)を
、繰り返し実行する(ステップ+280)。 第9図、第1O図(a)で説明すると、L 、 603
は内側テーブルバッファ600に入りきらず、L、、6
04とり、1605の二回に分けて内側テーブルバッフ
ァ600に読み込むことができ、また、L 、 607
は外側テーブルバッファ802に入りきらず、L 、
、 608〜L、、611の四回に分けて外側テーブル
バッファ802に読み込むことができるものとすると、
第10図(a)に示す如く、まず、内側テーブルバッフ
ァ600にり、、 604を、また、外側テーブルバッ
ファ802にり、、 608を読み込み、内側テーブル
バッファ600内のL□604とL 、 、 608と
のプリジョインフィルタリング処理を行い(ステップ1
400)、そして、L 、 、 608と同様に、L、
、609〜L 、、611を順番に外側テーブルバッフ
ァ802に読み込み、L□604とのプリジョインフィ
ルタリング処理を行う(ステップ+401)。次に、内
側テーブルバッファ600にり、、605を読み込み、
外側テーブルバッファ802にL 、 、 608を読
み込み、L o605とL 、 、 608とのブリジ
ョインフィルタリング処理を行う(ステップ1402)
。同様に、L 、 、 609〜L、611を外側テー
ブルバッファ802に読み込み、L 、 、 605と
のプリジョインフィルタリング処理を行う(ステップ1
403)。 (u)L、602≧L、607の場合 り、607をカラムC,の値でソートし、・L、603
とする(ステップ1290)。そして、L 、 603
を内側テーブルバッファ600に入るところまで読み込
み、L 、 607も外側テーブルバッファ802に入
るところまで読み込み、プリジョインフィルタリング処
理を行う(ステップ+300)。そして、Lお603.
L、607の内側テーブルバッファ600.外側テー
ブルバッファ802に入っているところだけの結合処理
を行う(ステップ1310)、、次に、L 、 607
の曲回外側テーブルバッファ802に読み込まれたレコ
ードの次からを、外側テーブルバッファ802に読み込
んで、同様に、ブリジョインフィルタリング処理および
結合処理(ステップ1300と1310)を、 Li2
O2の全データについて繰り返し実行し、次に、L、6
03の前回内側テーブルバッファ600に読み込まれた
レコードの次からを、内側テーブルバッファ600に読
み込んで、同様に、L、603の全データについて、プ
リジョインフィルタリング処理(ステップ1300)お
よび結合処理(ステップ1310)を、繰り返し実行す
る(ステップ+320)。 以上が、第4図(e)に示した処理手順実行のための実
行形式生成(ステップ442)において、作成した中間
結果がバッファに入りきらない場合の内部処理手順であ
る。解析実行処理312は、実行形式の処理手順を解釈
し、問合せコマンドを実行する(ステップ451)。 以上、処理フローを説明したが、本発明のプリプロセス
処理方法は、統計情報を用いた規則とコスト評価との併
用に限らず、適当なデータベース参照特性情報を与える
内部処理手順が得られるものであれば、例えば、コスト
評価のみ、規則利用のみ、コスト評価と規則利用の併用
等の、最適化処理を行うDBMSにも適用できる。 上記データベース参照特性は、入力された問合せから、
DBMSが自動的に判断されるのはもちろん、ユーザか
らの指定で決定されても良い。また、問合せで出現する
条件式によっては、バッファの状況により、問合せ実行
時に内部処理手順を選択する必要がないという判断が最
適アクセス手順生成で行われれば、従来のプリプロセス
処理と同様に、唯一の実行形式の内部処理手順を生成す
るのは、言うまでもない。 すなわち、本発明によれば、実行時に代入される値によ
って最適となる内部処理手順が異なる問合せに対して、
予め内部処理手順を実行形式に展開していることから、
CPU負荷が軽減され、また、実行時のリソースの状況
により、それ以降行う内部処理手順が選択でき、CPU
負荷、I10回数も軽減されるという効果もある。 本発明にいうリソースは、上述の主記憶の割当てだけで
はなく、マルチプロセッサシステム上で動作する際のC
PUの割当て、データベース専用ハードウェア接続時の
専用ハードウェアへのデータベース処理割当て、ネット
ワーク上の別のコンピュータに接続されたディスク内デ
ータのアクセス処理等にも適用可能である。また、本発
明の処理手順の実行形式は、別CPUおよび別コンピュ
ータ上の環境で実行されることを想定した内部処理手順
を作成することにより、プリプロセス処理が行われたコ
ンピュータ上で実行される必要がなくなるものである。 更に、プリプロセス処理時に、問合せ実行時のリソース
の状況に応じて考えられる処理手順を複数作成して実行
形式に変換しておき、問合せ実行時にリソースの状況に
応じて処理を選択して実行することも考えられる。例え
ば、問合せ実行時に選択されていたネストブロック結合
が、割当てられるバッファサイズによっては、マージソ
ート結合を行った方が速い場合、ネストブロック結合処
理を、マージソート結合に変更することも可能である。 〔発明の効果〕 以上、詳細に説明した如く、本発明によれば、データベ
ースに対するユーザからの問合せを解析して、対応する
内部処理手順をプリプロセス処理時に決定し、問合せ実
行処理時に当該内部処理手順を実行するデータベースシ
ステムにおいて、プリプロセス処理時に入力された問合
せの解析結果を基に問合せ単位に割当てるべきリソース
を算出し、当該リソースの割当ておよび解放の制御を行
う内部処理手順を作成するステップと、前記内部処理手
順で割当てるリソースの使用状況に対応して実行すべき
内部処理手段を変更するステップとを有する如く構成し
たので、問合せ処理の性能向上を実現可能とするデータ
ベース処理方法を実現できるという顕著な効果を奏する
ものである。
ョナルDBMSは、非手続き的に言語で表現された問合
せを処理して、内部処理手順を決定し、実行する。従来
の問合せ処理の主要な方法には、予め設定した規則に基
づいて、単一の内部処理手順を決定するもの(例えば、
S+aith J、M、etal、”Optimizi
ng the Perfor+aance of a
Re1a−tionaLDatabase Inter
face”(CACMvol、18゜Na 10. p
p、 568−579参照)、および、各種統計情報を
用いて選定された複数の候補処理手順から、コスト評価
を行って、最適と思われるものを決定するものく例えば
、Selinger P、G、et al、”Acce
ssPath 5election in a Re1
ational DatabaseManagemen
t S ystem”(Proc、AC:M−S I
GMOD 、 +979. pp、 23−24参照)
がある。 前者は、処理手順の作成に要する負荷は小さいものの、
−律に設定された規則の妥当性に問題があり、選択され
た内部処理手順の最適性にも問題がある。また、後者は
、最適な処理手順を与えるものの、各種統計情報の管理
と、複数の候補処理手順の作成およびそれらのコスト評
価のための負荷が大きいという問題がある。 なお、ここで、データベースはユーザから二次元のテー
ブル形式で見られるリレーションから成るものとし、当
該テーブルの行に対応するものをタプルとするものであ
る。また、タプルは、一つ以上の属性(カラム)から成
るものとする。 〔発明が解決しようとする課題〕 上記従来技術は、問合せで出現する検索条件式を満足す
るデータの割合を基にしたコスト評価により、最適な処
理手順を決定するものであるが、問合せ実行時のリソー
スの状況と処理手順の実行方法(アルゴリズム)によっ
ては、最適な処理とはならず、効率の悪いものとなって
しまう場合があるという問題を有する。 処理実行時における、リソースの状況と内部処理手順と
の関係について考えてみると、例えば、ネストルーブ結
合の場合は、繰り返し読まれる方のテーブル(内側テー
ブル)のデータをできるだけ多くバッファに読み込み、
他方のテーブルデータと突き合せると良い。同様に、他
の結合方式に関しても、バッファの状況により、最適な
実行方法が存在する。 本発明は上記事情に鑑みてなされたもので、その目的と
するところは、従来の技術における上述の如き問題を解
消し、問合せ処理の性能向上を実現可能とするデータベ
ース処理方法を提供することにある。 [課題を解決するための手段) 本発明の上記目的は、データベースに対するユーザから
の問合せを解析して、対応する内部処理手順をプリプロ
セス処理時に決定し、問合せ実行処理時に当該内部処理
手順を実行するデータベースシステムにおいて、プリプ
ロセス処理時に入力された問合せの解析結果を基に問合
せ単位に割当てるべきリソースを算出し、当該リソース
の割当ておよび解放の制御を行う内部処理手順を作成す
るステップと、前記内部処理手順で割当てるリソースの
使用状況に対応して実行すべき内部処理手段を変更する
ステップとを有することを特徴とするデータベース処理
方法によって達成される。 C作用】 本発明に係るデータベース処理方法におけるブリプロセ
ス処理では、問合せ実行時に必要となるリソースの割当
ておよび解放の制御を行い、割当てるリソースの使用状
況に対応して実行する内部処理手順を変更することによ
り、問合せ実行時にプリプロセス処理で算出した割当て
られるべきリソースと当該問合せに割当て可能なリソー
スとを比較し、要求するリソースが割当て不可能な場合
には、問合せに配分するリソースを変更し、実行する内
部処理手順も新たに配分されるリソースで最適となるも
のに変更するようにして、リソースの状況に応じて最適
な問合せ処理を行うことを可能とするものである。 〔実施例〕 以下、本発明の実施例を図面に基づいて詳細に説明する
。 第2図は、本発明が適用されるハードウェア構成の一例
を示す図である。本システムは、主記憶(MM)210
を保持する中央処理袋!!(CP U) 200と、入
出力制御を行うチャネル装置(CH) 220゜ディス
ク(D I S K) 230から成っている。中央処
理装置200からのディスク230内のデータアクセス
要求は、チャネル装置220を介して行われ、データ転
送、制御データ交換のために、中央処理装置200とチ
ャネル装置220の間に経路240.チャネル装置22
0とディスク230の間に経路250が用いられる。上
述の主記憶210内に、DBMSが格納され動作する如
く構成されており、また、ディスク230内には、テー
ブル、統計情報等のデータベースが蓄積されており、更
に、主記憶210に、問合せ実行時に使用するバッファ
が確保される。 第3図は、本発明が適用されたDBMSの処理例を示す
図である。コマンド例303は、DBMS300に入力
され、問合せ処理が行われる。DBMS300は、問合
せ実行前に行われるプリプロセス処理301と、問合せ
実行を制御する問合せ実行処理302から成っている。 本ブリプロセス処理301は、入力されたコマンドの構
文解析、意味解析を実行する問合せ解析処理307と、
コマンドで出現する各種条件式から条件を満足するデー
タの割合(「述語選択率Jまたは単に「選択率」という
)を推定する述語選択率推定処理308と、予め設定し
ている規則を利用し、データベース中の各種データサイ
ズ、データベースの物理構造、インデクスの種類や有無
等のデータベース特性や、バッファサイズまたはCPU
性能等のシステム特性に関する情報を用いて、有効なア
クセスバス候補を剪定するアクセスバス剪定処理309
と、入出力回数またはCPU使用時間等のコスト評価を
行い、内部処理手順の候補を作成する処理手順決定処理
310と、前過程で選出された候補を実行形式に展開し
、各候補で必要となるリソースを算出し、かつ、リソー
スの状況により最適処理となる候補を選べるような実行
形式を作成する最適アクセス手順生成処理3]1 とか
ら成っている。 また、上記問合せ実行処理302は、前過程で選択され
た内部処理手順を解釈・実行する解釈実行312から成
っている。データベース304には、テーブル306″
p3よび統計情報管理テーブル305が蓄積されている
。統計情報管理テーブル305は、データベース304
の各テーブルを構成するカラム値の出現回数情報を設定
している。 第4図(a)〜(f)は、上述の各処理の詳細なフロー
チャートである。同図(a)に示す問合せ解析処理30
7は、問合せコマンドの構文解析、意味解析を実行しく
ステップ401)、コマンドに出現する条件式を、CN
F (Conjunctive Normal Fo
rm)かDNF(Disjunctive Norma
l Form)に変換する(ステップ402)。述語選
択率推定処理308は、同図(b)の如く、当述語のカ
ラム値分布情報があれば、選択率を算出する(ステップ
4月と412)。 当述語のカラム値分布情報がなければ、述語の種類に応
じて、予め設定しているデフォルト値を選折率として登
録する(ステップ411と413)。 また、アクセスバス剪定処理309は、同図(C)の如
く、問合せの条件式に出現するカラムのインデクスを候
補として登録する(ステップ421)。次に、リレーシ
ョンスキャンを候補として登録する(ステップ422)
。選択率の小となる述語のインデクス順に、優先度を高
くする(ステップ423)。更に、CPU性能、cpu
性能からアクセスバス剪定基準を決定する(ステップ4
24)。最後に、単一/複数インデクスを組み合せたア
クセスバスで選択率が上記基準より小であるものだけを
、候補として登録する(ステップ425)。 処理手順決定処理310は、上記各候補について対応す
るコスト評価式の計算を行い(ステップ431)、評価
値の一番小さいものを処理手順として決定する(ステッ
プ432)。最適アクセス手順生成処理311では、決
定した処理手順とカラム値の出現回数情報9選択率から
中間結果等を割当てるバッファサイズを算出し、登録す
る(ステップ441)。 次に、処理手順を実行するための実行形式を生成する(
ステップ442)。 そして、ここで作成する中間結果が、上記ステップ44
2で算出したバッファに入り切らない場合には、それ以
降の処理をバッファの状況により変更可能とする内部処
理を作成する。すなわち、問合せ実行途中に作成する中
間結果が上述のステップ442で算出したバッファに入
りきらない場合、それ以降の処理をバッファの状況によ
り変更可能とする内部処理を作成する。ここで用い得る
ジョイン処理には、ネストループジョイン、ソートマー
ジジョイン、フィルタリング処理およびブリジョインフ
ィルタリング処理を利用したネストブロックジョイン等
が挙げられる。例えば、第3図に示した問合せコマンド
303の結合処理において、ネストブロックジョイン処
理が選ばれたとする。 この場合、ネストループ結合は、第5図に示す如く、テ
ーブルの結合を行うカラムの値504.508とそのカ
ラムの値に対応するデータをポイントする値503.5
07で構成される3時リストを、中間結果り、502.
L、506として作成しくこれを、「フィルタリン
グ処理Jと呼ぶ)、一方の中間結果のテーブルをカラム
の値504でソートし、このソーティングの結果作成さ
れたテーブルL、516(これを、「内側テーブル」と
呼ぶ)と、他方の中間結果のテーブル506(これを、
「外側テーブル」と呼ぶ)のカラム値510.508を
順番に突き合せる(これを、「プリジョインフィルタリ
ング処理Jという)ことにより、補助情報512を作成
する。 第5図(a)で言えば、L 、 506のC,508の
値が、L、516のC,510の値の何番目に該当する
かをチエツクし、その結果を補助情報512として作成
することになる。第5図(b)のり、516のC,51
0の値。 L 、 506のC、508の値の場合、補助情報51
2は、第5図(c)に示すようになる。この補助情報5
12から、結合処理を行うことができる。本結合処理時
に必要なバッファサイズは、この問合せ実行時に使用可
能なバッファサイズをMとすると、内側テーブルのバッ
ファサイズM、は、 で、外側テーブルのバッファサイズM0は、M6=M
Ml で示す式で求めることができる。ここで、Fはテーブル
の選択率、■はテーブルのサイズ、↑↑はCeilin
g Functionとして使う。 上述の結合処理は、フィルタリング処理結果が主記憶上
のバッファにすべて入りきらない場合、処理によっては
ディスクへの入出力要求が多発して、効率の悪い処理と
なってしまうことがあり得る。そこで、ネストブロック
結合が処理手順として選ばれた場合には、主記憶のバッ
ファ数を越えたフィルタリング結果が作られたときにそ
れ以降の内部処理手順を変更するように、第1図に示す
如き実行形式を作成する。以下、上述の第1図および第
6図〜第9図に示す詳細なフローチャートにより、更に
説明する。 (1)L、、 L、の両フィルタリング結果がバッファ
にすべて入った場合の処理(第1,6図)。 まず、テーブルT、 601のフィルタリング処理を行
い(ステップ1010) 、フィルタリング結果を内側
テーブルバッファ600に格納できるか否かをチエツク
する(ステップ1020.■)。 内側テーブルバッファ600に格納できる場合(■)は
、ステップ1100でテーブルT、 606のフィルタ
リング処理を行う。次に、テーブルT、 606のフィ
ルタリング結果が外側テーブルバッファ802に格納で
きるか否かをチエツクしくステップ111Oおよび■)
、格納できる場合(■)には、ステップ1170で、フ
ィルタリング結果L 、 800とり、900のサイズ
を比較する。 L 、 800の方が小さい場合には、L 、 800
をカラムC,の値でソートしくステップ+180.■)
、前述のプリジョインフィルタリング処理を行い(ステ
ップl+90)、その結果出力される補助情報から結合
処理を行う(ステップ1200)。 同様に、L、900の方が小さい場合は、L、900の
バッファを内側テーブルバッファ、LaO2のバッファ
を外側テーブルバッファとして、L、900をカラムC
1の値でソートしくステップ!210)、前述のプリジ
ョインフィルタリング処理を行い(ステップ1220)
、結合処理を行う(ステップ+230)。 (2)L、がバッファに入らなかった場合の処理(第1
.7図)。 まず、テーブルT、 601のフィルタリング処理を行
い(ステップ1010)、フィルタリング結果を内側テ
ーブルバッファ600に格納できるか否かをチエツクす
る(ステップ+020.■)。 内側テーブルバッファ600に格納できる場合(■)に
は、ステップ+100でテーブルT、 606のフィル
タリング処理を行う。次に、テーブルT、 606のフ
ィルタリング結果が外側テーブルバッファ802に格納
できるが否かをチエツクしくステップ111oおよび■
)、格納できない場合、L、を−時ファイルとしてディ
スクに出力しくステップ112oおよび■)、L 80
0はカラムC8の値でソートする(ステップ+130お
よび■)。そして、L、607を外側テーブルバッファ
802に入るところまで読み込み、前述のプリジョイン
フィルタリング処理を行って(ステップ+140)、上
述の外側テーブルバッファ802に入っていたところま
での結合処理を行う(ステップ+150)。 次に、L 、 607の前回外側テーブルバッファに読
み込まれたレコードの次からを、外側テーブルバッファ
802に読み込み、同様に、プリジョインフィルタリン
グ処理および結合処理(ステップ+140と1150)
を、L、607の全データについて繰り返し行う(ステ
ップ+160)。 第7図、第10図(C)で説明すると、L、607は外
側テーブルバッファ802に入りきらず、L 、 、
803とり、ヨ804の二回に分けて外側テーブルバッ
ファ802に読み込むことができるものとすると、第1
O図(c)に示す如く、まず、外側テーブルバッファ8
02にり、、 803を読み込み、内側テーブルバッフ
ァ600内のり、801とり、 803とのプリジョ
インフィルタリング処理を行う(ステップ1406)。 そして、外側テーブルバッファ802にL□804を読
み込み、L。 801とL 、 、 804とのプリジョインフィルタ
リング処理を行う(ステップ1407)。 (3)L、がバッファに入らなかった場合の処理(第1
.8図)。 まず、テーブルT、 601のフィルタリング処理を行
い(ステップ+010)、フィルタリング結果を内側テ
ーブルバッファ600に格納できるか否かをチエツクす
る(ステップ+020.■)。 格納できない場合、L 、 602を3時フアイルとし
てディスクに出力しくステップ+030.■)、テーブ
ルT、 606のフィルタリング処理を行う(ステップ
+040)。そして、上述のフィルタリング結果り、7
00が、内側テーブルバッファ600に格納できるが否
かをチエツクする(ステップ+050および■)。フィ
ルタリング結果L 、 700が、内側テーブルバッフ
ァ600に格納できる場合(■)には、L、700をカ
ラムC。 の値でソートする(ステップ+060および■)。 そして、L 、 602を外側テーブルバッファ802
に入るところまで読み込み、プリジョインフィルタリン
グ処理を行い(ステップ+070)、外側テーブルバッ
ファ802に入っていたところまでの結合処理を行う(
ステップ+080)。 次に、L 、 602の、前回外側テーブルバッファ8
02に読み込まれたレコードの次からを、外側テーブル
バッファ802に読み込み、同様に、プリジョインフィ
ルタリング処理、結合処理(ステップ1070および+
080)を、L 、 602の全データについて繰り返
し行う(ステップ!090)。 第8図、第10図(b)で説明すると、L 、 602
は外側テーブルバッファ802に入りきらず、L 、
、 604とり、、605の二回に分けて外側テーブル
バッファ802に読み込むことができるものとすると、
第1O図(b)に示す如く、まず、外側テーブルバッフ
ァ802にり、、604を読み込み、内側テーブルバッ
ファ600内のり、701とL604とのプリジョイン
フィルタリング処理を行う(ステップ+404)。そし
て、外側テーブルバッファ802にL 、 、 605
を読み込み、L。 701とり、、605とのプリジョインフィルタリング
処理を行う(ステップ1405)。 (4)L、、 L、の両フィルタリング結果ともにバッ
ファに入らなかった場合の処理(第1.9図)。 まず、テーブルT、 601のフィルタリング処理を行
い(ステップ+010)、フィルタリング結果を内側テ
ーブルバッファ600に格納できるか否かをチエツクす
る(ステップ+020.■)。 格納できない場合、L 、 602を3時フアイルとし
てディスクに出力しくステップ+030と■)、テーブ
ルT、606のフィルタリング処理を行い(ステップ1
040)、フィルタリング結果L1607が内側テーブ
ルバッファ600に格納できるか否かをチエツクする(
ステップ1050と■)。 フィルタリング結果L 、 607が内側テーブルバッ
ファ600に格納できないとき、L 、 607を3時
フアイルとしてディスクに出力しくステップ1340と
■)、L 、 602のサイズと L、607(7)サ
イズを比較する(ステップ+240)。 (i ) L、602< L、607の場合L 、 6
02をカラムC,の値でソートし、L、603とする(
ステップ1250と■)。そして、L、603を内側テ
ーブルバッファ600に入るところまで読み込み、Lj
607も外側テーブルバッファ802に入るところまで
読み込み、プリジョインフィルタリング処理を行う(ス
テップ1260)。 そして、L、603. L、607の内側テーブルバッ
ファ600.外側テーブルバッファ802に入っている
ところだけの結合処理を行う(ステップ+270)。次
に、L、607の前回外側テーブルバッファ802に読
み込まれたレコードの次からを、外側テーブルバッファ
802に読み込んで、同様に、プリジョインフィルタリ
ング処理および結合処理(ステップ1260および+2
70)を、L、607の全データについて繰り返し実行
し、次に、L、603の前回内側テーブルバッファ60
0に読み込まれたレコードの次からを、内側テーブルバ
ッファ600に読み込んで、同様に、L、603の全デ
ータについて、プリジョインフィルタリング処理(ステ
ップ+260)および結合処理(ステップ1270)を
、繰り返し実行する(ステップ+280)。 第9図、第1O図(a)で説明すると、L 、 603
は内側テーブルバッファ600に入りきらず、L、、6
04とり、1605の二回に分けて内側テーブルバッフ
ァ600に読み込むことができ、また、L 、 607
は外側テーブルバッファ802に入りきらず、L 、
、 608〜L、、611の四回に分けて外側テーブル
バッファ802に読み込むことができるものとすると、
第10図(a)に示す如く、まず、内側テーブルバッフ
ァ600にり、、 604を、また、外側テーブルバッ
ファ802にり、、 608を読み込み、内側テーブル
バッファ600内のL□604とL 、 、 608と
のプリジョインフィルタリング処理を行い(ステップ1
400)、そして、L 、 、 608と同様に、L、
、609〜L 、、611を順番に外側テーブルバッフ
ァ802に読み込み、L□604とのプリジョインフィ
ルタリング処理を行う(ステップ+401)。次に、内
側テーブルバッファ600にり、、605を読み込み、
外側テーブルバッファ802にL 、 、 608を読
み込み、L o605とL 、 、 608とのブリジ
ョインフィルタリング処理を行う(ステップ1402)
。同様に、L 、 、 609〜L、611を外側テー
ブルバッファ802に読み込み、L 、 、 605と
のプリジョインフィルタリング処理を行う(ステップ1
403)。 (u)L、602≧L、607の場合 り、607をカラムC,の値でソートし、・L、603
とする(ステップ1290)。そして、L 、 603
を内側テーブルバッファ600に入るところまで読み込
み、L 、 607も外側テーブルバッファ802に入
るところまで読み込み、プリジョインフィルタリング処
理を行う(ステップ+300)。そして、Lお603.
L、607の内側テーブルバッファ600.外側テー
ブルバッファ802に入っているところだけの結合処理
を行う(ステップ1310)、、次に、L 、 607
の曲回外側テーブルバッファ802に読み込まれたレコ
ードの次からを、外側テーブルバッファ802に読み込
んで、同様に、ブリジョインフィルタリング処理および
結合処理(ステップ1300と1310)を、 Li2
O2の全データについて繰り返し実行し、次に、L、6
03の前回内側テーブルバッファ600に読み込まれた
レコードの次からを、内側テーブルバッファ600に読
み込んで、同様に、L、603の全データについて、プ
リジョインフィルタリング処理(ステップ1300)お
よび結合処理(ステップ1310)を、繰り返し実行す
る(ステップ+320)。 以上が、第4図(e)に示した処理手順実行のための実
行形式生成(ステップ442)において、作成した中間
結果がバッファに入りきらない場合の内部処理手順であ
る。解析実行処理312は、実行形式の処理手順を解釈
し、問合せコマンドを実行する(ステップ451)。 以上、処理フローを説明したが、本発明のプリプロセス
処理方法は、統計情報を用いた規則とコスト評価との併
用に限らず、適当なデータベース参照特性情報を与える
内部処理手順が得られるものであれば、例えば、コスト
評価のみ、規則利用のみ、コスト評価と規則利用の併用
等の、最適化処理を行うDBMSにも適用できる。 上記データベース参照特性は、入力された問合せから、
DBMSが自動的に判断されるのはもちろん、ユーザか
らの指定で決定されても良い。また、問合せで出現する
条件式によっては、バッファの状況により、問合せ実行
時に内部処理手順を選択する必要がないという判断が最
適アクセス手順生成で行われれば、従来のプリプロセス
処理と同様に、唯一の実行形式の内部処理手順を生成す
るのは、言うまでもない。 すなわち、本発明によれば、実行時に代入される値によ
って最適となる内部処理手順が異なる問合せに対して、
予め内部処理手順を実行形式に展開していることから、
CPU負荷が軽減され、また、実行時のリソースの状況
により、それ以降行う内部処理手順が選択でき、CPU
負荷、I10回数も軽減されるという効果もある。 本発明にいうリソースは、上述の主記憶の割当てだけで
はなく、マルチプロセッサシステム上で動作する際のC
PUの割当て、データベース専用ハードウェア接続時の
専用ハードウェアへのデータベース処理割当て、ネット
ワーク上の別のコンピュータに接続されたディスク内デ
ータのアクセス処理等にも適用可能である。また、本発
明の処理手順の実行形式は、別CPUおよび別コンピュ
ータ上の環境で実行されることを想定した内部処理手順
を作成することにより、プリプロセス処理が行われたコ
ンピュータ上で実行される必要がなくなるものである。 更に、プリプロセス処理時に、問合せ実行時のリソース
の状況に応じて考えられる処理手順を複数作成して実行
形式に変換しておき、問合せ実行時にリソースの状況に
応じて処理を選択して実行することも考えられる。例え
ば、問合せ実行時に選択されていたネストブロック結合
が、割当てられるバッファサイズによっては、マージソ
ート結合を行った方が速い場合、ネストブロック結合処
理を、マージソート結合に変更することも可能である。 〔発明の効果〕 以上、詳細に説明した如く、本発明によれば、データベ
ースに対するユーザからの問合せを解析して、対応する
内部処理手順をプリプロセス処理時に決定し、問合せ実
行処理時に当該内部処理手順を実行するデータベースシ
ステムにおいて、プリプロセス処理時に入力された問合
せの解析結果を基に問合せ単位に割当てるべきリソース
を算出し、当該リソースの割当ておよび解放の制御を行
う内部処理手順を作成するステップと、前記内部処理手
順で割当てるリソースの使用状況に対応して実行すべき
内部処理手段を変更するステップとを有する如く構成し
たので、問合せ処理の性能向上を実現可能とするデータ
ベース処理方法を実現できるという顕著な効果を奏する
ものである。
第1図は本発明に係るデータベース処理方法において作
成される処理手順の一例を示すフローチャート、第2図
は本発明が適用されるハードウェア構成の一例を示す図
、第3図は本発明が適用されたDBMSの処理例を示す
図、第4図はその詳細なフローチャート、第5図はネス
トブロックジョイン結合処理の説明図、第6図〜第9図
は本発明が適用された場合に作成される処理手順のフロ
ーチャートの例の詳細図、第10図はフィルタリング結
果がバッファに入らなかった場合のネストブロック結合
処理の説明図である。 200:中央処理装置(CPU)、210 :主記憶、
220:チャネル装置、230:ディスク、300:D
BMS。 301:プリプロセス処理、302 : 717合せ実
行処理、303:問合せコマンド、3o4:データベー
ス、3o7:問合せ解析処理、308:述語選択率推定
処理、3o9:アクセスバス剪定処理、3I吐処理手順
決定処理、311:最適アクセス手順生成処理、312
:解釈実行。 第 1 図(その2) PRJ:ブリジョインフィルタリング処理筒 図 03 1り 第 図 第 4 図(その2) (C) 第 図(その4) (f) 第 図(その1) 第 5 図(その2) (c) 12 第 図(その1) (a) 第 1 図(その2) (b) 内側チーフル(ッファ外何テーフ〉しく、ッファ(c)
成される処理手順の一例を示すフローチャート、第2図
は本発明が適用されるハードウェア構成の一例を示す図
、第3図は本発明が適用されたDBMSの処理例を示す
図、第4図はその詳細なフローチャート、第5図はネス
トブロックジョイン結合処理の説明図、第6図〜第9図
は本発明が適用された場合に作成される処理手順のフロ
ーチャートの例の詳細図、第10図はフィルタリング結
果がバッファに入らなかった場合のネストブロック結合
処理の説明図である。 200:中央処理装置(CPU)、210 :主記憶、
220:チャネル装置、230:ディスク、300:D
BMS。 301:プリプロセス処理、302 : 717合せ実
行処理、303:問合せコマンド、3o4:データベー
ス、3o7:問合せ解析処理、308:述語選択率推定
処理、3o9:アクセスバス剪定処理、3I吐処理手順
決定処理、311:最適アクセス手順生成処理、312
:解釈実行。 第 1 図(その2) PRJ:ブリジョインフィルタリング処理筒 図 03 1り 第 図 第 4 図(その2) (C) 第 図(その4) (f) 第 図(その1) 第 5 図(その2) (c) 12 第 図(その1) (a) 第 1 図(その2) (b) 内側チーフル(ッファ外何テーフ〉しく、ッファ(c)
Claims (1)
- 【特許請求の範囲】 1、データベースに対するユーザからの問合せを解析し
て、対応する内部処理手順をプリプロセス処理時に決定
し、問合せ実行処理時に当該内部処理手順を実行するデ
ータベースシステムにおいて、プリプロセス処理時に入
力された問合せの解析結果を基に問合せ単位に割当てる
べきリソースを算出し、当該リソースの割当ておよび解
放の制御を行う内部処理手順を作成するステップと、前
記内部処理手順で割当てるリソースの使用状況に対応し
て実行すべき内部処理手段を変更するステップとを有す
ることを特徴とするデータベース処理方法。 2、問合せ実行処理時に、プリプロセス処理で問合せ単
位に算出された割当てられるべきリソースと当該問合せ
に割当て可能なリソースとを比較し、要求するリソース
がすべては割当て不可能な場合、当該問合せに配分する
リソースを変更し、かつ、当該リソースの割当ておよび
解放の制御を行うことを特徴とする請求項1記載のデー
タベース処理方法。 3、データベースに対するユーザからの問合せを解析し
て、対応する内部処理手順をプリプロセス処理時に決定
し、問合せ実行処理時に当該内部処理手順を実行するデ
ータベースシステムにおいて、プリプロセス処理時に入
力された問合せの解析結果を基に、問合せ実行時のリソ
ースの状況に対応して実行すべき処理手順を複数作成し
ておき、問合せ実行時にリソースの状況により前記複数
の処理手順の中から最適なものを選択して実行するステ
ップを有することを特徴とするデータベース処理方法。 4、データベースに対するユーザからの問合せを解析し
て、対応する内部処理手順をプリプロセス処理時に決定
し、問合せ実行処理時に当該内部処理手順を実行するデ
ータベースシステムにおいて、プリプロセス処理時に入
力された問合せの解析結果を基に問合せ単位に割当てる
べきリソースを算出し、当該リソースの割当ておよび解
放の制御を行う内部処理手順を作成するステップと、前
記内部処理手順で割当てるリソースの使用状況に対応し
て実行すべき内部処理手段を変更するステップとを有し
、前記内部処理手順作成ステップでは、プリプロセス処
理時に入力された問合せの解析結果を基に、問合せ実行
時のリソースの状況に対応して実行すべき処理手順を複
数作成しておき、問合せ実行時にリソースの状況により
前記複数の処理手順の中から最適なものを選択して実行
することを特徴とするデータベース処理方法。 5、プリプロセス処理時に、別環境で問合せが実行され
ることを想定した内部処理手順を作成することを特徴と
する請求項1〜4のいずれかに記載のデータベース処理
方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1328906A JPH03189742A (ja) | 1989-12-19 | 1989-12-19 | データベース処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1328906A JPH03189742A (ja) | 1989-12-19 | 1989-12-19 | データベース処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03189742A true JPH03189742A (ja) | 1991-08-19 |
Family
ID=18215411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1328906A Pending JPH03189742A (ja) | 1989-12-19 | 1989-12-19 | データベース処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03189742A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009069988A (ja) * | 2007-09-11 | 2009-04-02 | Toshiba Corp | データベース処理装置、方法及びプログラム |
-
1989
- 1989-12-19 JP JP1328906A patent/JPH03189742A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009069988A (ja) * | 2007-09-11 | 2009-04-02 | Toshiba Corp | データベース処理装置、方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5806059A (en) | Database management system and method for query process for the same | |
US6556988B2 (en) | Database management apparatus and query operation therefor, including processing plural database operation requests based on key range of hash code | |
EP0326927B1 (en) | Method and apparatus for processing a database | |
US5864840A (en) | Evaluation of existential and universal subquery in a relational database management system for increased efficiency | |
US5745746A (en) | Method for localizing execution of subqueries and determining collocation of execution of subqueries in a parallel database | |
JP2510004B2 (ja) | リレ―シヨナル・デ―タベ―ス・システムの問合せ文処理方法 | |
US6834279B1 (en) | Method and system for inclusion hash joins and exclusion hash joins in relational databases | |
JPH03189742A (ja) | データベース処理方法 | |
JP2780996B2 (ja) | 問い合わせ最適化処理方法 | |
Jarke et al. | Introduction to query processing | |
USRE37965E1 (en) | Method for localizing execution or subqueries and determining collocation of execution of subqueries in a parallel database | |
JP3732655B2 (ja) | データベース管理システム、データベース管理装置および問い合わせ処理方法 | |
JP3668243B2 (ja) | データベース管理システム | |
JP4422697B2 (ja) | データベース管理システムおよび問合せの処理方法 | |
JP3667997B2 (ja) | データベース管理装置 | |
JPH01211029A (ja) | データベース操作言語処理方式 | |
JPH10326214A (ja) | データベース管理システムおよび問合せの処理方法 | |
JPH02234270A (ja) | データベース処理方法 | |
JP3819695B2 (ja) | データベース管理システムおよび問合せの処理方法 | |
JPH0778118A (ja) | 資源競合回避スケジューリング方法 | |
JPS6318777B2 (ja) | ||
CA2159270C (en) | Method for localizing execution of subqueries and determining collocation of execution of subqueries in a parallel database | |
JP2001147847A (ja) | データベース管理システムおよび問合せの処理方法 | |
Fritchey et al. | Execution Plan Generation | |
JPH09231115A (ja) | データベース処理方法 |