JP5283675B2 - データベース管理システム及び方法 - Google Patents

データベース管理システム及び方法 Download PDF

Info

Publication number
JP5283675B2
JP5283675B2 JP2010214239A JP2010214239A JP5283675B2 JP 5283675 B2 JP5283675 B2 JP 5283675B2 JP 2010214239 A JP2010214239 A JP 2010214239A JP 2010214239 A JP2010214239 A JP 2010214239A JP 5283675 B2 JP5283675 B2 JP 5283675B2
Authority
JP
Japan
Prior art keywords
task
query
database
tasks
data read
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.)
Active
Application number
JP2010214239A
Other languages
English (en)
Other versions
JP2011034575A (ja
Inventor
優 喜連川
和生 合田
Original Assignee
優 喜連川
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 優 喜連川 filed Critical 優 喜連川
Priority to JP2010214239A priority Critical patent/JP5283675B2/ja
Publication of JP2011034575A publication Critical patent/JP2011034575A/ja
Application granted granted Critical
Publication of JP5283675B2 publication Critical patent/JP5283675B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データベース管理技術に関わる。
例えば、特開2004−192292号公報には、バーチャリゼーション環境上にDB(データベース)を構築したシステムにおける管理サーバが開示されている。その管理サーバは、DBMS(データベース管理システム)からDB処理の実行計画や処理優先度等のDB処理情報を取得し、その情報を基にこれからアクセスが行われるデータとそのアクセス順を予測し、予測結果に基づいて近い将来アクセスが行われるデータを記憶装置のキャッシュ上に読み出すよう指示し、最も近い将来にアクセスが行われるデータを自サーバのキャッシュメモリに読み出す。
特開2004−192292号公報
ところで、通常、DBMSは、クエリを受け付け、クエリを受け付けた場合には、そのクエリを実行してその実行結果を出力するようになっている。クエリの実行結果を出力するまでには、複数段階のデータベースオペレーションが実行される場合がある。それら複数段階のデータベースオペレーションは、一般に、所定の順序で実行されるようになっており、それら複数段階のデータベースオペレーションのうちの少なくとも一つのデータベースオペレーションでは、記憶装置に対して読出し要求を発行する必要のある場合がある。以下、図1A〜図1Cを参照して一つの具体例を説明する。
例えば、DBMSが、DBMSの上位にあるコンピュータプログラム(例えばアプリケーションプログラム)からクエリを受け付けた場合に、そのクエリの実行プラン(以下、単に「クエリプラン」と言う)として、図1Aに記載のクエリプランを生成したとする。そして、図1Bに記載のパート表23A、ラインアイテム表23B、オーダ表23C及び各種インデックス25が、記憶装置(例えば、DBMSを備えた情報処理端末に通信可能に接続された外部記憶装置)に格納されているとする。
図1Aに例示したクエリプランによれば、パート表23Aから未読の行がなくなるまで、データベースオペレーション(以下、「OP」と略記)1〜5が繰り返される。OP1は、初期データベースオペレーションであり、パート表23A(図1B参照)から1行読む処理である。OP2は、読まれた行中のPIDに対応するラインアイテム表23B(図1B参照)のポインタ(rowid)をラインアイテムインデックス25Aで検索する処理である。OP3は、得られたポインタでラインアイテム表23Bをフェッチし、OIDでフィルタをかける処理(例えば、OIDが504未満のもののみを出力する処理)である。OP4は、出力されたOIDに対応するオーダ表23C(図1B参照)のポインタ(rowid)をオーダインデックス25Bで検索する処理である。OP5は、得られたポインタでオーダ表23Cをフェッチし、結果としてリターンする処理である。以上のようなOP1〜OP5が繰り返されることにより、図1Cに例示するようなクエリ実行結果を、クエリの発行元のコンピュータプログラムに返すことができる。
上記のようにして一つのクエリを実行する場合には、複数のOPが繰り返し実行され、且つ、各回の実行において、一つのOPが終了してから次のOPが開始される。このため、例えば、或るOP(例えばOP3)において、読出し要求が発行された場合には、その読出し要求に応答してデータが読み出されるまで処理が中断してしまう。故に、一つのクエリの実行に要する時間が長くなってしまう。
また、上記のようにして一つのクエリを実行する場合には、記憶装置をランダムアクセスすることがある。具体的には、ラインアイテム表23B、オーダ表23C及びインデックスの読み込みがランダムになってしまうことがある。より具体的には、例えば、ラインアイテム表23Bの一行目にアクセスした後、6行目及び9行目もパート表23Aの行に対応した行であるにも関わらず、一旦12行目にアクセスした後に、6行目へのアクセスが行われてしまう。一つのクエリの実行の際、DBMSから読出し要求が複数回発行されることになるが、上記のようなランダムアクセスが行われると、全体としてのデータ読出し待ち時間が長くなってしまう。
従って、本発明の一つの目的は、一つのクエリの実行に要する時間を短縮化することにある。具体的には、例えば、一つのクエリの実行における全体としてのデータ読出し待ち時間を短縮化することにある。
本発明の他の目的は、後述の説明から明らかになるであろう。
本発明の一つの観点に従うデータベース管理システムは、クエリを受け付けるクエリ受付部と、前記受け付けたクエリを実行し、その際、必要に応じて、記憶装置(例えば主記憶装置)からデータベースのデータを読み出すためのデータ読出し要求を発行するクエリ実行部とを備える。前記クエリ実行部は、動的にタスクを生成していき、生成された複数のタスクを並行して実行する。前記クエリ実行部は、各タスクの実行において、前記データベースのデータを必要とする都度に、そのデータを取得するためのタスクを生成する。また、前記クエリ実行部は、該生成されたタスクの実行において、必要に応じて、前記データベースからデータを読み出すための前記データ読出し要求を発行する。
このデータベース管理システムの具体例としては、以下の通りである。すなわち、データベース管理システムは、上位のコンピュータプログラム(例えば、アプリケーションプログラム)からクエリ(例えばSQL)を受け付けるクエリ受付部と、該受け付けたクエリを実行するプランであるクエリプランを生成するクエリプラン生成部と、該生成されたクエリプランに従いクエリを実行するクエリ実行部とを備えることができる。クエリプランは、例えば、データ読出しを伴う一つ以上のデータベースオペレーションで構成され、該データベースオペレーション間の実行順序には木構造の順序関係が存在する。クエリ実行部は、他のデータベースオペレーションに依存しない初期データベースオペレーションを抽出してタスクを割り当てるステップと、該割り当てられたタスクを実行するステップとで構成することができる。
該データベースオペレーションに対応したタスクを実行するステップでは、以下の(A)〜(D)のステップ、
(A)データ読出し処理に対して複数の独立したタスクを生成するステップ、
(B)該生成された複数のタスクのデータ読出し処理において、外部記憶装置からのデータ読出しが必要な場合、オペレーティングシステムにデータ読出し要求を発行するステップ、
(C)該データ読出しが完了したタスクから当該データベースオペレーションの実行を再開するステップ、
(D)該データベースオペレーションに依存した次のデータベースオペレーションがある場合、該次のデータベースオペレーションを実行するステップ、
を実行することができる。
第一の態様では、前記クエリ実行部は、所定の状況にあるタスクの現存数が所定数に達している場合には、新たなタスクの生成を待ち、前記現存数が減った場合に、前記新たなタスクを生成することができる。所定の状況とは、例えば、単に現存している状況であっても良いし、データ取得待ちの状況であっても良い。
第二の態様では、データベース管理システムは、読出し順序制御部を更に備えることができる。読出し順序制御部は、前記クエリ実行部から発行された複数個のデータ読出し要求を受け、受け付けた複数個のデータ読出し要求を、前記複数個のデータ読出し要求を受け付けた順序とは異なる、全体としてのデータ読出し時間長(すなわち、複数個のデータ読出し要求に応じてデータが読み出されるまでの時間長)を短縮化するための順序で発行することができる。
具体的には、例えば、データベース管理システムは、前記クエリ実行部からのデータ読出し要求を受け付け、そのデータ読出し要求をオペレーティングシステムに発行する読出し最適化部を備えることができる。読出し最適化部は、受け付けたデータ読出し要求をキューイングし、データ読出し要求を発行するタイミングを制御するための条件(例えば、後述する第二実施例のバッチスケジューリング駆動条件)が満たされた場合に、キューイングされた複数のデータ読出し要求の出力順序を変更することで、データ読出し時間を最適化することができる。
第三の態様では、データベース管理システムは、優先順位の異なる複数のキューを更に備えることができる。前記クエリ実行部は、前記生成されたタスクの実行により、前記複数のキューのうち、所定の条件に適合する優先度に対応したキューに、前記データ読出し要求を格納することができる。前記読出し順序制御部は、優先度の高いキューに格納されているデータ読出し要求ほど優先的に発行することができる。
具体的には、例えば、読出し最適化部は、スケジュール対象外を含む複数の読出し要求キューを有し、読出し要求キュー毎に設定された処理手順に従い、データ読出し要求を発行することができる。この場合において、タスクを実行することによってデータ読出し要求を読出し最適化部へ発行する際に、以下の(a)〜(c)の処理、
(a)読出し要求に対するスケジューリングフラグを付与する処理、
(b)該スケジューリングフラグの値に応じて複数の読出し要求キューの中から一つの読出し要求キューを選択する処理、
(c)選択した読出し要求キューへ読出し要求を格納する処理、
を実行することができる。読出し最適化部では、データ読出し要求をキューに保管し続ける時間長を変更することができる。
第四の態様では、上述の第三の実施態様において、前記読出し順序制御部は、所定のコマンドを受け付けた場合には、或る優先度のキューに格納されている少なくとも一つの読出し要求を別の優先度のキューに移動させることができる。
具体的には、例えば、データベース管理システムは、スケジュール対象の読出し要求キューにキューイングされたデータ読出要求に対してスケジュールキャンセルコマンドを発行することにより、該データ読出し要求をスケジュール対象外の読出し要求キューに移すことができる。
第五の態様では、上述の第三の態様において、前記クエリ実行部は、前記受け付けたクエリの実行プランの内容、又は、前記受け付けたクエリの実行に求められる性能要件に応じて、どの優先度のキューに読出し要求を格納するかを決定することができる。
第六の態様では、上述の第三の態様において、データベース管理システムは、タスク管理部を備えることができる。タスク管理部は、クエリ実行プランに基づいて、残存ステップ数を計算し、計算された残存ステップ数の少ないタスクの優先度を上げることができる。この場合において、前記クエリ実行部が、優先度の上がったタスクを実行することにより発行される読出し要求を、該優先度に対応するキューに格納することができる。ここで、残存ステップとは、例えば、残存するデータオペレーションの数とすることができる。
第七の態様では、前記クエリ実行部は、生成された各タスクの実行において、前記データベースのデータの取得を待ち、該データを取得した後、データの取得待ちを開始した順序と同じ順序で、タスクの実行を再開することができる。これは、上記第二の態様においても行うことができる。
本発明の別の観点に従うコンピュータシステムは、上述したデータベース管理システムと、読出し順序制御部とを備える。読出し順序制御部は、データベース管理システムから発行された複数個のデータ読出し要求を受け付け、受け付けた複数個のデータ読出し要求を、前記複数個のデータ読出し要求を受け付けた順序とは異なる、全体としてのデータ読出し時間長を短縮化するための順序で発行する。
本発明に従うデータベース管理システムによれば、一つのクエリの実行に要する時間長を短縮化することができる。
図1Aは、クエリプランの一例を示す。図1Bは、パート表、ラインアイテム表及びオーダ表の構成例と表同士の関連とを示す。図1Cは、クエリの実行結果として出力される情報の例を示す。 図2は、本発明の第一実施例に係るシステムの構成例を示す。 図3は、クエリ実行部9が行う処理の流れの一例を示す。 図4Aは、図3のS2のタスク生成待ち処理において行われる処理の流れの一例を示す。図4Bは、図3のS11のデータ取得処理において行われる処理の流れの一例を示す。 図5Aは、従来のクエリ実行の流れの一例を示す。図5Bは、本発明の第一実施例におけるクエリ実行の流れの一例を示す。 図6は、本発明の第二実施例に係るシステムの構成例を示す。 図7Aは、本発明の第二実施例で行われるデータ取得処理の流れの一例を示す。図7Bは、I/O要求発行処理の流れの一例を示す。 図8は、I/O最適化部27の説明図である。 図9Aは、I/O最適化部27が行う処理の流れの一例を示す。図9Bは、即時発行処理の流れの一例を示す。 図10Aは、スケジュールキャンセル処理の流れの一例を示す。図10Bは、バッチスケジュール処理の流れの一例を示す。 図11A及び図11Bは、本発明の第一実施例のDBMS5によって期待される効果の一例の説明図である。具体的には、図11Aは、第一実施例におけるI/O要求の発行とデータの読み出しの流れの一例を示す。図11Bは、図11Aに示した流れにおけるディスクシークイメージの一例を示す。 図12A及び図12Bは、本発明の第二実施例のDBMS5によって期待される効果の一例であって、即時発行処理が行われない場合の説明図である。 図13A及び図13Bは、本発明の第二実施例のDBMS5によって期待される効果の一例であって、即時発行処理が行われる場合の説明図である。 図14Aは、本発明の第三実施例におけるデータ取得待ち表の構成例を示す。図14Bは、生成された子タスクが第一実施例で行う処理との第一の相違部分を示す。図14Cは、生成された子タスクが第一実施例で行う処理との第二の相違部分を示す。 図15Aは、データ取得処理の開始順序、データの取得順序、及びタスクの再開順序の関係の一例を示す。図15Bは、図15Aにおけるディスクシークイメージの一例を示す。
以下、図面を参照して、本発明についての幾つかの実施例を説明する。
図2は、本発明の第一実施例に係るシステムの構成例を示す。
データベースサーバ1と、データベースサーバ1の外に存在する記憶装置である外部記憶装置19とが、通信ネットワーク17を介して通信可能に接続されている。
外部記憶装置19は、記憶資源を有する装置であればどのような装置であっても良い。例えば、外部記憶装置19は、ファイルサーバであっても良いし、単体のディスクドライブ(例えばハードディスクドライブ)であっても良いし、複数のディスクドライブを備えた記憶装置システムであっても良い。外部記憶装置19は、データベース21を有し、データベース21内に、複数の電子的な索引25、25、…と、複数の電子的な表23、23、…とを記憶することができる。各索引25は、例えば、或る表における各行と別の表における各行との繋がりを表すポインタを複数個備えるデータ(例えば、図1Bにおけるインデックス25A、25B)であり、B-木インデクスなどが用いられる。各表23は、複数の行要素から成る行を複数個有するデータ(例えば、図1Bにおけるパート表23A、ラインアイテム表23B又はオーダ表23C)である。
データベースサーバ1は、例えば、格別図示しないが、複数のコンピュータプログラムを記憶することができる記憶資源(例えばメモリやハードディスク)や、記憶資源からコンピュータプログラムを読み込んで実行することができるプロセッサ(例えばCPU)等を有するコンピュータマシンである。記憶資源に記憶されているコンピュータプログラムとして、例えば、クエリ(例えばSQL(Structured Query Language))を発行するアプリケーションプログラム(以下、AP)3と、AP3からクエリを受けて実行し実行結果をAP3に返すデータベース管理システム(以下、DBMS)5と、ウィンドウズ(登録商標)等のオペレーティングシステム(以下、OS)15とがある。OS15の上位にDBMS5があり、DBMS5の上位にAP3が存在する。なお、APはDBMSと異なるコンピュータに存在していても良い。その場合には、APからの問合せ要求はネットワーク経由で受け付ける。また、記憶資源の一部を利用して、例えば、DBMS5で利用されるデータベースバッファ(以下、DBバッファ)12を構築することができる。
DBMS5は、例えば、AP3からクエリを受け付けるクエリ受付部7と、クエリ受付部7が受け付けたクエリに基づいて例えば図1Aに例示したようなクエリプランを生成するクエリプラン生成部11と、生成されたクエリプランに従がってクエリを実行するクエリ実行部9と、クエリの実行のためのタスクを管理する(例えばタスクに対してCPUやメモリ等のリソースを割り当てる)実行タスク管理部13とを有する。クエリプランは、複数のデータベースオペレーション(OP)の実行順序を定義したものである。
この第一実施例では、特にクエリ実行部9が行う処理に特徴がある。クエリ実行部9は、少なくとも一つのOPを割り当てたタスクを実行することにより、当該少なくとも一つのOPを実行することができる。そして、クエリ実行部9は、そのタスクの実行中において、外部記憶装置19からのデータの読出しが必要になれば、そのデータを読み出して次のOPを実行するタスクを生成し、生成されたタスクを実行することにより、データの入出力要求(以下、「I/O要求」と記載)を発行することができる。タスクを複数個生成した場合には、複数個のタスクを並行して実行することができ、故に、複数個のI/O要求を並行して発行することができる。なお、タスクの実装としては、OSが管理するプロセスやスレッド、または、アプリケーションやミドルウェアが実装する擬似プロセスや擬似スレッドなど任意の実行環境が利用できる。
以下、クエリ実行部9が行う処理について説明する。なお、以下、説明を分かり易くするために、一つのタスクを実行することにより一つのOPが実行されるものとする。しかし、勿論それに限定する必要は無く、例えば、一つのタスクを実行することにより、複数のOPが実行されても良い。具体的には、例えば、一つのタスクが、或るOPを実行し、その実行結果を引き継いで、次のOPを実行しても良い。
図3は、クエリ実行部9が行う処理の流れの一例を示す。
クエリ実行部9は、或る段階のデータベースオペレーション(OP)を割り当てたタスク(以下、便宜上「親タスク」と言う)を実行することにより、そのOPを実行することができる。
実行された親タスクは、そのOPの実行において、残りのデータ(例えば、索引25又は表23から未だ読み出されていないデータ)があれば(ステップS1で「データあり」)、タスク生成待ち処理を実行する(S2)。タスク生成待ち処理により、タスクを生成することができるようになったら、親タスクは、残りのデータを読み出して次のOPを実行することを割り当てたタスク(以下、便宜上「子タスク」と言う)31を生成する(S3)。親タスクの実行中においては(S4で「親タスク」)、再びS1が実行される。また、S1で「データなし」の場合には、当該親タスクは消滅することができる。
クエリ実行部9は、並行して、生成された子タスク31を実行することができる。S1からS4の「親タスク」の処理が繰り返されることにより、同一の次のOPを実行する子タスクが複数個生成された場合には、生成された複数個の子タスク31、31、…を並行して実行することができる。
実行された子タスク31は、S1における残りのデータを取得するデータ取得処理を実行し(S11)、データを取得できれば(S11で「データあり」)、その取得されたデータが選択条件にマッチするか否かを判断するS12の処理を行う(なお、このS12は、OPの種類によっては行われない)。マッチすれば(S12で「あり」)、子タスク31は、自分に割り当てられたOPの次のOPがあれば(S13で「あり」)、次のOPを実行し(S14)、なければ(S13で「なし」)、結果をリターンする(S15)。次のOPがあるか否かは、例えば、クエリプラン生成部11によって生成された図1Aに例示したクエリプランを参照することにより判別することができる。また、S14の次のOPの実行では、当該子タスクは、親タスクとして、上述したS1の処理を実行し、S3で子タスクを生成することができる。
図4Aは、図3のS2のタスク生成待ち処理において行われる処理の流れの一例を示す。
親タスクは、自分より高い優先度のタスクが生成待ちか否かを判定する(S2−1)。具体的には、例えば、親タスクは、クエリプランを参照し、他の親タスクの実行において生成待ちとなっている子タスクが、自分よりも後段のOPを実行するタスクか否かを判定する。
S2−1の判定の結果、待ちであれば(S2−1で「あり」)、親タスクは、タスクの生成が行われる契機となるイベントの発生を待つ(S2−2)。
一方、S2−1の判定の結果、待ちでなければ(S2−1で「なし」)、親タスクは、現存するデータ取得待ちタスク数が所定の閾値未満か否かを判定する(S2−3)。現存するデータ取得待ちタスク数は、例えば、クエリ実行部9が、タスクを生成する都度に所定のカウント値を1増やし、データ取得が完了する都度にそのカウント値を1減らすことで、そのカウント値を参照することにより、判別することができる。また、閾値は、データベースサーバ1の記憶資源に記憶される値である。閾値は、例えば、一種のチューニングパラメータであり、DBMS5の管理者が所望の値とすることができる。また、閾値は、DBMSシステム全体で決めることも可能であるし、問合せやユーザなど任意の単位で設定することが可能である。
S2−3の判定の結果、残存タスク数が所定の閾値未満であれば(S2−3で「はい」)、親タスクは、図3のS2のタスク生成待ち処理を終えて次のS3を実行することができ、そうでなければ(S2−3で「いいえ」)、少なくとも一つのタスクが消滅する契機となるイベントの発生を待つ(S2−4)。ここでのイベントとしては、例えば、図3のS1において「データなし」となることが挙げられる。
図4Bは、図3のS11のデータ取得処理において行われる処理の流れの一例を示す。
子タスクは、DBバッファ12にアクセスし、過去に読み出されたデータが残っている等の理由により、DBバッファ12に、自分の読出し対象のデータが存在していれば(S11−1で「ヒット」)、そのデータをDBバッファ12から取得して(S11−5)、このデータ取得処理を終える。
子タスクは、DBバッファ12に、自分の読出し対象のデータが存在していない場合(S11−1で「フォルト」)、そのデータが存在する領域に対してI/O要求が未だ発行されていなければ(S11−2で「未」)、OSシステムコールによるI/O発行を行う(S11−3)。すなわち、子タスクは、OS15にI/O要求を出すことで、OS15から外部記憶装置19に対するI/O要求を発行させる。子タスクの実行は、それに応答して、外部記憶装置19からOS15を介してデータが読み出されるまで待ちとなる。データが読み出されたならば(S11−5)、子タスクは、処理を再開し、読み出されたデータをDBバッファ12に格納して、このデータ取得処理を終える。
子タスクは、S11−1で「フォルト」の場合、自分の読出し対象のデータが存在する領域に対してI/O要求が既に発行されていれば(S11−2で「既」)、I/O要求の完了を待つ(S11−4)。データが読み出されたならば(S11−5)、子タスクは、処理を再開し、読み出されたデータをDBバッファ12に格納して、このデータ取得処理を終える。なお、自分の読出し対象のデータが存在する領域に対してI/O要求が既に発行されているか否かは、例えば、各タスクが、I/O要求をOS15に発行する都度に、そのI/O要求によるアクセス先に関するI/O先情報を、データベースサーバ1の記憶資源上の所定記憶領域に書き、子タスクは、その所定記憶領域上の各I/O先情報を参照することにより、判定することができる。I/O先情報としては、例えば、外部記憶装置19に設けられた論理ユニットの識別子(例えば論理ユニット番号)と、アクセス先の論理ブロックアドレス(以下、LBA)とを含んだ情報とすることができる。データベースサーバ1の記憶資源は、例えば、DBオブジェクト(例えば、表23、索引25、又は表23や索引25上の各行要素(例えばPID、OID等))と記憶位置(例えば、論理ユニット識別子及び/又はLBA)との対応関係を表すマッピング情報を記憶することができ、各タスクは、そのマッピング情報に基づいて、OS15に対してI/O要求を発行したり、上記I/O先情報を所定記憶領域に書き込んだりすることができる。
上述した第一実施例によれば、クエリ実行部9は、タスクの実行中において、外部記憶装置19からのデータの読出しが必要になれば、そのデータを読み出して次のOPを実行するタスクを生成し、生成されたタスクを実行することにより、I/O要求を発行することができる。タスクを複数個生成した場合には、複数個のタスクを並行して実行することができ、故に、複数個のI/O要求を並行して発行することができる。このことを、図1Aに例示したクエリプランに従がってクエリを実行する場合を例に採って説明すると、従来の技術によれば、図5Aに示すように、パート表23Aから未読の行がなくなるまで、OP1からOP5までを終えて再びOP1から開始することを繰り返す必要があるが、上述した第一実施例によれば、図5Bに示すように、同一段階のOPを並行して実行することができる。具体的には、例えば、パート表23Aの行数は3なので、OP1が割り当てられたタスクが実行されることにより、複数の子タスクが生成され、それら複数の子タスクが並行して実行されることにより、パート表23Aの3行にそれぞれ対応した3つのOP2を並行して実行することができる。各OP2の実行後、OP3も並行して実行され、その実行結果に応じて、タスクが消滅してOP4以降が実行されなかったり(例えば、フェッチされたOIDが504未満であったため図3のS12の選択条件にマッチしないが故に終了となってタスクが消滅したり)、一つのOP3の実行後に更に複数のOP4が並行して実行されたりする(例えば、PID「301」に対応する行が2つ見つかったために2つの行にそれぞれ対応した2つのOP4が並行して実行されたりする)。I/O要求を発行する処理が必要となるOPが並行して実行されるため、複数のI/O要求が並行して発行される。これにより、例えば、生成されたタスク毎に読出し要求が発行され、その読出し要求に応答してデータが読み出されるまで該タスクの処理が中断しても、他の生成されたタスクは独立して実行されるので、クエリの実行それ自体が中断してしまうわけではない。以上の結果、従来に比べて、一つのクエリの実行に要する時間を短縮することができる。
また、上述した第一実施例によれば、タスクが無制限に生成されるわけではなく、現存するデータ取得待ちタスク数が所定値になったら、新たにタスクは生成されず、現存のデータ取得待ちタスク数が所定値未満になった場合に、新たなタスクの生成が行われる。これにより、DBMS5での処理によって消費されるコンピュータリソース(例えば、CPU使用率、メモリ使用量等)の量を抑えることができる。
以下、本発明の第二実施例を説明する。なお、その際、第一実施例との相違点を主に説明し、第一実施例との共通点については、重複した説明を省くために、説明を簡略或いは省略する。
図6は、本発明の第二実施例に係るシステムの構成例を示す。この図において、第一実施例と同一の要素については同一の番号を付してある。
この第二実施例では、DBMS5に、I/O最適化部27が備えられる。この場合、クエリ実行部9は、OS15にではなく、I/O最適化部27にI/O要求を発行する。I/O最適化部27は、クエリ実行部9から並行して発行された複数のI/O要求を受けて保持し、受け付けた複数のI/O要求の順序を、データ読出し時間長を最適化するための順序に変更し、変更後の順序で複数のI/O要求をOS15に発行することができる。
以下、この第二実施例について詳細に説明する。
図7Aは、本発明の第二実施例で行われるデータ取得処理の流れの一例を示す。
この図7Aにおいて、S31、S32、S35及びS36は、図4AのS11−1、S11−2、S11−4及びS11−5にそれぞれ対応している。相違点は、S33及びS34である。
S33では、クエリ実行部9によって実行されている子タスクは、発行するI/O要求をスケジュール対象とするか否かを判断し、スケジュール対象とする場合に、スケジュールフラグを付与することを決定する。スケジュール対象とする場合とは、例えば、I/O要求をOS15に発行する緊急性が低い場合であり、そうではなく、その緊急性が高い場合には、スケジュール対象外となる。スケジュール対象とするか否かは、例えば、クエリプランの内容、又は、クエリの実行に求められる性能要件に応じて、決定することができる。前者の具体例では、当該子タスクが、クエリプランを参照し、当該子タスクに割り当てられているOPが或る段階よりも後段のOPであると認識された場合に、スケジュール対象外とし、そうではない場合には、スケジュール対象としても良い。後者の具体例では、当該子タスクは、意思決定支援システムなどの緊急性の低いアクセス特性を有するデータベースアクセスのためのI/O要求を発行する場合には、スケジュール対象とし、オンライントランザクションシステムなどの緊急性の高いアクセス特定を有するデータベースアクセスのためのI/O要求を発行する場合には、スケジュール対象外としてもよい。
S33の後、当該子タスクは、I/O要求発行処理を実行する(S34)。
図7Bは、I/O要求発行処理の流れの一例を示す。
子タスクは、スケジュールフラグを付与する場合(S34−1で「有」)、スケジュール対象キューに、I/O要求を挿入し(S34−2)、スケジュールフラグを付与しない場合(S34−1で「無」)、スケジュール対象外キューに、I/O要求を挿入する。
ここで、スケジュール対象キュー及びスケジュール対象外キューとは、I/O最適化部27が有するキューである。
図8は、I/O最適化部27の説明図である。
I/O最適化部27は、スケジュール対象外キュー61Aと、スケジュール対象キュー61Bとを有する。スケジュール対象外キュー61Aの優先度(換言すれば、I/O要求の発行の緊急度)は、スケジュール対象キュー61Bの優先度よりも高い。スケジュール対象外キュー61Aには、スケジュール対象外とされたI/O要求63がクエリ実行部9によって格納され、スケジュール対象キュー61Bには、スケジュール対象とされたI/O要求63がクエリ実行部9によって格納される。
以下、図9A、図9B、図10A及び図10Bを参照して、I/O最適化部27が行う処理の流れについて説明する。その際、適宜に、図8も参照する。
図9Aは、I/O最適化部27が行う処理の流れの一例を示す。
I/O最適化部27は、条件1〜条件3のうちの少なくとも一つの条件にマッチするイベントが発生するのを待つ(S41)。ここで、条件1とは、スケジュール対象外キュー61AにI/O要求が格納されることである。条件2とは、スケジュールキャンセルコマンドの到着である。条件3とは、後述するバッチスケジューリング駆動条件の成立である。
上記の条件1〜条件3のうちの少なくとも一つの条件にマッチするイベントが発生した場合には、I/O最適化部27は、発生したイベントがマッチする条件を判別し(S42)、判別された条件に応じた処理を実行する。すなわち、I/O最適化部27は、条件1であると判別された場合には、即時発行処理を実行し(S43)、条件2であると判別された場合には、スケジュールキャンセル処理を実行し(S44)、条件3であると判別された場合には、バッチスケジュール処理を実行する(S45)。なお、複数の条件にマッチした場合には、例えば、I/O最適化部27は、優先順位の高い条件に対応した処理を優先して実行することができる。例えば、条件1の方が条件3よりも優先順位が高い場合において、条件1及び条件3の両方にマッチしたイベントが発生した場合には、I/O最適化部27は、条件1に対応した即時発行処理を、条件3に対応するバッチスケジュール処理よりも先に実行することができる。
図9Bは、即時発行処理の流れの一例を示す。
I/O最適化部27は、スケジュール対象外キュー61Aから全てのI/O要求を取り出し(S43−1)、取り出したI/O要求を、OS15のシステムコールを用いて発行する(S43−2)。これにより、外部記憶装置19へとI/O要求が発行される。この即時発行処理は、スケジュール対象外キュー61AにI/O要求が格納されていることがI/O最適化部27によって検出される度に行われるので、後述のバッチスケジュール処理よりも、キューにおけるI/O要求の滞在時間が短い。
図10Aは、スケジュールキャンセル処理の流れの一例を示す。
I/O最適化部27は、図8で点線で示すように、スケジュールキャンセルコマンドで指定されているI/O要求63Tをスケジュール対象キュー61Bから取得し(S44−1)、取得されたI/O要求63Tをスケジュール対象外キュー61Aに挿入する(S44−2)。挿入する位置は、どこでも良い。例えば、スケジュール対象外キュー61Aに存在する一以上のI/O要求の最後尾であっても良いし、先頭であっても良いし、それらの間の任意の位置であっても良い。
図10Bは、バッチスケジュール処理の流れの一例を示す。
このバッチスケジュール処理は、前述したように、バッチスケジューリング駆動条件が成立した場合に開始される。バッチスケジューリング駆動条件としては、例えば、直前回にバッチスケジュール処理が行われてから所定時間経過した、又は、スケジュール対象キュー61Bの使用率が所定値以上になったという条件を採用することができる。
I/O最適化部27は、スケジュール対象キュー61Bに格納されている複数のI/O要求の順序を、それら複数のI/O要求のトータルのデータ読出し時間長を最適化するための順序に並び替える(S45−1)。この並び替えは、例えば、前述したマッピング情報に基づいて行うことができる。具体的には、例えば、I/O最適化部27は、各I/O要求毎のアクセス先LBAを特定し、外部記憶装置19におけるディスクシーク時間長が最も短くなるような順序に並び替えることができる。なお、並び替えの対象は、例えば、バッチスケジュール処理が開始された時点でスケジュール対象キュー61Bに存在するI/O要求とすることができる。この場合、バッチスケジュール処理を開始した後にスケジュール対象キュー61BにI/O要求が入っても、そのI/O要求は、今回のバッチスケジュール処理では並び替えの対象とされず、次回以降のバッチスケジュール処理で、並び替えの対象とされることになる。
I/O最適化部27は、スケジュール対象外キュー61Aが空か否かを判別し(S45−2)、空あれば(S45−2でYES)、スケジュール対象キュー61BにI/O要求があるか否かを判断し(S45−3)、あれば(S45−3で「あり」)、スケジュール対象キュー61BからI/O要求を取り出し、取り出したI/O要求をOS15に発行する。I/O最適化部27は、S45−2において、スケジュール対象外キュー61Aが空でなければ(S45−2でNO)、スケジュール対象外キュー61AにおけるI/O要求を優先して出すために、バッチスケジュール処理を一旦終え、図9AのS41及びS42を経てS43の即時処理を実行することができる。
以上が、第二実施例についての説明である。この第二実施例によれば、クエリ実行部9から発行された複数のI/O要求が、クエリ実行部9から発行された順序で外部記憶装置19に送信されるのではなく、一旦、蓄積され、蓄積された複数のI/O要求の順序が、I/O最適化部27によって最適化されてから出力される。これにより、複数のI/O要求がクエリ実行部9から発行されてからクエリ実行部9にデータが読出されるまでの全体としての読出し時間長を短縮することができる。以下、この第二実施例で期待される効果について、第一実施例で期待される効果と比較して説明する。なお、以下の説明は、第一実施例と第二実施例の理解をより深めるためのものに過ぎず、以下の期待される効果を奏しないからといって、本願発明の技術的範囲から外れるものではない。故に、その説明で用いる図11A〜図13Bは、必ずしも精密な記載にはなっていない。例えば、図11B、図12B及び図13Bのディスクシークイメージの図において、横軸における単位距離が表す時間長は必ずしも同じではない。
例えば、第一実施例において、図11Aに例示するように、クエリ実行部9から、6つのI/O要求A〜Fが発行されたとする。第一実施例では、I/O最適化部27が存在しないので、DBMS5において、第二実施例のように、DBMS5内で、OS15へ発行する複数のI/O要求A〜Fの並び替えは行われない。この場合には、例えば、OS15のカーネル、或いは、外部記憶装置19の機能によって、I/O要求の並び替えが行われる場合がある。例えば、全I/O要求A〜Fのうち、I/O要求A〜CとD〜Fとの各グループ別に並び替えが行われる場合がある。全I/O要求A〜Fではなく、グループ別に行われるのは、例えば、OS15や外部記憶装置19にとっては、どれだけの数のI/O要求が来るかわからないので、所定数或いは一定時間待って蓄積された段階でI/O要求の並び替えを行わないと、上位の装置或いはコンピュータプログラムを長く待たせてしまうことになるからである。図11Aの例では、OS15又は外部記憶装置19が、I/O要求A〜Cまで受け付けた段階で、「A→B→C」の順から「B→C→A」の順に並び替えてデータ読出しを行う。次に、OS15又は外部記憶装置19が、次のI/O要求D〜Fまで受け付けた段階で、「D→E→F」の順から「E→F→D」の順に並び替えてデータ読出しを行う。この結果、図11Bに例示するように、I/O要求A〜Fに対応するデータの読み出しのためのディスクシーク時間長をある程度短縮化することができる(しかし、前述したようにI/O要求が並行して発行されるので、これでも、従来技術に比べれば、短縮化される)。
これに対し、第二実施例では、図12Aに例示するように、DBMS5内で、OS15へ発行する複数のI/O要求A〜Fの順序が最適化され、最適化後の順序で、I/O要求がOS15を介して外部記憶装置19へと発行される。このため、図12Bに例示するように、第一実施例に比べて、I/O要求A〜Fに対応するデータの読み出しのためのディスクシーク時間長を短縮化することができる。なお、この第二実施例において、第一実施例のように、OS15或いは外部記憶装置19によってI/O要求の並び替えが行われたとしても、I/O最適化部27によって並び返された順序と同じ順序になる可能性が大きいので、図12A及び図12Bに例示の効果が期待される。
また、第二実施例において、例えば、バッチスケジュール処理によってI/O要求の発行順序が最適化された後に、スケジュール対象外のI/O要求が発行されて、そのI/O要求が優先的にDBMS5から発行された場合には、I/O要求A〜Fに対応するデータの読み出しのためのディスクシーク時間長は、図13A及び図13Bに例示するように、即時発行が全く無い場合に比べて、長くなる可能性がある。しかし、それでも、少なくとも従来よりは、I/O要求A〜Fに対応するデータの読み出しのためのディスクシーク時間長を短縮化することができる。なお、図13A、図13Bにおいて、I/O最適化部27は、I/O要求Eの即時発行が決まった場合、残りのI/O要求A〜D及びFの並び替えをやり直しても良い。
以下、本発明の第三実施例について説明する。
この第三実施例では、クエリ実行部9は、第一実施例(又は第二実施例)において、複数のデータが読み出された場合、読み出された順にタスクの実行を再開していくのではなく、データ取得処理を開始した順に、タスクの実行を再開していく。タスクの実行を再開する順序を制御するための方法として、例えば、データ取得待ち表を用いる方法がある。
図14Aは、本発明の第三実施例におけるデータ取得待ち表の構成例を示す。
データ取得待ち表71は、データベースサーバ1の記憶資源に記憶される情報である。データ取得待ち表71は、複数の待ち情報71R、71R、…から構成される。待ち情報71Rは、データ取得順序番号とタスクIDとで構成される。データ取得順序番号は、データ取得処理を開始する順序を表した番号である。タスクIDは、待ち情報71Rを記述したタスクのIDである。
図14Bは、生成された子タスクが第一実施例で行う処理との第一の相違部分を示す。
生成された子タスクは、データ取得処理を実行する前に、データ取得待ち表71に、自分に対応した待ち情報を挿入する(S61)。具体的には、当該子タスクは、自分に対応した待ち情報71Rとして、図3のS11のデータ取得処理を開始する順番であるデータ取得順序番号と、自分のタスクのIDとを、データ取得待ち表71に挿入する。
図14Cは、生成された子タスクが第一実施例で行う処理との第二の相違部分を示す。
当該子タスクは、データ取得処理によってデータが取得された場合、データ取得待ち表71を検索し、自タスクが最も古い待ちタスクとなるまで待ち、そうなった後、データ取得待ち表71から、S61で自分が挿入した待ち情報71Rを削除する(S62)。なお、最も古い待ちタスクになったかどうかは、データ取得待ち表71に記入されているデータ取得順序番号の中で、自分が挿入した待ち情報71R中のデータ取得順序番号が若い番号かどうかを判別することにより、特定することができる。なお、別法として、例えば、データ取得待ち表71Rが、待ち行列であって、自分が書いた待ち情報71Rが先頭アドレスになったときに、自タスクが最も古い待ちタスクであると判別しても良い。
以上の処理により、生成された複数の子タスクは、データ取得処理によってデータ待ちとなった場合、データが取得された順に実行の再開となるのではなく、データ取得処理を開始した順に、実行の再開となる。具体的には、例えば、図15Aに例示するように、データ取得処理の開始順序と同じ順序でI/O要求A〜Fが発行された場合、その順序と違って、例えば、I/O要求Aに対応したデータAよりも先に、I/O要求B、Cの応答としてデータB、Cが取得されたとしても、データB、Cを処理するタスクB、Cの実行の再開は待ちとなり、データAが取得されてそれを処理するタスクAの実行が再開された後に、タスクB、Cの順序で実行が再開される(なお、ディスクシークイメージとしては、図15Bに例示する通りであり、例えば第一実施例と同じである)。このように、この第三実施例では、各タスクの実行を、データ取得処理の開始順序と同じ順序で再開していくことができる。
以上、本発明の好適な幾つかの実施例を説明したが、本発明は、それらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、第二実施例において、I/O最適化部27は、別種の所定のキャンセルコマンドを受け付けた場合には、そのキャンセルコマンドで指定されているI/O要求、又は、スケジュール対象外キュー61Aに残っている全てのI/O要求を、スケジュール対象外キュー61Aから取り出し、取り出されたI/O要求を、スケジュール対象キュー61Bに格納してもよい。
また、例えば、各実施例において、DBMS5の処理は、それを読込んだプロセッサによって実行することができる。具体的には、例えば、親タスクを実行するプロセッサは、データベースサーバ1の記憶資源(例えばメモリ)上に子タスクを生成し、その子タスクを読込んで実行することにより、例えば図3のS11以降の処理を実行することができる。
また、例えば、実行タスク管理部13が、所定のタイミングで、クエリプランに基づいて、残存ステップ数(例えば、最後のOPまでに残っているOPの数)を計算し、残存ステップ数の少ないタスクの優先度を上げても良い。この場合、例えば、図3のS2、S3の処理によって、優先度が上げられたタスクを優先的に生成することができる。また、そのタスクは、自分の優先度が高いので、I/O要求を発行する場合、スケジュール対象外キュー61Aに、発行したI/O要求を挿入することができる。
また、例えば、第二実施例において、スケジュール対象とスケジュール対象外との二種類のキューではなく、三以上の優先度の異なるキューが用意されても良い。その場合、クエリ実行部9は、I/O要求の優先度に応じた値のスケジュールフラグを決定し、その決定されたスケジュールフラグ値に応じたキューに、I/O要求を格納してもよい。
また、例えば、第二実施例において、I/O最適化部27は、DBMS5の外に存在しても良い。具体的には、例えば、I/O最適化部27は、DBMS5とOS15との間に介在しても良い。I/O最適化部27は、DBMS5から発行された複数のI/O要求を受け付けることができる。また、I/O最適化部27は、AP3からもI/O要求をうつけても良い。I/O最適化部27は、受け付けた複数のI/O要求(発行元はDBMS5又はAP3)を、受け付けた順序と異なる順序に並び替え、並び替え後の順序でI/O要求をOS15に発行することができる。
また、例えば、データベース管理システムは、一つのコンピュータマシン上に構築されてもよいし、複数のコンピュータマシン上に構築されても良い。具体的には、例えば、各実施例にけるDBMS5の処理は複数のコンピュータ上で並列に動作する並列DBMSにおいても同様に適用することができる。並列DBMSでは、クエリ生成部でクエリプランを生成した後、処理を複数のDBMSサーバに割り当てる。そのため、各DBMSサーバにおいて、本発明の技術を用いて、割り当てられた処理を複数のタスクを生成しながらI/O要求を並列に処理することで、問合せの実行時間の短縮を図ることが可能である。
1…データベースサーバ 3…アプリケーションプログラム 5…データベース管理システム 7…クエリ受付部 9…クエリ実行部 11…クエリプラン生成部 12…データベースバッファ 13…実行タスク管理部 15…オペレーティングシステム 17…通信ネットワーク 19…外部記憶装置 21…データベース 23…表 25…索引 27…I/O最適化部 61A…スケジュール対象外キュー 61B…スケジュール対象キュー 63…I/O要求

Claims (73)

  1. 問合せを受け付ける受付部と、
    前記受け付けた問合せを実行する実行部と
    を備え、
    前記実行部は、前記問合せの実行において、
    (a) 前記問合せを実行するのに必要なオペレーションを実行するためのタスクを生成すること、
    (b) 生成されたタスクを実行することで、当該タスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること
    (c) (b)で実行されたタスクに対応したオペレーションの実行結果に基づきさらに次のオペレーションを実行する場合には、そのために当該実行結果に基づく1以上のタスクを新たに生成すること、及び、
    (d) その新たに生成した各タスクについて(b)及び(c)を行うこと、
    を行い、2以上の実行可能なタスクが存在する場合には、それら2以上のタスクのうちの少なくとも2つのタスクを並行して実行する、
    コンピュータシステム。
  2. 前記実行部は、前記(c)において、所定の状況にあるタスクの現存数が所定数に達している場合には、新たなタスクの生成を待ち、前記現存数が前記所定数より減った場合に、前記新たなタスクを生成する、
    請求項1記載のコンピュータシステム。
  3. 前記実行部は、前記(c)におけるタスクの生成において、前記現存数が前記所定数より減り、かつ、生成が待たれているタスクより高い優先度を有するタスクの生成が待たれていない場合に、前記生成が待たれているタスクの生成を再開する、
    請求項2に記載のコンピュータシステム。
  4. 前記2以上のタスクを並行して実行することにより、複数個のデータ読出し要求が前記実行部から発行されるようになっており、
    前記実行部から発行された複数個のデータ読出し要求を受け付け、受け付けた複数個のデータ読出し要求を、前記複数個のデータ読出し要求を受け付けた順序とは異なる順序であって全体としてのデータ読出し時間長を短縮化するための順序に並び替えて発行する読出し順序制御部を更に備え、
    前記全体としてのデータ読出し時間長は、前記複数個のデータ読出し要求が前記実行部から前記読出し順序制御部に発行されてから前記複数個のデータ読出し要求に対応したデータが前記実行部に読出されるまでの時間長であり、
    前記読出し順序制御部は、前記複数個のデータ読出し要求でそれぞれ指定されている複数の読出し元記憶位置に基づいて、前記複数個のデータ読出し要求を前記異なる順序に並び替える、
    請求項1乃至3のうちのいずれか1項に記載のコンピュータシステム。
  5. 前記読出し順序制御部が、優先度の異なる複数のキューを更に備え、
    前記実行部が、前記複数のキューのうち、前記受け付けた問合せが持つ入出力要求の緊急性を表す優先度に対応するキューに、前記複数のデータ読出し要求を格納し、
    前記読出し順序制御部は、より高い優先度のキューに格納されたデータ読出し要求を、他のデータ読出し要求より優先的に発行する、
    請求項4に記載のコンピュータシステム。
  6. 前記複数のキューは、スケジュール対象キューとスケジュール対象外キューであり、
    前記実行部は、緊急性の低いデータ読み出し要求を前記スケジュール対象キューに格納し、緊急性が高いデータ読み出し要求を前記スケジュール対象外キューに格納し、
    前記読み出し順序制御部は、前記スケジュール対象キューよりも前記スケジュール対象外キューのデータ読み出し要求を優先的に発行するようになっており、
    前記実行部は、スケジュールキャンセルコマンドを発行し、
    前記読出し順序制御部は、前記スケジュールキャンセルコマンドを受け付けた場合には、前記スケジュールキャンセルコマンドで指定されているデータ読み出し要求、又は、前記スケジュール対象外キューに残っている全てのデータ読み出し要求を、前記スケジュール対象外キューから取り出し、取り出されたデータ読み出し要求を、前記スケジュール対象キューに格納する
    請求項5に記載のコンピュータシステム。
  7. 前記実行部は、生成された各タスクの実行において、データの取得を待ち、該データを取得した後、データの取得待ちを開始した順序と同じ順序で、タスクの実行を再開する、
    請求項1乃至のうちのいずれか1項に記載のコンピュータシステム。
  8. データベースを管理するデータベース管理システムであって、
    前記データベースへのクエリを受け付けるクエリ受付部と、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成部と、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行部と
    を備え、
    前記クエリ実行部は、前記クエリの実行において、
    (a) データベースオペレーションを実行するためのタスクを生成すること、
    (b) 生成されたタスクを実行することで、当該タスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (c) (b)で実行されたタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行する場合には、そのために当該実行結果に基づき複数のタスクを新たに生成すること、及び、
    (d) その新たに生成した各タスクについて(b)及び(c)を行うこと、
    を行い、少なくとも2つのタスクを並行して実行し、
    前記クエリ実行部は、前記(c)における前記タスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記タスクの生成を再開する、
    データベース管理システム。
  9. 前記所定の状況にあるタスクとは任意の状況にあるタスクである、
    請求項に記載のデータベース管理システム。
  10. 前記所定の状況にあるタスクとはデータ読出し要求の完了を待っているタスクである、
    請求項に記載のデータベース管理システム。
  11. 前記2以上のタスクを並行して実行することにより、複数個のデータ読出し要求が前記実行部から発行されるようになっており、
    前記クエリ実行部から発行された複数個のデータ読出し要求を受け付け、受け付けた複数個のデータ読出し要求を、前記複数個のデータ読出し要求を受け付けた順序とは異なる順序であって全体としてのデータ読出し時間長を短縮化するための順序に並び替えて発行する読出し順序制御部を更に備え、
    前記全体としてのデータ読出し時間長は、前記複数個のデータ読出し要求が前記クエリ実行部から前記読出し順序制御部に発行されてから前記複数個のデータ読出し要求に対応したデータが前記クエリ実行部に読出されるまでの時間長であり、
    前記読出し順序制御部は、前記複数個のデータ読出し要求でそれぞれ指定されている複数の読出し元記憶位置に基づいて、前記複数個のデータ読出し要求を前記異なる順序に並び替える、
    請求項乃至10のうちのいずれか1項に記載のデータベース管理システム。
  12. 前記クエリ実行部から発行された複数個のデータ読出し要求を受け付け、受け付けた複数個のデータ読出し要求を前記データベースに発行する読出し最適化部を備え、
    前記読出し順序制御部が、優先度の異なる複数のキューを更に備え、
    前記クエリ実行部が、前記複数の生成されたタスクのうちの1つのタスクを実行する際に、前記複数のキューのうち、当該タスクの優先度に対応するキューに、前記複数のデータ読出し要求を格納し、
    前記読出し最適化部は、より高い優先度のキューに格納されたデータ読出し要求を、他のデータ読出し要求より優先的に発行する、
    請求項乃至11のうちのいずれか1項に記載のデータベース管理システム。
  13. 前記複数のキューは、スケジュール対象キューとスケジュール対象外キューであり、
    前記クエリ実行部は、緊急性の低いデータ読み出し要求を前記スケジュール対象キューに格納し、緊急性が高いデータ読み出し要求を前記スケジュール対象外キューに格納し、
    前記読み出し順序制御部は、前記スケジュール対象キューよりも前記スケジュール対象外キューのデータ読み出し要求を優先的に発行するようになっており、
    前記クエリ実行部は、スケジュールキャンセルコマンドを発行し、
    前記読出し順序制御部は、前記スケジュールコマンドを受け付けた場合には、前記スケジュールキャンセルコマンドで指定されているデータ読み出し要求、又は、前記スケジュール対象外キューに残っている全てのデータ読み出し要求を、前記スケジュール対象外キューから取り出し、取り出されたデータ読み出し要求を、前記スケジュール対象キューに格納する
    請求項12に記載のデータベース管理システム。
  14. 前記クエリ実行部は、前記クエリプランを参照し、前記(b)で実行されるタスクに割り当てられているデータベースオペレーションが或る段階よりも後段のデータベースオペレーションであると認識された場合に、第1の優先度のキューにデータ読出し要求を格納することを決定し、前記(b)で実行されるタスクに割り当てられているデータベースオペレーションが或る段階よりも後段のデータベースオペレーションでないと認識された場合に、前記第1の優先度よりも高い第2の優先度のキューにデータ読出し要求を格納することを決定する、又は、
    前記クエリ実行部は、前記(b)において緊急性の低いアクセス特性を有するデータベースアクセスのためのデータ読出し要求を発行する場合には、第3の優先度のキューにデータ読出し要求を格納することを決定し、前記(b)において緊急性の低いアクセス特性よりも緊急性の高いアクセス特定を有するデータベースアクセスのためのデータ読出し要求を発行する場合には、前記第3の優先度よりも低い第4の優先度のキューにデータ読出し要求を格納することを決定する、
    請求項12に記載のデータベース管理システム。
  15. 前記クエリプランに基づき前記複数のデータベースオペレーションのうちの未実行のデータベースオペレーションの数である残存ステップ数を計算し、前記計算された残存ステップ数の少ないタスクの優先度を上げるタスク管理部、
    を更に備える、
    請求項乃至14のうちのいずれか1項に記載のデータベース管理システム。
  16. 前記クエリ実行部は、前記タスク管理部によって前記上げられた優先度を有する前記タスクを実行することにより発行される前記データ読出し要求を、前記上げられた優先度に対応するキューに格納する、
    請求項15に記載のデータベース管理システム。
  17. 前記クエリ実行部は、生成された各タスクの実行において、前記データベースのデータの取得を待ち、該データを取得した後、データの取得待ちを開始した順序と同じ順序で、タスクの実行を再開する、
    請求項乃至16のうちのいずれか1項に記載のデータベース管理システム。
  18. データベースを管理するデータベース管理システムであって、
    前記データベースへのクエリを受け付けるクエリ受付部と、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成部と、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行部と
    を備え、
    前記クエリ実行部は、前記クエリの実行において、
    (1a) データベースオペレーションを実行するための第一のタスクを生成すること、
    (1b) 前記生成された第一のタスクを実行することで、前記第一のタスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (1c) 前記(1a)における第一のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第一のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第一のタスクの生成を再開すること、
    (2a) 前記第一のタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第二のタスクを新たに生成すること、
    (2b) 前記生成された第二のタスクの各々を実行することで、前記第二のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (2c) 前記(2a)における第二のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第二のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第二のタスクの生成を再開すること、
    (3a) 前記第二のタスクの各々に対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第三のタスクを新たに生成すること、及び、
    (3b) 前記生成された第三のタスクの各々を実行することで、前記第三のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (3c) 前記(3a)における第三のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第三のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第三のタスクの生成を再開すること、
    を行い、少なくとも2つのタスクを並行して実行する、
    データベース管理システム。
  19. 前記第一、第二、第三のタスクのうちの1つのタスクで発行したデータ読出し要求のデータ読出しが完了すると、前記クエリ実行部が、前記1つのタスクで前記読み出したデータを以って前記対応したデータベースオペレーションを実行し、その後に前記1つのタスクを消滅させる、
    請求項18に記載のデータベース管理システム。
  20. 前記より高い優先度を有するタスクは、後段のタスクである
    請求項18又は19に記載のデータベース管理システム。
  21. 前記より高い優先度を有するタスクは、前記複数のデータベースオペレーションのうちの未実行のデータベースオペレーションの数である残存ステップ数の少ないタスクである
    請求項18又は19に記載のデータベース管理システム。
  22. データベースを管理するデータベース管理システムと、
    前記データベース管理システムから発行された複数個のデータ読出し要求を受け付け、受け付けた複数個のデータ読出し要求の前記データベースへの発行順序を制御する読出し順序制御部と
    を備え、
    前記データベース管理システムは、
    データベースを管理するデータベース管理システムであって、
    前記データベースへのクエリを受け付けるクエリ受付部と、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成部と、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行部と
    を備え、
    前記クエリ実行部は、前記クエリの実行において、
    (a) データベースオペレーションを実行するためのタスクを生成すること、
    (b) 生成されたタスクを実行することで、当該タスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (c) (b)で実行されたタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行する場合には、そのために当該実行結果に基づき複数のタスクを新たに生成すること、及び、
    (d) その新たに生成した各タスクについて(b)及び(c)を行うこと、
    を行い、少なくとも2つのタスクを並行して実行し、
    前記クエリ実行部は、前記(c)における前記タスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記タスクの生成を再開する、
    コンピュータシステム。
  23. データベースを管理するデータベース管理システムと、
    前記データベース管理システムから発行された複数個のデータ読出し要求を受け付け、受け付けた複数個のデータ読出し要求の前記データベースへの発行順序を制御する読出し順序制御部と
    を備え、
    前記データベース管理システムは、
    前記データベースへのクエリを受け付けるクエリ受付部と、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成部と、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行部と
    を備え、
    前記クエリ実行部は、前記クエリの実行において、
    (1a) データベースオペレーションを実行するための第一のタスクを生成すること、
    (1b) 前記生成された第一のタスクを実行することで、前記第一のタスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (1c) 前記(1a)における第一のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第一のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第一のタスクの生成を再開すること、
    (2a) 前記第一のタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第二のタスクを新たに生成すること、
    (2b) 前記生成された第二のタスクの各々を実行することで、前記第二のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (2c) 前記(2a)における第二のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第二のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第二のタスクの生成を再開すること、
    (3a) 前記第二のタスクの各々に対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第三のタスクを新たに生成すること、及び、
    (3b) 前記生成された第三のタスクの各々を実行することで、前記第三のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (3c) 前記(3a)における第三のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第三のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第三のタスクの生成を再開すること、
    を行い、少なくとも2つのタスクを並行して実行する、
    コンピュータシステム。
  24. 問合せを受け付ける受付ステップと、
    前記受け付けた問合せを実行する実行ステップと
    を備え、
    前記実行ステップでは、前記問合せの実行において、
    (a) 前記問合せを実行するのに必要なオペレーションを実行するためのタスクを生成すること、
    (b) 生成されたタスクを実行することで、当該タスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること
    (c) (b)で実行されたタスクに対応したオペレーションの実行結果に基づきさらに次のオペレーションを実行する場合には、そのために当該実行結果に基づく1以上のタスクを新たに生成すること、及び、
    (d) その新たに生成した各タスクについて(b)及び(c)を行うこと、
    を行い、2以上の実行可能なタスクが存在する場合には、それら2以上のタスクのうちの少なくとも2つのタスクを並行して実行する、
    問合せ実行方法。
  25. データベースへのクエリを受け付けるクエリ受付ステップと、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成ステップと、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行ステップと
    を有し、
    前記クエリ実行ステップでは、前記クエリの実行において、
    (a) データベースオペレーションを実行するためのタスクを生成すること、
    (b) 生成されたタスクを実行することで、当該タスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (c) (b)で実行されたタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行する場合には、そのために当該実行結果に基づき複数のタスクを新たに生成すること、及び、
    (d) その新たに生成した各タスクについて(b)及び(c)を行うこと、
    を行い、少なくとも2つのタスクを並行して実行し、
    前記(c)における前記タスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記タスクの生成を再開する、
    データベース管理方法。
  26. データベースへのクエリを受け付けるクエリ受付ステップと、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成ステップと、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行ステップと
    を有し、
    前記クエリ実行ステップでは、前記クエリの実行において、
    (1a) データベースオペレーションを実行するための第一のタスクを生成すること、
    (1b) 前記生成された第一のタスクを実行することで、前記第一のタスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (1c) 前記(1a)における第一のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第一のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第一のタスクの生成を再開すること、
    (2a) 前記第一のタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第二のタスクを新たに生成すること、
    (2b) 前記生成された第二のタスクの各々を実行することで、前記第二のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (2c) 前記(2a)における第二のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第二のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第二のタスクの生成を再開すること、
    (3a) 前記第二のタスクの各々に対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第三のタスクを新たに生成すること、及び、
    (3b) 前記生成された第三のタスクの各々を実行することで、前記第三のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (3c) 前記(3a)における第三のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第三のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第三のタスクの生成を再開すること、
    を行い、少なくとも2つのタスクを並行して実行する、
    データベース管理方法。
  27. 問合せを受け付ける受付ステップと、
    前記受け付けた問合せを実行する実行ステップと
    をコンピュータに実行させ、
    前記実行ステップでは、前記問合せの実行において、
    (a) 前記問合せを実行するのに必要なオペレーションを実行するためのタスクを生成すること、
    (b) 生成されたタスクを実行することで、当該タスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること
    (c) (b)で実行されたタスクに対応したオペレーションの実行結果に基づきさらに次のオペレーションを実行する場合には、そのために当該実行結果に基づく1以上のタスクを新たに生成すること、及び、
    (d) その新たに生成した各タスクについて(b)及び(c)を行うこと、
    を行い、2以上の実行可能なタスクが存在する場合には、それら2以上のタスクのうちの少なくとも2つのタスクを並行して実行する、
    ことを前記コンピュータに実行させるコンピュータプログラム。
  28. データベースへのクエリを受け付けるクエリ受付ステップと、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成ステップと、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行ステップと
    をコンピュータに実行させ、
    前記クエリ実行ステップでは、前記クエリの実行において、
    (a) データベースオペレーションを実行するためのタスクを生成すること、
    (b) 生成されたタスクを実行することで、当該タスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (c) (b)で実行されたタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行する場合には、そのために当該実行結果に基づき複数のタスクを新たに生成すること、及び、
    (d) その新たに生成した各タスクについて(b)及び(c)を行うこと、
    を行い、少なくとも2つのタスクを並行して実行し、
    前記(c)における前記タスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記タスクの生成を再開する、
    ことを前記コンピュータに実行させるコンピュータプログラム。
  29. データベースへのクエリを受け付けるクエリ受付ステップと、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成ステップと、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行ステップと
    をコンピュータに実行させ、
    前記クエリ実行ステップでは、前記クエリの実行において、
    (1a) データベースオペレーションを実行するための第一のタスクを生成すること、
    (1b) 前記生成された第一のタスクを実行することで、前記第一のタスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (1c) 前記(1a)における第一のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第一のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第一のタスクの生成を再開すること、
    (2a) 前記第一のタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第二のタスクを新たに生成すること、
    (2b) 前記生成された第二のタスクの各々を実行することで、前記第二のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (2c) 前記(2a)における第二のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第二のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第二のタスクの生成を再開すること、
    (3a) 前記第二のタスクの各々に対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第三のタスクを新たに生成すること、及び、
    (3b) 前記生成された第三のタスクの各々を実行することで、前記第三のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (3c) 前記(3a)における第三のタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記第三のタスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記第三のタスクの生成を再開すること、
    を行い、少なくとも2つのタスクを並行して実行する、
    ことを前記コンピュータに実行させるコンピュータプログラム。
  30. データベースを管理するデータベース管理システムであって、
    前記データベースへのクエリを受け付けるクエリ受付部と、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成部と、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行部と
    を備え、
    前記クエリ実行部は、前記クエリの実行において、
    (1a) データベースオペレーションを実行するための第一のタスクを生成すること、
    (1b) 前記生成された第一のタスクを実行することで、前記第一のタスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (2a) 前記第一のタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第二のタスクを新たに生成すること、
    (2b) 前記生成された第二のタスクの各々を実行することで、前記第二のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (3a) 前記第二のタスクの各々に対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第三のタスクを新たに生成すること、及び、
    (3b) 前記生成された第三のタスクの各々を実行することで、前記第三のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    を行い、少なくとも2つのタスクを並行して実行する、
    データベース管理システム。
  31. 前記クエリ実行部は、前記(1a)、(2a)及び(3a)のそれぞれにおける前記タスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記タスクの生成を再開する、
    請求項30に記載のデータベース管理システム。
  32. 前記クエリ実行部は、前記(1a)、(2a)及び(3a)のそれぞれにおける前記タスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減った場合に、前記タスクの生成を再開する、
    請求項30に記載のデータベース管理システム。
  33. 前記所定の状況にあるタスクとは任意の状況にあるタスクである、
    請求項31又は32に記載のデータベース管理システム。
  34. 前記所定の状況にあるタスクとはデータ読出し要求の完了を待っているタスクである、
    請求項31又は32に記載のデータベース管理システム。
  35. 前記2以上のタスクを並行して実行することにより、複数個のデータ読出し要求が前記実行部から発行されるようになっており、
    前記クエリ実行部から発行された複数個のデータ読出し要求を受け付け、受け付けた複数個のデータ読出し要求を、前記複数個のデータ読出し要求を受け付けた順序とは異なる順序であって全体としてのデータ読出し時間長を短縮化するための順序に並び替えて発行する読出し順序制御部を更に備え、
    前記全体としてのデータ読出し時間長は、前記複数個のデータ読出し要求が前記クエリ実行部から前記読出し順序制御部に発行されてから前記複数個のデータ読出し要求に対応したデータが前記クエリ実行部に読出されるまでの時間長であり、
    前記読出し順序制御部は、前記複数個のデータ読出し要求でそれぞれ指定されている複数の読出し元記憶位置に基づいて、前記複数個のデータ読出し要求を前記異なる順序に並び替える、
    請求項30乃至34のうちのいずれか1項に記載のデータベース管理システム。
  36. 前記読出し順序制御部が、優先度の異なる複数のキューを更に備え、
    前記クエリ実行部が、前記複数のキューのうち、前記受け付けた問合せが持つ入出力要求の緊急性を表す優先度に対応するキューに、前記複数のデータ読出し要求を格納し、
    前記読出し順序制御部は、より高い優先度のキューに格納されたデータ読出し要求を、他のデータ読出し要求より優先的に発行する、
    請求項35に記載のデータベース管理システム。
  37. 前記複数のキューは、スケジュール対象キューとスケジュール対象外キューであり、
    前記クエリ実行部は、緊急性の低いデータ読み出し要求を前記スケジュール対象キューに格納し、緊急性が高いデータ読み出し要求を前記スケジュール対象外キューに格納し、
    前記読み出し順序制御部は、前記スケジュール対象キューよりも前記スケジュール対象外キューのデータ読み出し要求を優先的に発行するようになっており、
    前記クエリ実行部は、スケジュールキャンセルコマンドを発行し、
    前記読出し順序制御部は、前記スケジュールコマンドを受け付けた場合には、前記スケジュールキャンセルコマンドで指定されているデータ読み出し要求、又は、前記スケジュール対象外キューに残っている全てのデータ読み出し要求を、前記スケジュール対象外キューから取り出し、取り出されたデータ読み出し要求を、前記スケジュール対象キューに格納する
    請求項36に記載のデータベース管理システム。
  38. 前記クエリ実行部は、前記クエリプランを参照し、前記(1b)、(2b)及び(3b)のそれぞれで実行されるタスクに割り当てられているデータベースオペレーションが或る段階よりも後段のデータベースオペレーションであると認識された場合に、第1の優先度のキューにデータ読出し要求を格納することを決定し、前記(1b)、(2b)及び(3b)のそれぞれで実行されるタスクに割り当てられているデータベースオペレーションが或る段階よりも後段のデータベースオペレーションでないと認識された場合に、前記第1の優先度よりも高い第2の優先度のキューにデータ読出し要求を格納することを決定する、又は、
    前記クエリ実行部は、前記(1b)、(2b)及び(3b)のそれぞれにおいて緊急性の低いアクセス特性を有するデータベースアクセスのためのデータ読出し要求を発行する場合には、第3の優先度のキューにデータ読出し要求を格納することを決定し、前記(1b)、(2b)及び(3b)のそれぞれにおいて緊急性の低いアクセス特性よりも緊急性の高いアクセス特定を有するデータベースアクセスのためのデータ読出し要求を発行する場合には、前記第3の優先度よりも低い第4の優先度のキューにデータ読出し要求を格納することを決定する、
    請求項36に記載のデータベース管理システム。
  39. 前記クエリプランに基づき前記複数のデータベースオペレーションのうちの未実行のデータベースオペレーションの数である残存ステップ数を計算し、前記計算された残存ステップ数の少ないタスクの優先度を上げるタスク管理部、
    を更に備え、
    前記クエリ実行部は、前記上げられた優先度を有する前記タスクを実行することにより発行される前記データ読出し要求を、前記上げられた優先度に対応するキューに格納する、
    請求項36に記載のデータベース管理システム。
  40. 前記クエリ実行部は、生成された各タスクの実行において、データの取得を待ち、該データを取得した後、データの取得待ちを開始した順序と同じ順序で、タスクの実行を再開する、
    請求項30乃至34のうちのいずれか1項に記載のデータベース管理システム。
  41. データベースへのクエリを受け付けるクエリ受付ステップと、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成ステップと、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行ステップと
    を有し、
    前記クエリ実行ステップでは、前記クエリの実行において、
    (1a) データベースオペレーションを実行するための第一のタスクを生成すること、
    (1b) 前記生成された第一のタスクを実行することで、前記第一のタスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (2a) 前記第一のタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第二のタスクを新たに生成すること、
    (2b) 前記生成された第二のタスクの各々を実行することで、前記第二のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (3a) 前記第二のタスクの各々に対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第三のタスクを新たに生成すること、及び、
    (3b) 前記生成された第三のタスクの各々を実行することで、前記第三のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    を行い、少なくとも2つのタスクを並行して実行する、
    データベース管理方法。
  42. 前記クエリ実行ステップでは、前記(1a)、(2a)及び(3a)のそれぞれにおいて、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記タスクの生成を再開する、
    請求項41に記載のデータベース管理方法。
  43. 前記クエリ実行ステップでは、前記(1a)、(2a)及び(3a)のそれぞれにおいて、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減った場合に、前記タスクの生成を再開する、
    請求項41に記載のデータベース管理方法。
  44. 前記所定の状況にあるタスクとは任意の状況にあるタスクである、
    請求項42又は43に記載のデータベース管理方法。
  45. 前記所定の状況にあるタスクとはデータ読出し要求の完了を待っているタスクである、
    請求項42又は43に記載のデータベース管理方法。
  46. 前記クエリ実行ステップでは、生成された各タスクの実行において、データの取得を待ち、該データを取得した後、データの取得待ちを開始した順序と同じ順序で、タスクの実行を再開する、
    請求項41乃至45のうちのいずれか1項に記載のデータベース管理方法。
  47. データベースへのクエリを受け付けるクエリ受付ステップと、
    前記受け付けたクエリから、前記受け付けたクエリを実行するのに必要な複数のデータベースオペレーションを有するクエリプランを生成するクエリプラン生成ステップと、
    前記生成したクエリプランに基づき前記受け付けたクエリを実行するクエリ実行ステップと
    をコンピュータに実行させ、
    前記クエリ実行ステップでは、前記クエリの実行において、
    (1a) データベースオペレーションを実行するための第一のタスクを生成すること、
    (1b) 前記生成された第一のタスクを実行することで、前記第一のタスクに対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (2a) 前記第一のタスクに対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第二のタスクを新たに生成すること、
    (2b) 前記生成された第二のタスクの各々を実行することで、前記第二のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    (3a) 前記第二のタスクの各々に対応したデータベースオペレーションの実行結果に基づきさらに次のデータベースオペレーションを実行するために複数の第三のタスクを新たに生成すること、及び、
    (3b) 前記生成された第三のタスクの各々を実行することで、前記第三のタスクの各々に対応したデータベースオペレーションに必要なデータを読み出すために前記データベースへデータ読出し要求を発行すること、
    を行い、少なくとも2つのタスクを並行して実行する、
    ことを前記コンピュータに実行させるコンピュータプログラム。
  48. 前記クエリ実行ステップでは、前記(1a)、(2a)及び(3a)のそれぞれにおいて、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記タスクの生成を再開する、
    請求項47に記載のコンピュータプログラム。
  49. 前記クエリ実行ステップでは、前記(1a)、(2a)及び(3a)のそれぞれにおいて、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減った場合に、前記タスクの生成を再開する、
    請求項47に記載のコンピュータプログラム。
  50. 前記所定の状況にあるタスクとは任意の状況にあるタスクである、
    請求項48又は49に記載のコンピュータプログラム。
  51. 前記所定の状況にあるタスクとはデータ読出し要求の完了を待っているタスクである、
    請求項48又は49に記載のコンピュータプログラム。
  52. 前記クエリ実行ステップでは、生成された各タスクの実行において、データの取得を待ち、該データを取得した後、データの取得待ちを開始した順序と同じ順序で、タスクの実行を再開する、
    請求項47乃至51のうちのいずれか1項に記載のコンピュータプログラム。
  53. 問合せを受け付ける受付部と、
    前記受け付けた問合せを実行する実行部と
    を備え、
    前記実行部は、前記問合せの実行において、
    (1a) 前記問合せを実行するのに必要なオペレーションを実行するための第一のタスクを生成すること、
    (1b) 生成された第一のタスクを実行することで、前記第一のタスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること、
    (2a) 前記第一のタスクに対応したオペレーションの実行結果に基づきさらに次のオペレーションを実行するために複数の第二のタスクを新たに生成すること、
    (2b) 生成された複数の第二のタスクの各々を実行することで、前記第二のタスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること、
    (3a) 前記第二のタスクの各々に対応したオペレーションの実行結果に基づきさらに次のオペレーションを実行するために複数の第三のタスクを新たに生成すること、及び、
    (3b) 生成された複数の第三のタスクの各々を実行することで、前記第三のタスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること、
    を行い、少なくとも2つのタスクを並行して実行する、
    コンピュータシステム。
  54. 前記実行部は、前記(1a)、(2a)及び(3a)のそれぞれにおけるタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記タスクの生成を再開する、
    請求項53に記載のコンピュータシステム。
  55. 前記実行部は、前記(1a)、(2a)及び(3a)のそれぞれにおけるタスクの生成において、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減った場合に、前記タスクの生成を再開する、
    請求項53に記載のコンピュータシステム。
  56. 前記所定の状況にあるタスクとは任意の状況にあるタスクである、
    請求項54又は55に記載のコンピュータシステム。
  57. 前記所定の状況にあるタスクとはデータ読出し要求の完了を待っているタスクである、
    請求項54又は55に記載のコンピュータシステム。
  58. 前記2以上のタスクを並行して実行することにより、複数個のデータ読出し要求が前記実行部から発行されるようになっており、
    前記実行部から発行された複数個のデータ読出し要求を受け付け、受け付けた複数個のデータ読出し要求を、前記複数個のデータ読出し要求を受け付けた順序とは異なる順序であって全体としてのデータ読出し時間長を短縮化するための順序に並び替えて発行する読出し順序制御部を更に備え、
    前記全体としてのデータ読出し時間長は、前記複数個のデータ読出し要求が前記実行部から前記読出し順序制御部に発行されてから前記複数個のデータ読出し要求に対応したデータが前記実行部に読出されるまでの時間長であり、
    前記読出し順序制御部は、前記複数個のデータ読出し要求でそれぞれ指定されている複数の読出し元記憶位置に基づいて、前記複数個のデータ読出し要求を前記異なる順序に並び替える、
    請求項53乃至57のうちのいずれか1項に記載のコンピュータシステム。
  59. 前記読出し順序制御部が、優先度の異なる複数のキューを更に備え、
    前記実行部が、前記複数のキューのうち、前記受け付けた問合せが持つ入出力要求の緊急性を表す優先度に対応するキューに、前記複数のデータ読出し要求を格納し、
    前記読出し順序制御部は、より高い優先度のキューに格納されたデータ読出し要求を、他のデータ読出し要求より優先的に発行する、
    請求項58に記載のコンピュータシステム。
  60. 前記複数のキューは、スケジュール対象キューとスケジュール対象外キューであり、
    前記実行部は、緊急性の低いデータ読み出し要求を前記スケジュール対象キューに格納し、緊急性が高いデータ読み出し要求を前記スケジュール対象外キューに格納し、
    前記読み出し順序制御部は、前記スケジュール対象キューよりも前記スケジュール対象外キューのデータ読み出し要求を優先的に発行するようになっており、
    前記実行部は、スケジュールキャンセルコマンドを発行し、
    前記読出し順序制御部は、前記スケジュールキャンセルコマンドを受け付けた場合には、前記スケジュールキャンセルコマンドで指定されているデータ読み出し要求、又は、前記スケジュール対象外キューに残っている全てのデータ読み出し要求を、前記スケジュール対象外キューから取り出し、取り出されたデータ読み出し要求を、前記スケジュール対象キューに格納する
    請求項59に記載のコンピュータシステム。
  61. 前記実行部は、前記(1b)、(2b)及び(3b)のそれぞれにおける生成された各タスクの実行において、データの取得を待ち、該データを取得した後、データの取得待ちを開始した順序と同じ順序で、タスクの実行を再開する、
    請求項53乃至57のうちのいずれか1項に記載のコンピュータシステム。
  62. 問合せを受け付ける受付ステップと、
    前記受け付けた問合せを実行する実行ステップと
    を有し、
    前記実行ステップでは、前記問合せの実行において、
    (1a) 前記問合せを実行するのに必要なオペレーションを実行するための第一のタスクを生成すること、
    (1b) 生成された第一のタスクを実行することで、前記第一のタスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること、
    (2a) 前記第一のタスクに対応したオペレーションの実行結果に基づきさらに次のオペレーションを実行するために複数の第二のタスクを新たに生成すること、
    (2b) 生成された複数の第二のタスクの各々を実行することで、前記第二のタスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること、
    (3a) 前記第二のタスクの各々に対応したオペレーションの実行結果に基づきさらに次のオペレーションを実行するために複数の第三のタスクを新たに生成すること、及び、
    (3b) 生成された複数の第三のタスクの各々を実行することで、前記第三のタスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること、
    を行い、少なくとも2つのタスクを並行して実行する、
    問合せ実行方法
  63. 前記実行ステップでは、前記(1a)、(2a)及び(3a)のそれぞれにおいて、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記タスクの生成を再開する、
    請求項62に記載の問合せ実行方法
  64. 前記実行ステップでは、前記(1a)、(2a)及び(3a)のそれぞれにおいて、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減った場合に、前記タスクの生成を再開する、
    請求項62に記載の問合せ実行方法
  65. 前記所定の状況にあるタスクとは任意の状況にあるタスクである、
    請求項63又は64に記載の問合せ実行方法
  66. 前記所定の状況にあるタスクとはデータ読出し要求の完了を待っているタスクである、
    請求項63又は64に記載の問合せ実行方法
  67. 前記実行ステップでは、前記(1b)、(2b)及び(3b)のそれぞれにおける生成された各タスクの実行において、データの取得を待ち、該データを取得した後、データの取得待ちを開始した順序と同じ順序で、タスクの実行を再開する、
    請求項62乃至66のうちのいずれか1項に記載の問合せ実行方法
  68. 問合せを受け付ける受付ステップと、
    前記受け付けた問合せを実行する実行ステップと
    をコンピュータに実行させ、
    前記実行ステップでは、前記問合せの実行において、
    (1a) 前記問合せを実行するのに必要なオペレーションを実行するための第一のタスクを生成すること、
    (1b) 生成された第一のタスクを実行することで、前記第一のタスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること、
    (2a) 前記第一のタスクに対応したオペレーションの実行結果に基づきさらに次のオペレーションを実行するために複数の第二のタスクを新たに生成すること、
    (2b) 生成された複数の第二のタスクの各々を実行することで、前記第二のタスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること、
    (3a) 前記第二のタスクの各々に対応したオペレーションの実行結果に基づきさらに次のオペレーションを実行するために複数の第三のタスクを新たに生成すること、及び、
    (3b) 生成された複数の第三のタスクの各々を実行することで、前記第三のタスクに対応したオペレーションに必要なデータを記憶装置から読み出すためのデータ読出し要求を発行すること、
    を行い、少なくとも2つのタスクを並行して実行する、
    ことを前記コンピュータに実行させるコンピュータプログラム。
  69. 前記実行ステップでは、前記(1a)、(2a)及び(3a)のそれぞれにおいて、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減り、かつ、より高い優先度を有するタスクの生成が待たれていない場合に、前記タスクの生成を再開する、
    請求項68に記載のコンピュータプログラム。
  70. 前記実行ステップでは、前記(1a)、(2a)及び(3a)のそれぞれにおいて、所定の状況にあるタスクの現存数が所定数に達している場合には、前記タスクの生成を待ち、前記現存数が前記所定数より減った場合に、前記タスクの生成を再開する、
    請求項68に記載のコンピュータプログラム。
  71. 前記所定の状況にあるタスクとは任意の状況にあるタスクである、
    請求項69又は70に記載のコンピュータプログラム。
  72. 前記所定の状況にあるタスクとはデータ読出し要求の完了を待っているタスクである、
    請求項69又は70に記載のコンピュータプログラム。
  73. 前記実行ステップでは、前記(1b)、(2b)及び(3b)のそれぞれにおける生成された各タスクの実行において、データの取得を待ち、該データを取得した後、データの取得待ちを開始した順序と同じ順序で、タスクの実行を再開する、
    請求項68乃至72のうちのいずれか1項に記載のコンピュータプログラム。
JP2010214239A 2010-09-24 2010-09-24 データベース管理システム及び方法 Active JP5283675B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010214239A JP5283675B2 (ja) 2010-09-24 2010-09-24 データベース管理システム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010214239A JP5283675B2 (ja) 2010-09-24 2010-09-24 データベース管理システム及び方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005213090A Division JP4611830B2 (ja) 2005-07-22 2005-07-22 データベース管理システム及び方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013080323A Division JP5674850B2 (ja) 2013-04-08 2013-04-08 データベース管理システム及び方法

Publications (2)

Publication Number Publication Date
JP2011034575A JP2011034575A (ja) 2011-02-17
JP5283675B2 true JP5283675B2 (ja) 2013-09-04

Family

ID=43763523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010214239A Active JP5283675B2 (ja) 2010-09-24 2010-09-24 データベース管理システム及び方法

Country Status (1)

Country Link
JP (1) JP5283675B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11941029B2 (en) 2022-02-03 2024-03-26 Bank Of America Corporation Automatic extension of database partitions

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3004102B2 (ja) * 1991-10-04 2000-01-31 株式会社東芝 データベース演算処理装置
JPH05324430A (ja) * 1992-05-26 1993-12-07 Toshiba Corp データ処理装置
US6108653A (en) * 1998-08-31 2000-08-22 Platinum Technology Ip, Inc. Method and apparatus for fast and comprehensive DBMS analysis
JP4116413B2 (ja) * 2002-12-11 2008-07-09 株式会社日立製作所 プリフェッチアプライアンスサーバ
US20050131893A1 (en) * 2003-12-15 2005-06-16 Sap Aktiengesellschaft Database early parallelism method and system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11941029B2 (en) 2022-02-03 2024-03-26 Bank Of America Corporation Automatic extension of database partitions

Also Published As

Publication number Publication date
JP2011034575A (ja) 2011-02-17

Similar Documents

Publication Publication Date Title
JP4611830B2 (ja) データベース管理システム及び方法
KR101721892B1 (ko) 쿼리 관리
US9183234B2 (en) Merge monitor for table delta partitions
US8510316B2 (en) Database processing system and method
JP4612710B2 (ja) トランザクション並行制御方法、データベース管理システム、およびプログラム
US9639576B2 (en) Database management system, computer, and database management method
US10885030B2 (en) Database management system and computer system having first and second query execution parts which execute database operations in parallel
US11636107B2 (en) Database management system, computer, and database management method
JP5733680B2 (ja) コマンド実行装置、コマンド実行システム、コマンド実行方法およびコマンド実行プログラム
JP5652480B2 (ja) データベース更新通知方法
JP2018147301A (ja) 計算機システム及び処理の割当方法
JP6272556B2 (ja) 共有リソース更新装置及び共有リソース更新方法
WO2020222724A1 (en) Microservices data aggregation search engine updating
JP5283675B2 (ja) データベース管理システム及び方法
JP5674850B2 (ja) データベース管理システム及び方法
JP6677605B2 (ja) プログラム、ストレージシステム、およびストレージシステムの制御方法
JP2015026396A (ja) データベース管理システム及び方法
JP5147296B2 (ja) 計算機システム、データベース管理方法及びプログラム
JP4951326B2 (ja) I/o要求の処理順序を最適化するためのコンピュータプログラム
US20170147408A1 (en) Common resource updating apparatus and common resource updating method
JP2006209316A (ja) データベースアクセス管理システム、管理方法及びそのプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130408

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130430

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130528

R150 Certificate of patent or registration of utility model

Ref document number: 5283675

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250