JPH10240590A - 並列データベースシステムルーチン実行方法 - Google Patents
並列データベースシステムルーチン実行方法Info
- Publication number
- JPH10240590A JPH10240590A JP9041907A JP4190797A JPH10240590A JP H10240590 A JPH10240590 A JP H10240590A JP 9041907 A JP9041907 A JP 9041907A JP 4190797 A JP4190797 A JP 4190797A JP H10240590 A JPH10240590 A JP H10240590A
- Authority
- JP
- Japan
- Prior art keywords
- routine
- execution
- database operation
- execution unit
- operation statement
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2443—Stored procedures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】 ルーチンの呼び出しによって起こる通信回数
を削減して問合せ時間を小さくすることが可能な技術を
提供する。 【解決手段】 ルーチンの本体にデータベース操作文が
含まれるかどうかの判定を行なって前記判定した情報を
記録する過程と、分割データ側の問合せ実行部で呼び出
されるルーチンに対して前記記録した情報を参照し、デ
ータベース操作文を含まない場合、ルーチン呼び出し側
かつ分割データ側に有る、データベース操作文に対する
処理を含まないルーチン実行部を選択し、データベース
操作文を含む場合、フロントエンド側に有る、データベ
ース操作文に対する処理を含むルーチン実行部を選択
し、前記選択したルーチン実行部でルーチンの実行を行
なう過程とを含むものである。
を削減して問合せ時間を小さくすることが可能な技術を
提供する。 【解決手段】 ルーチンの本体にデータベース操作文が
含まれるかどうかの判定を行なって前記判定した情報を
記録する過程と、分割データ側の問合せ実行部で呼び出
されるルーチンに対して前記記録した情報を参照し、デ
ータベース操作文を含まない場合、ルーチン呼び出し側
かつ分割データ側に有る、データベース操作文に対する
処理を含まないルーチン実行部を選択し、データベース
操作文を含む場合、フロントエンド側に有る、データベ
ース操作文に対する処理を含むルーチン実行部を選択
し、前記選択したルーチン実行部でルーチンの実行を行
なう過程とを含むものである。
Description
【0001】
【発明の属する技術分野】本発明は、データベースを管
理する並列データベースシステムルーチン実行方法に関
し、特に、リレーショナルデータベース管理システムに
適した問合せの並列処理に好適な問合せ処理方法に関す
る並列データベースシステムルーチン実行方法に適用し
て有効な技術に関するものである。
理する並列データベースシステムルーチン実行方法に関
し、特に、リレーショナルデータベース管理システムに
適した問合せの並列処理に好適な問合せ処理方法に関す
る並列データベースシステムルーチン実行方法に適用し
て有効な技術に関するものである。
【0002】
【従来の技術】従来、事務データ処理を中心にしてリレ
ーショナルデータベース、主にSQLデータベースシス
テムの適用が進んでいる。
ーショナルデータベース、主にSQLデータベースシス
テムの適用が進んでいる。
【0003】初期のSQLでは、データの検索、更新、
挿入、削除といったデータベース操作は、データベース
サーバに対して1つずつ単独に実行を行なっていた。
挿入、削除といったデータベース操作は、データベース
サーバに対して1つずつ単独に実行を行なっていた。
【0004】現在のSQLの仕様では、上記データベー
ス操作を行なう命令の他に、代入や、IF、WHILE
等の制御用の命令を加えて、一連の処理を手続き、また
は、関数という形で一まとめに名前を付けて定義するこ
とができる。尚、ここでは、手続きと関数をまとめてル
ーチンと呼んでいる。
ス操作を行なう命令の他に、代入や、IF、WHILE
等の制御用の命令を加えて、一連の処理を手続き、また
は、関数という形で一まとめに名前を付けて定義するこ
とができる。尚、ここでは、手続きと関数をまとめてル
ーチンと呼んでいる。
【0005】現在、標準化が行われているSQL3の標
準化のDraftは、ISO/IEC JTC1/SC21/WG3 DBL-MCI-004、 I
SO Working Draft Database Language SQL、 1996であ
る。
準化のDraftは、ISO/IEC JTC1/SC21/WG3 DBL-MCI-004、 I
SO Working Draft Database Language SQL、 1996であ
る。
【0006】また、データベース管理システムのデータ
ベースにアクセスするサーバは、ユーザアプリケーショ
ンであるクライアントからの要求を受取り、データベー
スにアクセスして結果を返しており、リレーショナルデ
ータベースシステムにおいては、データを複数のデータ
ベース処理サーバに分割して配置して並列にアクセスす
ることで性能の向上を図ることが容易である。
ベースにアクセスするサーバは、ユーザアプリケーショ
ンであるクライアントからの要求を受取り、データベー
スにアクセスして結果を返しており、リレーショナルデ
ータベースシステムにおいては、データを複数のデータ
ベース処理サーバに分割して配置して並列にアクセスす
ることで性能の向上を図ることが容易である。
【0007】この様な並列データベースシステムに対す
る要求は、データ量の増大にともなって強まってきてお
り、その並列データベースシステムについては、例えば
DeWitt、D.、et.al.:"Parallel Database Systems: The F
uture of High PerformanceDatabase Systems"、 CACM、
Vol.35、 No.6、 1992.に記載されている。
る要求は、データ量の増大にともなって強まってきてお
り、その並列データベースシステムについては、例えば
DeWitt、D.、et.al.:"Parallel Database Systems: The F
uture of High PerformanceDatabase Systems"、 CACM、
Vol.35、 No.6、 1992.に記載されている。
【0008】前記従来の並列データベースシステムで
は、クライアントのユーザアプリケーションプログラム
(以下UAPと呼ぶことにする)からのデータベースに
対する問い合わせを解析しコンパイルする機能や、各分
割したデータに対する結果をまとめてクライアント等に
返す機能を持つサーバ(フロントエンドサーバと呼ぶこ
とにする)と、データが格納されるディスク装置にアク
セスしデータの操作を行う機能を持つ複数のサーバ(デ
ータベース操作サーバと呼ぶことにする)を有してお
り、フロントエンドサーバとデータベース操作サーバ
は、高速な相互結合ネットワークで接続されている。
は、クライアントのユーザアプリケーションプログラム
(以下UAPと呼ぶことにする)からのデータベースに
対する問い合わせを解析しコンパイルする機能や、各分
割したデータに対する結果をまとめてクライアント等に
返す機能を持つサーバ(フロントエンドサーバと呼ぶこ
とにする)と、データが格納されるディスク装置にアク
セスしデータの操作を行う機能を持つ複数のサーバ(デ
ータベース操作サーバと呼ぶことにする)を有してお
り、フロントエンドサーバとデータベース操作サーバ
は、高速な相互結合ネットワークで接続されている。
【0009】また、並列化の為には、データの分割に対
して複数のサーバを割り当てる他に、機能単位でサーバ
を割り当て、パイプライン的な並列化を行なうこともで
きる。この場合には、各サーバ機能毎に実行手順の指示
が存在し、マルチスレッドで各実行手順を実行すること
で上記並列化が実現される。
して複数のサーバを割り当てる他に、機能単位でサーバ
を割り当て、パイプライン的な並列化を行なうこともで
きる。この場合には、各サーバ機能毎に実行手順の指示
が存在し、マルチスレッドで各実行手順を実行すること
で上記並列化が実現される。
【0010】前記の様に並列データベースシステムで
は、データの分割や、各機能に対して並列に実行が行わ
れるが、パイプラインに流れるデータのやり取り等、各
機能間では通信が行われる為、通信の負荷を少なくする
ことが1つの課題となる。
は、データの分割や、各機能に対して並列に実行が行わ
れるが、パイプラインに流れるデータのやり取り等、各
機能間では通信が行われる為、通信の負荷を少なくする
ことが1つの課題となる。
【0011】次に、従来技術として、並列データベース
システムにおける手続きの実行について記述する。手続
きの定義はCREATE PROCEDURE構文によ
って行われる。SQL3では、抽象データ型と呼ばれる
ユーザ定義の型を定義でき、その抽象データ型の定義構
文の中でも手続きの定義を行なうことができる。
システムにおける手続きの実行について記述する。手続
きの定義はCREATE PROCEDURE構文によ
って行われる。SQL3では、抽象データ型と呼ばれる
ユーザ定義の型を定義でき、その抽象データ型の定義構
文の中でも手続きの定義を行なうことができる。
【0012】手続きの定義文は、フロントエンドサーバ
で解析を行ない、処理方法や手順に対応する内部形式の
コード(以下、実行手順指示と呼ぶことにする)を作成
する。実行手順指示は、インタプリタで解釈実行するコ
ードや、実行形式のコードである。実行手順指示は、手
続きに関連する辞書情報として登録される。
で解析を行ない、処理方法や手順に対応する内部形式の
コード(以下、実行手順指示と呼ぶことにする)を作成
する。実行手順指示は、インタプリタで解釈実行するコ
ードや、実行形式のコードである。実行手順指示は、手
続きに関連する辞書情報として登録される。
【0013】手続きの呼び出しは、C言語等で書かれた
アプリケーションプログラムからのSQL文呼び出しと
して、CALL文が用意されている。CALL文は、フ
ロントエンドサーバで解析を行ない、CALL文に書か
れた手続き名や引数に対応する実行手順指示を辞書情報
から取り出し、その実行手順指示を実行する。
アプリケーションプログラムからのSQL文呼び出しと
して、CALL文が用意されている。CALL文は、フ
ロントエンドサーバで解析を行ない、CALL文に書か
れた手続き名や引数に対応する実行手順指示を辞書情報
から取り出し、その実行手順指示を実行する。
【0014】手続きに記述した処理の中にデータの検
索、更新、挿入、削除(以下、更新、挿入、削除問合せ
を含めて更新系問合せと呼ぶことにする)の様なデータ
ベース操作が含まれている場合、データベース操作を行
なう為の実行手順指示は、フロントエンドサーバ用のも
のと、操作を行なうデータが有るデータベース操作サー
バ用のものが存在する。
索、更新、挿入、削除(以下、更新、挿入、削除問合せ
を含めて更新系問合せと呼ぶことにする)の様なデータ
ベース操作が含まれている場合、データベース操作を行
なう為の実行手順指示は、フロントエンドサーバ用のも
のと、操作を行なうデータが有るデータベース操作サー
バ用のものが存在する。
【0015】データベース操作サーバでは、実行手順指
示に従い、各データベース操作サーバに分割されたデー
タへの操作を行ない、フロントエンドサーバでは、各デ
ータベース操作サーバで行なった操作の結果をまとめる
実行手順指示が実行される。
示に従い、各データベース操作サーバに分割されたデー
タへの操作を行ない、フロントエンドサーバでは、各デ
ータベース操作サーバで行なった操作の結果をまとめる
実行手順指示が実行される。
【0016】例として、検索のデータベース操作の場
合、各データベース操作サーバでデータの検索を行な
い、検索したデータをフロントエンドサーバに転送し、
フロントエンドサーバでは転送された順にデータを受け
取り使用する。
合、各データベース操作サーバでデータの検索を行な
い、検索したデータをフロントエンドサーバに転送し、
フロントエンドサーバでは転送された順にデータを受け
取り使用する。
【0017】ソート等の負荷のかかる処理を専用に行な
うデータベース操作サーバを用意する場合は、そのデー
タベース操作サーバ用の実行手順指示も存在する。
うデータベース操作サーバを用意する場合は、そのデー
タベース操作サーバ用の実行手順指示も存在する。
【0018】
【発明が解決しようとする課題】ところで、上記並列デ
ータベースシステムの構成で、検索、更新、挿入、削除
等のデータベース操作文を解析し、各データベース操作
サーバからの結果をまとめるサーバはフロントエンドサ
ーバである。また、ユーザアプリケーションからの手続
きの実行の場合、手続きの本体の実行は、フロントエン
ドサーバになる。
ータベースシステムの構成で、検索、更新、挿入、削除
等のデータベース操作文を解析し、各データベース操作
サーバからの結果をまとめるサーバはフロントエンドサ
ーバである。また、ユーザアプリケーションからの手続
きの実行の場合、手続きの本体の実行は、フロントエン
ドサーバになる。
【0019】手続きの本体にデータベース操作文が含ま
れる場合は、フロントエンドサーバで手続き本体を実行
し、データベース操作文が存在すれば、そのままフロン
トエンドサーバで各データベース操作サーバからの結果
をまとめて、手続きの実行を行なう。
れる場合は、フロントエンドサーバで手続き本体を実行
し、データベース操作文が存在すれば、そのままフロン
トエンドサーバで各データベース操作サーバからの結果
をまとめて、手続きの実行を行なう。
【0020】すなわち、手続き実行部と、データベース
操作文実行部は同じフロントエンドサーバである。但
し、実際にデータベース操作を行なっているのは、各デ
ータが分割されているデータベース操作サーバである。
ここでデータベース操作文実行部といっているのは、各
データベース操作サーバからの結果をまとめる部分(フ
ロントエンド側)を指す。
操作文実行部は同じフロントエンドサーバである。但
し、実際にデータベース操作を行なっているのは、各デ
ータが分割されているデータベース操作サーバである。
ここでデータベース操作文実行部といっているのは、各
データベース操作サーバからの結果をまとめる部分(フ
ロントエンド側)を指す。
【0021】しかし、並列データベースシステムにおい
て、データベース操作文に関数の実行が含まれる場合、
関数呼び出し部は、データが分割されているデータベー
ス操作サーバである。また、関数の本体にデータベース
操作文が含まれる場合、そのデータベース操作文実行部
はフロントエンドサーバである。
て、データベース操作文に関数の実行が含まれる場合、
関数呼び出し部は、データが分割されているデータベー
ス操作サーバである。また、関数の本体にデータベース
操作文が含まれる場合、そのデータベース操作文実行部
はフロントエンドサーバである。
【0022】前記従来の並列データベースシステムで
は、関数の本体の実行は一部の機能を除いて手続きの本
体の実行と共通であり、関数の実行部は手続きの実行部
と同じフロントエンドサーバを用いることができる為、
関数の呼び出し毎に、関数の呼び出し部(この場合デー
タベース操作サーバ内)と関数の実行部(この場合フロ
ントエンドサーバ内)の間で、実行要求等の通信が起こ
るという問題があった。問合せにもよるが、データの件
数分の関数呼び出しが起きる可能性が有る為、その通信
の回数は大きなものとなり得る。
は、関数の本体の実行は一部の機能を除いて手続きの本
体の実行と共通であり、関数の実行部は手続きの実行部
と同じフロントエンドサーバを用いることができる為、
関数の呼び出し毎に、関数の呼び出し部(この場合デー
タベース操作サーバ内)と関数の実行部(この場合フロ
ントエンドサーバ内)の間で、実行要求等の通信が起こ
るという問題があった。問合せにもよるが、データの件
数分の関数呼び出しが起きる可能性が有る為、その通信
の回数は大きなものとなり得る。
【0023】本発明の目的は、ルーチンの呼び出しによ
って起こる通信回数を削減して問合せ時間を小さくする
ことが可能な技術を提供することにある。
って起こる通信回数を削減して問合せ時間を小さくする
ことが可能な技術を提供することにある。
【0024】本発明の他の目的は、実行時までどのルー
チンが実行されるか決定されない場合でもルーチンの呼
び出しによって起こる通信回数を削減して問合せ時間を
小さくすることが可能な技術を提供することにある。
チンが実行されるか決定されない場合でもルーチンの呼
び出しによって起こる通信回数を削減して問合せ時間を
小さくすることが可能な技術を提供することにある。
【0025】本発明の他の目的は、ルーチンの呼び出し
がネストして存在する場合であってもルーチンの呼び出
しによって起こる通信回数を削減して問合せ時間を小さ
くすることが可能な技術を提供することにある。
がネストして存在する場合であってもルーチンの呼び出
しによって起こる通信回数を削減して問合せ時間を小さ
くすることが可能な技術を提供することにある。
【0026】本発明の前記並びにその他の目的と新規な
特徴は、本明細書の記述及び添付図面によって明かにな
るであろう。
特徴は、本明細書の記述及び添付図面によって明かにな
るであろう。
【0027】
【課題を解決するための手段】本願によって開示される
発明のうち、代表的なものの概要を簡単に説明すれば、
下記のとおりである。
発明のうち、代表的なものの概要を簡単に説明すれば、
下記のとおりである。
【0028】すなわち、並列データベースシステムルー
チン実行方法において、分割データ側の問合せ実行部で
呼び出されるルーチン(関数や手続き)に対してルーチ
ンの本体にデータベース操作文を含まない場合に、ルー
チン呼び出し側かつ分割データ側に有る、データベース
操作文に対する処理を含まないルーチン実行部を選択し
て実行するものである。
チン実行方法において、分割データ側の問合せ実行部で
呼び出されるルーチン(関数や手続き)に対してルーチ
ンの本体にデータベース操作文を含まない場合に、ルー
チン呼び出し側かつ分割データ側に有る、データベース
操作文に対する処理を含まないルーチン実行部を選択し
て実行するものである。
【0029】前記並列データベースシステムルーチン実
行方法では、まず、本体にデータベース操作文(検索、
更新系の問合せ)を含まないルーチンの実行部を分割デ
ータ側のルーチン呼び出し側に用意しておき、ルーチン
の定義時にルーチンの本体にデータベース操作文が存在
するかチェックを行ない、その結果の情報を、定義文を
解析して作成する情報の1つとして格納しておく。
行方法では、まず、本体にデータベース操作文(検索、
更新系の問合せ)を含まないルーチンの実行部を分割デ
ータ側のルーチン呼び出し側に用意しておき、ルーチン
の定義時にルーチンの本体にデータベース操作文が存在
するかチェックを行ない、その結果の情報を、定義文を
解析して作成する情報の1つとして格納しておく。
【0030】次に、ルーチンの呼び出しを含む問合せ文
の解析実行時に、そのデータベース操作文が存在するか
のチェック情報を参照し、データベース操作文が存在し
なければ、データベース操作文を含まないルーチンの実
行部でそのルーチンを実行する。
の解析実行時に、そのデータベース操作文が存在するか
のチェック情報を参照し、データベース操作文が存在し
なければ、データベース操作文を含まないルーチンの実
行部でそのルーチンを実行する。
【0031】ルーチンの呼び出しとルーチンの実行部の
間で通信が起こらないので、通信回数が大幅に削減さ
れ、データベース操作文を本体に含まないルーチンの実
行で通信回数を小さくすることが可能である。
間で通信が起こらないので、通信回数が大幅に削減さ
れ、データベース操作文を本体に含まないルーチンの実
行で通信回数を小さくすることが可能である。
【0032】また、ルーチン呼び出しに対して、どのル
ーチンが実行されるか実行時まで決定されない場合に
は、データベース操作文が存在するかのチェック情報
を、ルーチンの本体を解析した結果の実行手順指示に付
随する情報の1つとして設定しておくことで、実行時に
決定したルーチンに対してデータベース操作文が存在す
るかチェックを行ない、ルーチンの実行部を選択するこ
とが可能である。
ーチンが実行されるか実行時まで決定されない場合に
は、データベース操作文が存在するかのチェック情報
を、ルーチンの本体を解析した結果の実行手順指示に付
随する情報の1つとして設定しておくことで、実行時に
決定したルーチンに対してデータベース操作文が存在す
るかチェックを行ない、ルーチンの実行部を選択するこ
とが可能である。
【0033】データベース操作文無しのルーチン実行部
で実行するルーチンまたは手続きの本体に、ルーチンの
呼び出しがネストして存在する場合には、そのネストし
て呼ばれる方のルーチンに対してデータベース操作文が
存在するかどうかのチェックを行う。
で実行するルーチンまたは手続きの本体に、ルーチンの
呼び出しがネストして存在する場合には、そのネストし
て呼ばれる方のルーチンに対してデータベース操作文が
存在するかどうかのチェックを行う。
【0034】この場合、ネストして呼ばれるルーチンの
呼び出しは、データベース操作文無しのルーチン実行部
側に有るので、ネストして呼ばれるルーチンの本体にデ
ータベース操作文が存在するかのチェック情報により、
データベース操作文が存在しなければ、データベース操
作文を含まないルーチンの実行部で、そのルーチンを実
行する。
呼び出しは、データベース操作文無しのルーチン実行部
側に有るので、ネストして呼ばれるルーチンの本体にデ
ータベース操作文が存在するかのチェック情報により、
データベース操作文が存在しなければ、データベース操
作文を含まないルーチンの実行部で、そのルーチンを実
行する。
【0035】ネストして呼ばれるルーチンの呼び出しと
ルーチンの実行部の間で通信が起こらないので、通信回
数が大幅に削減される。
ルーチンの実行部の間で通信が起こらないので、通信回
数が大幅に削減される。
【0036】分割データ側で実行する問合せで呼ばれる
ルーチン(本体にデータベース操作文を含まない)の個
数をn、問合せがアクセスするデータの個数をmとする
と、従来の場合と、前記並列データベースシステムルー
チン実行方法を適用する場合とで通信回数が以下の様に
なる。
ルーチン(本体にデータベース操作文を含まない)の個
数をn、問合せがアクセスするデータの個数をmとする
と、従来の場合と、前記並列データベースシステムルー
チン実行方法を適用する場合とで通信回数が以下の様に
なる。
【0037】 問合せ実行要求 ルーチン呼び出し 合計 従来方式 1回 n×m回 n×m+1回 発明方式 1回 0 回 1回 更に、問合せやルーチン呼び出しがループの中に存在す
る場合には、最大ループする回数分の積の通信回数とな
る。問合せがアクセスするデータの個数は、並列データ
ベースシステムで扱う様な大規模データベースでは、数
百、数千万になることが多い為、前記並列データベース
システムルーチン実行方法による効果は大変大きなもの
となる。
る場合には、最大ループする回数分の積の通信回数とな
る。問合せがアクセスするデータの個数は、並列データ
ベースシステムで扱う様な大規模データベースでは、数
百、数千万になることが多い為、前記並列データベース
システムルーチン実行方法による効果は大変大きなもの
となる。
【0038】以上の様に、前記並列データベースシステ
ムルーチン実行方法によれば、分割データ側で呼び出さ
れるルーチンの本体にデータベース操作文を含まない場
合、分割データ側に用意したルーチン実行部でルーチン
を実行するので、ルーチンの呼び出しによって起こる通
信回数を削減して問合せ時間を小さくすることが可能で
ある。
ムルーチン実行方法によれば、分割データ側で呼び出さ
れるルーチンの本体にデータベース操作文を含まない場
合、分割データ側に用意したルーチン実行部でルーチン
を実行するので、ルーチンの呼び出しによって起こる通
信回数を削減して問合せ時間を小さくすることが可能で
ある。
【0039】
【発明の実施の形態】以下に、本発明の並列データベー
スシステムルーチン実行方法において、分割データ側の
問合せ実行部で呼び出される関数に対して関数の本体に
データベース操作文を含まない場合に、関数呼び出し側
かつ分割データ側に有る、データベース操作文に対する
処理を含まないルーチン実行部を選択して実行する一実
施形態の並列データベースシステムルーチン実行方法を
実施する実施装置について説明する。
スシステムルーチン実行方法において、分割データ側の
問合せ実行部で呼び出される関数に対して関数の本体に
データベース操作文を含まない場合に、関数呼び出し側
かつ分割データ側に有る、データベース操作文に対する
処理を含まないルーチン実行部を選択して実行する一実
施形態の並列データベースシステムルーチン実行方法を
実施する実施装置について説明する。
【0040】図1は、本実施形態の並列データベースシ
ステムルーチン実行方法を実施する実施装置の概要を示
す図である。図1において、11は解析部、12は定義
文解析部、13はルーチン実行部、14はルーチン実行
部、15は辞書情報格納部、101は関数定義文、10
2は関数定義情報、103は関数実行手順指示、104
はデータベース操作文チェック情報、110はデータベ
ース操作文有り状態、111はデータベース操作文無し
状態である。
ステムルーチン実行方法を実施する実施装置の概要を示
す図である。図1において、11は解析部、12は定義
文解析部、13はルーチン実行部、14はルーチン実行
部、15は辞書情報格納部、101は関数定義文、10
2は関数定義情報、103は関数実行手順指示、104
はデータベース操作文チェック情報、110はデータベ
ース操作文有り状態、111はデータベース操作文無し
状態である。
【0041】図1に示す様に、本実施形態の並列データ
ベースシステムルーチン実行方法を実施する実施装置で
は、関数定義文101を解析する定義文解析部12、検
索、更新系の問合せ文(以下、データベース操作文と呼
ぶことにする)を本体に含む関数、手続きの実行部であ
るルーチン実行部13(以下、関数と手続きを合わせて
ルーチンと呼ぶ)、データベース操作文に対する処理を
含まないルーチン実行部14、定義文を解析した結果を
格納する辞書情報格納部15を有しており、データベー
ス操作文を本体に含まないルーチン実行部14は、関数
呼び出し側に存在している。
ベースシステムルーチン実行方法を実施する実施装置で
は、関数定義文101を解析する定義文解析部12、検
索、更新系の問合せ文(以下、データベース操作文と呼
ぶことにする)を本体に含む関数、手続きの実行部であ
るルーチン実行部13(以下、関数と手続きを合わせて
ルーチンと呼ぶ)、データベース操作文に対する処理を
含まないルーチン実行部14、定義文を解析した結果を
格納する辞書情報格納部15を有しており、データベー
ス操作文を本体に含まないルーチン実行部14は、関数
呼び出し側に存在している。
【0042】関数定義文101は、解析部11に有る定
義文解析部12で解析され、定義文解析部12は、関数
定義情報102を作成する。
義文解析部12で解析され、定義文解析部12は、関数
定義情報102を作成する。
【0043】関数定義文解析時には、関数の本体にデー
タベース操作文が存在するかどうかのチェックを行な
い、関数定義情報102にはその結果であるデータベー
ス操作文チェック情報104や、関数の本体を解析した
結果である関数実行手順指示103が格納される。関数
実行時には、関数実行手順指示103に従い関数の実行
を行なう。
タベース操作文が存在するかどうかのチェックを行な
い、関数定義情報102にはその結果であるデータベー
ス操作文チェック情報104や、関数の本体を解析した
結果である関数実行手順指示103が格納される。関数
実行時には、関数実行手順指示103に従い関数の実行
を行なう。
【0044】データベース操作文チェック情報104に
より、データベース操作文有り状態110の場合は、関
数の実行をデータベース操作文に対する処理を含むルー
チン実行部13、データベース操作文無し状態111の
場合は、関数の実行をデータベース操作文に対する処理
を含まないルーチン実行部14で行なう。
より、データベース操作文有り状態110の場合は、関
数の実行をデータベース操作文に対する処理を含むルー
チン実行部13、データベース操作文無し状態111の
場合は、関数の実行をデータベース操作文に対する処理
を含まないルーチン実行部14で行なう。
【0045】データベース操作文に対する処理を含まな
いルーチン実行部14は関数呼び出し側に存在し、本体
にデータベース操作文が無い関数の実行には、関数呼び
出しによる通信は起こらない為、通信回数を削減するこ
とができる。
いルーチン実行部14は関数呼び出し側に存在し、本体
にデータベース操作文が無い関数の実行には、関数呼び
出しによる通信は起こらない為、通信回数を削減するこ
とができる。
【0046】例では、関数と手続きの実行をルーチンの
実行部としてまとめているが、関数実行部と手続き実行
部が別に存在しても良い。また、関数のみに本実施形態
の並列データベースシステムルーチン実行方法を適用す
る場合、手続き実行部が無い構成でも良い。また、デー
タベース操作文に手続きを書ける様な拡張がなされた場
合、手続きのみに本実施形態の並列データベースシステ
ムルーチン実行方法を適用し、関数実行部が無い構成と
しても良い。
実行部としてまとめているが、関数実行部と手続き実行
部が別に存在しても良い。また、関数のみに本実施形態
の並列データベースシステムルーチン実行方法を適用す
る場合、手続き実行部が無い構成でも良い。また、デー
タベース操作文に手続きを書ける様な拡張がなされた場
合、手続きのみに本実施形態の並列データベースシステ
ムルーチン実行方法を適用し、関数実行部が無い構成と
しても良い。
【0047】図1は関数呼び出しの例であるが、手続き
に関しても手続きの呼び出しが分割データ側である場合
に対して同様に本実施形態の並列データベースシステム
ルーチン実行方法を問題無く適用できる。手続きの呼び
出しが分割データ側になる場合とは、分割データ側のル
ーチン実行部14で実行する関数や手続きの本体に手続
き呼び出しが有る場合である。
に関しても手続きの呼び出しが分割データ側である場合
に対して同様に本実施形態の並列データベースシステム
ルーチン実行方法を問題無く適用できる。手続きの呼び
出しが分割データ側になる場合とは、分割データ側のル
ーチン実行部14で実行する関数や手続きの本体に手続
き呼び出しが有る場合である。
【0048】手続きに適用する場合、関数定義文101
は手続き定義文、関数定義情報102は手続き定義情
報、関数実行手順指示103は手続き実行指示、関数実
行時は手続き実行時となる。
は手続き定義文、関数定義情報102は手続き定義情
報、関数実行手順指示103は手続き実行指示、関数実
行時は手続き実行時となる。
【0049】図2は、本実施形態の並列データベースシ
ステムルーチン実行方法を実施する実施装置の概略構成
を示す図である。図2において、201は問合せ文、2
10〜212は処理プログラム、21は問合せ解析部、
22は問合せ実行部、23は問合せ実行部、24はデー
タベース操作文実行部、25はデータベース操作文実行
部である。
ステムルーチン実行方法を実施する実施装置の概略構成
を示す図である。図2において、201は問合せ文、2
10〜212は処理プログラム、21は問合せ解析部、
22は問合せ実行部、23は問合せ実行部、24はデー
タベース操作文実行部、25はデータベース操作文実行
部である。
【0050】図2に示す様に、本実施形態の並列データ
ベースシステムルーチン実行方法を実施する実施装置で
は、関数等の定義文である関数定義文101や、検索、
更新系、手続き等の問合せ文201を解析する解析部1
1、定義文を解析した結果である辞書情報格納部15、
問合せ文201を並列に実行した結果をまとめユーザア
プリケーションに結果を返すフロントエンドの役割を行
なう問合せ実行部22、分割されたデータに対して、デ
ータベース操作文の実行を行なう問合せ実行部23を有
している。
ベースシステムルーチン実行方法を実施する実施装置で
は、関数等の定義文である関数定義文101や、検索、
更新系、手続き等の問合せ文201を解析する解析部1
1、定義文を解析した結果である辞書情報格納部15、
問合せ文201を並列に実行した結果をまとめユーザア
プリケーションに結果を返すフロントエンドの役割を行
なう問合せ実行部22、分割されたデータに対して、デ
ータベース操作文の実行を行なう問合せ実行部23を有
している。
【0051】解析部11は、定義文解析部12、問合せ
解析部21を有しており、フロントエンド側の問合せ実
行部22は、ユーザアプリケーションからの手続きの実
行や、データベース操作文に対する処理を含むルーチン
実行部13、データベース操作文実行部24を有してい
る。
解析部21を有しており、フロントエンド側の問合せ実
行部22は、ユーザアプリケーションからの手続きの実
行や、データベース操作文に対する処理を含むルーチン
実行部13、データベース操作文実行部24を有してい
る。
【0052】分割データ側の問合せ実行部23は、分割
されたデータに対するデータベース操作文実行部25、
データベース操作文に対する処理を含まないルーチン実
行部14を有している。
されたデータに対するデータベース操作文実行部25、
データベース操作文に対する処理を含まないルーチン実
行部14を有している。
【0053】図1、図2等では辞書情報格納部15は解
析部11からアクセスする様になっているが、定義情報
の格納や検索を行なう辞書情報提供部を用意して、辞書
情報格納場所へはその辞書情報提供部を介してアクセス
する様にする構成でも、本実施形態の並列データベース
システムルーチン実行方法を問題無く適用できる。
析部11からアクセスする様になっているが、定義情報
の格納や検索を行なう辞書情報提供部を用意して、辞書
情報格納場所へはその辞書情報提供部を介してアクセス
する様にする構成でも、本実施形態の並列データベース
システムルーチン実行方法を問題無く適用できる。
【0054】フロントエンド側のルーチン実行部13
は、ユーザアプリケーションからの手続きの実行、フロ
ントエンド側のルーチン実行部13で実行される関数や
手続きの本体からの関数や手続きの実行、分割データ側
の問合せ実行を行うデータベース操作文実行部25から
のデータベース操作文を含む関数の実行、分割データ側
のルーチン実行部13で実行される関数や手続きの本体
からのデータベース操作文を含む関数や手続きの実行等
に用いられる。
は、ユーザアプリケーションからの手続きの実行、フロ
ントエンド側のルーチン実行部13で実行される関数や
手続きの本体からの関数や手続きの実行、分割データ側
の問合せ実行を行うデータベース操作文実行部25から
のデータベース操作文を含む関数の実行、分割データ側
のルーチン実行部13で実行される関数や手続きの本体
からのデータベース操作文を含む関数や手続きの実行等
に用いられる。
【0055】フロントエンド側のデータベース操作文実
行部24からの関数呼び出しを含む処理を想定する場合
は、その関数実行もフロントエンド側のルーチン実行部
13で行なう。
行部24からの関数呼び出しを含む処理を想定する場合
は、その関数実行もフロントエンド側のルーチン実行部
13で行なう。
【0056】フロントエンド側のデータベース操作文実
行部24は、ユーザアプリケーションからのデータベー
ス操作文の実行、フロントエンド側のルーチン実行部1
3からのデータベース操作文の実行等に用いられ、分割
データ側のデータベース操作文の実行結果をまとめ、ユ
ーザアプリケーション等に結果を返す役割をする。
行部24は、ユーザアプリケーションからのデータベー
ス操作文の実行、フロントエンド側のルーチン実行部1
3からのデータベース操作文の実行等に用いられ、分割
データ側のデータベース操作文の実行結果をまとめ、ユ
ーザアプリケーション等に結果を返す役割をする。
【0057】分割データ側のデータベース操作文実行部
25は、ユーザアプリケーションからのデータベース操
作文の実行、フロントエンド側のルーチン実行部13か
らのデータベース操作文の実行等に用いられ、各分割デ
ータに対する検索、更新系の処理等を行ない、結果をフ
ロントエンド側のデータベース操作文実行部24に返す
役割をする。
25は、ユーザアプリケーションからのデータベース操
作文の実行、フロントエンド側のルーチン実行部13か
らのデータベース操作文の実行等に用いられ、各分割デ
ータに対する検索、更新系の処理等を行ない、結果をフ
ロントエンド側のデータベース操作文実行部24に返す
役割をする。
【0058】分割データ側のルーチン実行部14は、分
割データ側のデータベース操作文実行部25からの、デ
ータベース操作文を含まない関数の実行、分割データ側
のルーチン実行部14からの、データベース操作文を含
まない関数や手続きの実行等に用いられる。
割データ側のデータベース操作文実行部25からの、デ
ータベース操作文を含まない関数の実行、分割データ側
のルーチン実行部14からの、データベース操作文を含
まない関数や手続きの実行等に用いられる。
【0059】分割データ側のルーチン実行部14は、デ
ータベース操作文実行部25内で閉じた処理になってい
る為、図2ではデータベース操作文実行部25内に位置
づけているが、分割データ側のルーチン実行部14と、
データベース操作文実行部25を別プログラムとし、分
割データ側のルーチン実行部14を別の目的で使用でき
る構成であっても良い。
ータベース操作文実行部25内で閉じた処理になってい
る為、図2ではデータベース操作文実行部25内に位置
づけているが、分割データ側のルーチン実行部14と、
データベース操作文実行部25を別プログラムとし、分
割データ側のルーチン実行部14を別の目的で使用でき
る構成であっても良い。
【0060】図3は、本実施形態の並列データベースシ
ステムルーチン実行方法を実施する実施装置の関数定義
文101の一例を示す図である。図3において、31は
FUNCTION構文、301はSET文、302はI
F文、303はSELECT文である。
ステムルーチン実行方法を実施する実施装置の関数定義
文101の一例を示す図である。図3において、31は
FUNCTION構文、301はSET文、302はI
F文、303はSELECT文である。
【0061】図3に示す様に、本実施形態の並列データ
ベースシステムルーチン実行方法を実施する実施装置の
関数定義文101では、データベース言語SQLのCR
EATE FUNCTION構文31で関数を定義して
おり、手続きの場合にはCREATE PROCEDU
RE構文で定義する。
ベースシステムルーチン実行方法を実施する実施装置の
関数定義文101では、データベース言語SQLのCR
EATE FUNCTION構文31で関数を定義して
おり、手続きの場合にはCREATE PROCEDU
RE構文で定義する。
【0062】標準化が進んでいるSQL3では、ユーザ
定義の型の定義文の中で、関数や手続きを定義すること
が可能であり、型の定義時に関数や手続きの解析を行な
うことで、本実施形態の並列データベースシステムルー
チン実行方法を問題無く適用できる。
定義の型の定義文の中で、関数や手続きを定義すること
が可能であり、型の定義時に関数や手続きの解析を行な
うことで、本実施形態の並列データベースシステムルー
チン実行方法を問題無く適用できる。
【0063】図3はfという名称の関数の定義であり、
関数本体には、SET文301の様な代入や、IF文3
02やWHILE文の様な制御用の構文、SELECT
文303の様なデータベース操作文を書くことができ
る。
関数本体には、SET文301の様な代入や、IF文3
02やWHILE文の様な制御用の構文、SELECT
文303の様なデータベース操作文を書くことができ
る。
【0064】更新系の問合せには更新用のUPDATE
文、削除用のDELETE文、データ挿入用のINSE
RT文が有る。ユーザアプリケーションからの問合せと
同様な構文として、カーソルを定義し、検索、更新等を
行なうことも可能である。
文、削除用のDELETE文、データ挿入用のINSE
RT文が有る。ユーザアプリケーションからの問合せと
同様な構文として、カーソルを定義し、検索、更新等を
行なうことも可能である。
【0065】図4は、本実施形態の並列データベースシ
ステムルーチン実行方法を実施する実施装置の問合せ文
201の一例を示す図である。図4において、401は
呼び出し文である。
ステムルーチン実行方法を実施する実施装置の問合せ文
201の一例を示す図である。図4において、401は
呼び出し文である。
【0066】図4に示す様に、本実施形態の並列データ
ベースシステムルーチン実行方法を実施する実施装置の
問合せ文201では、SELECT文303によるWH
ERE条件の1つに関数fの呼び出し文401があり、
条件の評価順序によって、表personal_dat
a_tableのデータ数もしくはweight_da
ta > 50のデータ数回、関数fの呼び出しが起こ
る。
ベースシステムルーチン実行方法を実施する実施装置の
問合せ文201では、SELECT文303によるWH
ERE条件の1つに関数fの呼び出し文401があり、
条件の評価順序によって、表personal_dat
a_tableのデータ数もしくはweight_da
ta > 50のデータ数回、関数fの呼び出しが起こ
る。
【0067】並列データベースシステムの場合、数百、
数千万のデータを想定する為、関数の呼び出し回数も膨
大なものとなり得る。引数が同じ呼び出しについて同じ
結果となることが保証される関数の場合、同じ引数の関
数呼び出しを行なわない様にすることも考えられるが、
特殊な場合を除き関数の呼び出しの回数は多い。
数千万のデータを想定する為、関数の呼び出し回数も膨
大なものとなり得る。引数が同じ呼び出しについて同じ
結果となることが保証される関数の場合、同じ引数の関
数呼び出しを行なわない様にすることも考えられるが、
特殊な場合を除き関数の呼び出しの回数は多い。
【0068】図4の例では、問合せ文201はデータベ
ース操作文である。問合せ文201が手続きの呼び出し
である場合、その手続きの本体中のデータベース操作文
内の関数呼び出しに対しても本実施形態の並列データベ
ースシステムルーチン実行方法を適用できる。その場
合、関数呼び出しを含むデータベース操作文の解析は、
手続きの解析時となる。
ース操作文である。問合せ文201が手続きの呼び出し
である場合、その手続きの本体中のデータベース操作文
内の関数呼び出しに対しても本実施形態の並列データベ
ースシステムルーチン実行方法を適用できる。その場
合、関数呼び出しを含むデータベース操作文の解析は、
手続きの解析時となる。
【0069】また、手続きの本体中でかつデータベース
操作文以外からの関数や手続きの呼び出しに対しては、
呼び出しとルーチン実行部13は同じ側にあり、データ
ベース操作文の有る無しにかかわらず、もともと呼び出
し毎の通信は起こらない。
操作文以外からの関数や手続きの呼び出しに対しては、
呼び出しとルーチン実行部13は同じ側にあり、データ
ベース操作文の有る無しにかかわらず、もともと呼び出
し毎の通信は起こらない。
【0070】また、問合せ文201が手続きの呼び出し
である場合、その手続き自体の呼び出しとルーチン実行
部13は同じ側にあり、データベース操作文の有る無し
にかかわらず、もともと呼び出し毎の通信は起こらな
い。
である場合、その手続き自体の呼び出しとルーチン実行
部13は同じ側にあり、データベース操作文の有る無し
にかかわらず、もともと呼び出し毎の通信は起こらな
い。
【0071】図5は、本実施形態の並列データベースシ
ステムルーチン実行方法を実施する実施装置の関数定義
情報102の一例を示す図である。
ステムルーチン実行方法を実施する実施装置の関数定義
情報102の一例を示す図である。
【0072】図5に示す様に、本実施形態の並列データ
ベースシステムルーチン実行方法を実施する実施装置の
関数定義情報102では、CREATE FUNCTI
ON等で定義した関数を定義文解析部12で解析した結
果の情報を表しており、一般に、名称に関する情報、パ
ラメタや戻り値に関する情報等を含んでいる。
ベースシステムルーチン実行方法を実施する実施装置の
関数定義情報102では、CREATE FUNCTI
ON等で定義した関数を定義文解析部12で解析した結
果の情報を表しており、一般に、名称に関する情報、パ
ラメタや戻り値に関する情報等を含んでいる。
【0073】本実施形態の並列データベースシステムル
ーチン実行方法を実施する実施装置で必要とする定義情
報は、関数実行手順指示103とデータベース操作文チ
ェック情報104であり、他にどの様な情報が有るかは
特に関係は無い。データベース操作文チェック情報10
4は、定義した関数の本体にデータベース操作文が存在
するかどうかを表す情報であればどういう形式でも良
い。例えば、存在すればON、存在しなければOFFの
フラグ情報等で実現される。
ーチン実行方法を実施する実施装置で必要とする定義情
報は、関数実行手順指示103とデータベース操作文チ
ェック情報104であり、他にどの様な情報が有るかは
特に関係は無い。データベース操作文チェック情報10
4は、定義した関数の本体にデータベース操作文が存在
するかどうかを表す情報であればどういう形式でも良
い。例えば、存在すればON、存在しなければOFFの
フラグ情報等で実現される。
【0074】図3の例の場合、関数fの定義文の本体
に、データベース操作文であるSELECT文303が
含まれている為、データベース操作文チェック情報10
4はONになる。
に、データベース操作文であるSELECT文303が
含まれている為、データベース操作文チェック情報10
4はONになる。
【0075】データベース操作文チェック情報104
は、関数定義情報102では無く、関数実行手順指示1
03に含まれていても良い。関数実行手順指示103
は、関数定義情報102に無くても、関数定義情報10
2と対応して取り出せる様になっていれば良い。例え
ば、関数定義情報102には、関数実行手順指示103
の識別子があり関数定義情報102とは他の格納場所に
格納すること等が考えられる。
は、関数定義情報102では無く、関数実行手順指示1
03に含まれていても良い。関数実行手順指示103
は、関数定義情報102に無くても、関数定義情報10
2と対応して取り出せる様になっていれば良い。例え
ば、関数定義情報102には、関数実行手順指示103
の識別子があり関数定義情報102とは他の格納場所に
格納すること等が考えられる。
【0076】手続きの定義情報の場合も同様である。関
数と手続きは、同じ形式の定義情報を使用し、種別を表
す情報で手続きか関数かをわける方法を用いることもで
きる。
数と手続きは、同じ形式の定義情報を使用し、種別を表
す情報で手続きか関数かをわける方法を用いることもで
きる。
【0077】図6は、本実施形態の並列データベースシ
ステムルーチン実行方法を実施する実施装置の関数実行
手順指示103の一例を示す図である。図6において、
61は関数本体用実行手順指示、62及び63は検索用
実行手順指示、64〜66は共通情報である。
ステムルーチン実行方法を実施する実施装置の関数実行
手順指示103の一例を示す図である。図6において、
61は関数本体用実行手順指示、62及び63は検索用
実行手順指示、64〜66は共通情報である。
【0078】図6に示す様に、本実施形態の並列データ
ベースシステムルーチン実行方法を実施する実施装置の
関数実行手順指示103では、関数定義文101を解析
した結果、IF文302やWHILE文等の制御用の構
文や代入文等の実行手順指示や、手続きの呼び出しの実
行手順指示や、データベース操作文の実行手順指示を含
む関数本体用実行手順指示61が作成される。関数本体
にデータベース操作文が有る場合、対応する検索用実行
手順指示62及び63も作成する必要がある。
ベースシステムルーチン実行方法を実施する実施装置の
関数実行手順指示103では、関数定義文101を解析
した結果、IF文302やWHILE文等の制御用の構
文や代入文等の実行手順指示や、手続きの呼び出しの実
行手順指示や、データベース操作文の実行手順指示を含
む関数本体用実行手順指示61が作成される。関数本体
にデータベース操作文が有る場合、対応する検索用実行
手順指示62及び63も作成する必要がある。
【0079】図6の例は各構文を実行する為の指示と情
報をインタプリタが解釈実行する例であるが、各構文を
実行する実行形式のコードであっても良い。
報をインタプリタが解釈実行する例であるが、各構文を
実行する実行形式のコードであっても良い。
【0080】制御用の構文や代入文等に関数呼び出しが
含まれる場合は、関数呼び出しの実行手順指示や情報が
有る。手続きの呼び出しの実行手順指示や、関数呼び出
しの実行手順指示が呼び出す手続きや関数の実行手順指
示は別に存在し、呼び出し時に指示や情報に従い定義情
報や定義情報のキャッシュから取り出し実行する。
含まれる場合は、関数呼び出しの実行手順指示や情報が
有る。手続きの呼び出しの実行手順指示や、関数呼び出
しの実行手順指示が呼び出す手続きや関数の実行手順指
示は別に存在し、呼び出し時に指示や情報に従い定義情
報や定義情報のキャッシュから取り出し実行する。
【0081】データベース操作文実行手順指示は、関数
本体にSELECT文303等の検索問合せや、UPD
ATE文、DELETE文、INSERT文等の更新系
問合せが有る場合にでき、実際に分割データに対する実
行の検索用実行手順指示63と、各分割データに対する
実行の結果をまとめるフロントエンド用の検索用実行手
順指示62と対応している。
本体にSELECT文303等の検索問合せや、UPD
ATE文、DELETE文、INSERT文等の更新系
問合せが有る場合にでき、実際に分割データに対する実
行の検索用実行手順指示63と、各分割データに対する
実行の結果をまとめるフロントエンド用の検索用実行手
順指示62と対応している。
【0082】各データベース操作文実行手順指示の実行
用情報に、対応するフロントエンド用と分割データ用の
検索用実行手順指示62及び63の情報があり、定義情
報や定義情報のキャッシュからそのフロントエンド用と
分割データ用の検索用実行手順指示62及び63を取り
出し、対応する問合せ実行部22及び23に転送し実行
する。
用情報に、対応するフロントエンド用と分割データ用の
検索用実行手順指示62及び63の情報があり、定義情
報や定義情報のキャッシュからそのフロントエンド用と
分割データ用の検索用実行手順指示62及び63を取り
出し、対応する問合せ実行部22及び23に転送し実行
する。
【0083】関数本体用の関数本体用実行手順指示61
や、検索用実行手順指示62及び63等の各まとまりの
実行手順指示に、その実行に共通して使用する情報やそ
の実行手順指示の実行に必要な情報として共通情報64
〜66を用意する。共通して使用する情報や実行に必要
な情報が無いならば、無くても良い。
や、検索用実行手順指示62及び63等の各まとまりの
実行手順指示に、その実行に共通して使用する情報やそ
の実行手順指示の実行に必要な情報として共通情報64
〜66を用意する。共通して使用する情報や実行に必要
な情報が無いならば、無くても良い。
【0084】データベース操作文が関数や手続きの本体
に存在するかどうかを表すデータベース操作文チェック
情報104は、関数本体用実行手順指示61の共通情報
64として置く方法が有る。
に存在するかどうかを表すデータベース操作文チェック
情報104は、関数本体用実行手順指示61の共通情報
64として置く方法が有る。
【0085】標準化が進んでいるSQL3では、関数や
手続きの呼び出しに対して、解析時に実行手順指示が一
意に決定しないことがある。この場合、実行時に選択さ
れる実行手順指示によって、本体にデータベース操作文
が有るか無いかが変わってしまう為、関数本体用実行手
順指示61の共通情報64として置いておく。
手続きの呼び出しに対して、解析時に実行手順指示が一
意に決定しないことがある。この場合、実行時に選択さ
れる実行手順指示によって、本体にデータベース操作文
が有るか無いかが変わってしまう為、関数本体用実行手
順指示61の共通情報64として置いておく。
【0086】関数や手続きの呼び出しに対して、解析時
に実行手順指示が一意に決まる保証があれば、関数本体
用実行手順指示61の共通情報64で無く、関数定義情
報102に直接置いておいても良い。
に実行手順指示が一意に決まる保証があれば、関数本体
用実行手順指示61の共通情報64で無く、関数定義情
報102に直接置いておいても良い。
【0087】また、一意に決まらない場合でも、実行時
に呼び出される可能性のある関数と、データベース操作
文が関数や手続きの本体に存在するかどうかを表すデー
タベース操作文チェック情報104との一覧表を関数定
義情報102に作成しておく方法を用いても良い。
に呼び出される可能性のある関数と、データベース操作
文が関数や手続きの本体に存在するかどうかを表すデー
タベース操作文チェック情報104との一覧表を関数定
義情報102に作成しておく方法を用いても良い。
【0088】図7は、本実施形態の並列データベースシ
ステムルーチン実行方法を実施する実施装置の定義文解
析部12の処理手順を示すフローチャートである。
ステムルーチン実行方法を実施する実施装置の定義文解
析部12の処理手順を示すフローチャートである。
【0089】図7に示す様に、本実施形態の並列データ
ベースシステムルーチン実行方法を実施する実施装置の
定義文解析部12では、まず解析する定義文がルーチン
の定義文であるか場合分けする(ステップ701)。ル
ーチンの定義文で無ければ、その定義文を解析して(ス
テップ713)、定義情報として辞書情報格納部15に
登録を行なう(ステップ714)。
ベースシステムルーチン実行方法を実施する実施装置の
定義文解析部12では、まず解析する定義文がルーチン
の定義文であるか場合分けする(ステップ701)。ル
ーチンの定義文で無ければ、その定義文を解析して(ス
テップ713)、定義情報として辞書情報格納部15に
登録を行なう(ステップ714)。
【0090】ルーチン定義文である場合も、解析して
(ステップ702)、定義情報として辞書情報格納部1
5に登録を行なうのは同じである。但し、ルーチンの場
合、ルーチンの本体を解析し、実行手順指示を作成する
ことが必要になる。
(ステップ702)、定義情報として辞書情報格納部1
5に登録を行なうのは同じである。但し、ルーチンの場
合、ルーチンの本体を解析し、実行手順指示を作成する
ことが必要になる。
【0091】まず、そのルーチンの実行に共通して使用
する情報やその実行手順指示の実行に必要な情報として
共通情報64を作成する(ステップ704)。データベ
ース操作文チェックフラグの初期値としてOFFを共通
情報64に設定する(ステップ705)。すなわち、デ
ータベース操作文は、まだ本体に見つかっていない状態
である。
する情報やその実行手順指示の実行に必要な情報として
共通情報64を作成する(ステップ704)。データベ
ース操作文チェックフラグの初期値としてOFFを共通
情報64に設定する(ステップ705)。すなわち、デ
ータベース操作文は、まだ本体に見つかっていない状態
である。
【0092】ルーチンの本体を順々に解析し(ステップ
706)、データベース操作文を含んでいれば(ステッ
プ707)、データベース操作文チェックフラグをON
にし(ステップ708)、そのデータベース操作文の実
行手順指示(フロントエンド用と分割データ用)を作成
し(ステップ709)、これらデータベース操作文の実
行手順指示を転送し、起動する為の実行手順指示(本体
用)を作成する(ステップ710)。
706)、データベース操作文を含んでいれば(ステッ
プ707)、データベース操作文チェックフラグをON
にし(ステップ708)、そのデータベース操作文の実
行手順指示(フロントエンド用と分割データ用)を作成
し(ステップ709)、これらデータベース操作文の実
行手順指示を転送し、起動する為の実行手順指示(本体
用)を作成する(ステップ710)。
【0093】データベース操作文を含んでいなければ、
対応する実行手順指示(本体用)を作成する(ステップ
710)。以下、ルーチン本体を順々に解析していく
(ステップ711)。
対応する実行手順指示(本体用)を作成する(ステップ
710)。以下、ルーチン本体を順々に解析していく
(ステップ711)。
【0094】一通り実行手順指示作成が終了したら、作
成したルーチン実行手順指示(本体用と、各データベー
ス操作文のフロントエンド及び分割データ用)を辞書情
報格納部15等に登録する(ステップ712)。
成したルーチン実行手順指示(本体用と、各データベー
ス操作文のフロントエンド及び分割データ用)を辞書情
報格納部15等に登録する(ステップ712)。
【0095】図7の例では、ルーチン実行手順指示を定
義文解析時に作成する方法を取っているが、ルーチンを
使用する問合せの解析時に、ルーチン実行手順指示を作
成する代案も適用できる。その場合、問合せの解析時の
ルーチン実行手順指示作成の時に、データベース操作文
を含むかチェックを行ない情報を設定することで、問題
無く適用できる。
義文解析時に作成する方法を取っているが、ルーチンを
使用する問合せの解析時に、ルーチン実行手順指示を作
成する代案も適用できる。その場合、問合せの解析時の
ルーチン実行手順指示作成の時に、データベース操作文
を含むかチェックを行ない情報を設定することで、問題
無く適用できる。
【0096】図7の例では、データベース操作文チェッ
ク情報104を関数本体用実行手順指示61の共通情報
64に設定しているが、問合せ解析時に使用する定義情
報として直接設定する代案も適用できる。
ク情報104を関数本体用実行手順指示61の共通情報
64に設定しているが、問合せ解析時に使用する定義情
報として直接設定する代案も適用できる。
【0097】また、データベース操作文チェック情報1
04は、ON、OFFのフラグ情報で無くても、データ
ベース定義文がルーチン本体に含まれているかどうかを
識別できる情報であれば良い。
04は、ON、OFFのフラグ情報で無くても、データ
ベース定義文がルーチン本体に含まれているかどうかを
識別できる情報であれば良い。
【0098】図8は、本実施形態の並列データベースシ
ステムルーチン実行方法を実施する実施装置の問合せ解
析部21の処理手順を示すフローチャートである。
ステムルーチン実行方法を実施する実施装置の問合せ解
析部21の処理手順を示すフローチャートである。
【0099】図8に示す様に、本実施形態の並列データ
ベースシステムルーチン実行方法を実施する実施装置の
問合せ解析部21では、まず解析する問合せがデータベ
ース操作文であるか場合分けする(ステップ801)。
データベース操作文で無ければ、対応する実行手順指示
を作成する(ステップ806)。
ベースシステムルーチン実行方法を実施する実施装置の
問合せ解析部21では、まず解析する問合せがデータベ
ース操作文であるか場合分けする(ステップ801)。
データベース操作文で無ければ、対応する実行手順指示
を作成する(ステップ806)。
【0100】データベース操作文である場合も実行手順
指示を作成するのは同じだが、データベース操作文の場
合は、フロントエンド用実行手順指示と分割データ用実
行手順指示を作成する(ステップ802及びステップ8
03)。
指示を作成するのは同じだが、データベース操作文の場
合は、フロントエンド用実行手順指示と分割データ用実
行手順指示を作成する(ステップ802及びステップ8
03)。
【0101】また、ソート等特別な用途用の実行手順指
示を別途作成する方法も有るが、その場合でも本実施形
態の並列データベースシステムルーチン実行方法を適用
できる。関数呼び出しが、特別な用途用の実行部で行わ
れる場合、その実行部にデータベース操作文に対する処
理を含まないルーチン実行部14を用意することで同様
に適用できる。
示を別途作成する方法も有るが、その場合でも本実施形
態の並列データベースシステムルーチン実行方法を適用
できる。関数呼び出しが、特別な用途用の実行部で行わ
れる場合、その実行部にデータベース操作文に対する処
理を含まないルーチン実行部14を用意することで同様
に適用できる。
【0102】作成した実行手順指示は、各実行手順指示
の実行部(フロントエンド側データベース操作文実行部
24と分割データ側データベース操作文実行部25)に
転送し(ステップ804)、実行要求を行なう(ステッ
プ805)。
の実行部(フロントエンド側データベース操作文実行部
24と分割データ側データベース操作文実行部25)に
転送し(ステップ804)、実行要求を行なう(ステッ
プ805)。
【0103】図8は、問合せを解析し実行手順指示を作
成して、転送し、そのまま実行要求を行なう例である
が、実行手順を作成して、別途転送や実行要求を行なう
代案にも本実施形態の並列データベースシステムルーチ
ン実行方法を問題無く適用できる。
成して、転送し、そのまま実行要求を行なう例である
が、実行手順を作成して、別途転送や実行要求を行なう
代案にも本実施形態の並列データベースシステムルーチ
ン実行方法を問題無く適用できる。
【0104】図8の例では、問合せ文201に関数呼び
出しが有る場合でも、その関数の本体にデータベース操
作文が有るかどうかデータベース操作文チェック情報1
04を参照していない。これは、解析時に呼び出す関数
が一意に決定しないことを想定しているからである。
出しが有る場合でも、その関数の本体にデータベース操
作文が有るかどうかデータベース操作文チェック情報1
04を参照していない。これは、解析時に呼び出す関数
が一意に決定しないことを想定しているからである。
【0105】解析時に呼び出す関数が一意に決まる場合
は、解析時にデータベース操作文チェック情報104を
参照し、OFFであれば、データベース操作文に対する
処理を含まないルーチン実行部14で関数の実行を行な
う実行手順指示(分割データ側)を作成しても良い。
は、解析時にデータベース操作文チェック情報104を
参照し、OFFであれば、データベース操作文に対する
処理を含まないルーチン実行部14で関数の実行を行な
う実行手順指示(分割データ側)を作成しても良い。
【0106】図9は、本実施形態の並列データベースシ
ステムルーチン実行方法を実施する実施装置のデータベ
ース操作文の有るルーチン実行部13の処理手順を示す
フローチャートである。
ステムルーチン実行方法を実施する実施装置のデータベ
ース操作文の有るルーチン実行部13の処理手順を示す
フローチャートである。
【0107】図9に示す様に、本実施形態の並列データ
ベースシステムルーチン実行方法を実施する実施装置の
データベース操作文の有るルーチン実行部13では、ル
ーチンの実行要求に対応して、実行するルーチンの実行
手順指示を取得する(ステップ901)。ルーチンの実
行手順指示は辞書情報格納部15に存在するか、また
は、辞書情報格納部15の情報から取得できる。ルーチ
ン実行部13に、ルーチン実行手順指示のキャッシュを
置けば、2回目以降のルーチン呼び出し時は辞書情報格
納部15にアクセスしなくて済む。
ベースシステムルーチン実行方法を実施する実施装置の
データベース操作文の有るルーチン実行部13では、ル
ーチンの実行要求に対応して、実行するルーチンの実行
手順指示を取得する(ステップ901)。ルーチンの実
行手順指示は辞書情報格納部15に存在するか、また
は、辞書情報格納部15の情報から取得できる。ルーチ
ン実行部13に、ルーチン実行手順指示のキャッシュを
置けば、2回目以降のルーチン呼び出し時は辞書情報格
納部15にアクセスしなくて済む。
【0108】ルーチン実行手順指示を順々に解釈し(ス
テップ902)、実行していく。データベース操作文の
実行の場合(ステップ903)、実行手順指示(フロン
トエンド用、分割データ用)を取得し(ステップ904
及びステップ905)、各実行手順指示を、対応する実
行部(フロントエンド側のデータベース操作文実行部2
4、分割データ側のデータベース操作文実行部25)に
転送し(ステップ906)、実行要求を行なう(ステッ
プ907)。各実行部で実行手順指示が実行され、その
結果を取得し(ステップ908)、後の処理等で用い
る。
テップ902)、実行していく。データベース操作文の
実行の場合(ステップ903)、実行手順指示(フロン
トエンド用、分割データ用)を取得し(ステップ904
及びステップ905)、各実行手順指示を、対応する実
行部(フロントエンド側のデータベース操作文実行部2
4、分割データ側のデータベース操作文実行部25)に
転送し(ステップ906)、実行要求を行なう(ステッ
プ907)。各実行部で実行手順指示が実行され、その
結果を取得し(ステップ908)、後の処理等で用い
る。
【0109】データベース操作文でない場合は(ステッ
プ903)、対応する実行手順指示に従い実行を行なう
(ステップ909)。以下、実行手順指示を順々に解釈
実行していく(ステップ910)。
プ903)、対応する実行手順指示に従い実行を行なう
(ステップ909)。以下、実行手順指示を順々に解釈
実行していく(ステップ910)。
【0110】図10は、本実施形態の並列データベース
システムルーチン実行方法を実施する実施装置のデータ
ベース操作文に対する処理を含まないルーチン実行部1
4の処理手順を示すフローチャートである。
システムルーチン実行方法を実施する実施装置のデータ
ベース操作文に対する処理を含まないルーチン実行部1
4の処理手順を示すフローチャートである。
【0111】図10に示す様に、本実施形態のデータベ
ース操作文に対する処理を含まないルーチン実行部14
では、データベース操作文の実行部分は必要無く、ルー
チンの実行要求に対応して、実行するルーチンの実行手
順指示を取得する(ステップ1001)。
ース操作文に対する処理を含まないルーチン実行部14
では、データベース操作文の実行部分は必要無く、ルー
チンの実行要求に対応して、実行するルーチンの実行手
順指示を取得する(ステップ1001)。
【0112】ルーチンの実行手順指示は辞書情報格納部
15に存在するか、または、辞書情報格納部15の情報
から取得できる。ルーチン実行部14に、ルーチン実行
手順指示のキャッシュを置けば、2回目以降のルーチン
呼び出し時は辞書情報格納部15にアクセスしなくて済
む。
15に存在するか、または、辞書情報格納部15の情報
から取得できる。ルーチン実行部14に、ルーチン実行
手順指示のキャッシュを置けば、2回目以降のルーチン
呼び出し時は辞書情報格納部15にアクセスしなくて済
む。
【0113】分割データ側の問合せ実行部23は、分割
データ毎に複数存在し、各分割データ側のルーチン実行
部14から辞書情報格納部15へのアクセスが行われる
と辞書情報格納部15の負荷が大きいので、辞書情報格
納部15へアクセスできる問合せ実行部23をフロント
エンド側等に限定し、負荷分散を行なう代案も適用でき
る。
データ毎に複数存在し、各分割データ側のルーチン実行
部14から辞書情報格納部15へのアクセスが行われる
と辞書情報格納部15の負荷が大きいので、辞書情報格
納部15へアクセスできる問合せ実行部23をフロント
エンド側等に限定し、負荷分散を行なう代案も適用でき
る。
【0114】ルーチン実行手順指示を順々に解釈し(ス
テップ1002)、対応する実行手順指示に従い実行を
行なう(ステップ1003)。
テップ1002)、対応する実行手順指示に従い実行を
行なう(ステップ1003)。
【0115】図11は、本実施形態の並列データベース
システムルーチン実行方法を実施する実施装置のフロン
トエンド側のデータベース操作文実行部24の処理手順
を示すフローチャートである。
システムルーチン実行方法を実施する実施装置のフロン
トエンド側のデータベース操作文実行部24の処理手順
を示すフローチャートである。
【0116】図11に示す様に、本実施形態の並列デー
タベースシステムルーチン実行方法を実施する実施装置
のフロントエンド側のデータベース操作文実行部24で
は、分割データ側のデータベース操作文実行からの結果
を順に受取っていく(ステップ1101)。
タベースシステムルーチン実行方法を実施する実施装置
のフロントエンド側のデータベース操作文実行部24で
は、分割データ側のデータベース操作文実行からの結果
を順に受取っていく(ステップ1101)。
【0117】次に、受取った順に結果を、ユーザアプリ
ケーションプログラムや、ルーチン本体等、そのデータ
ベース操作文を使用している場所に転送する(ステップ
1102)。以下、各分割データ側から終了報告が来る
まで結果のとりまとめ処理を行なう(ステップ110
3)。
ケーションプログラムや、ルーチン本体等、そのデータ
ベース操作文を使用している場所に転送する(ステップ
1102)。以下、各分割データ側から終了報告が来る
まで結果のとりまとめ処理を行なう(ステップ110
3)。
【0118】図11の例では、分割データ側からの結果
を来た順に転送するだけであるが、受取った結果をソー
トする処理や受取った結果に演算を行なう処理をフロン
トエンド側で行なう代案にも、本実施形態の並列データ
ベースシステムルーチン実行方法を問題無く適用でき
る。
を来た順に転送するだけであるが、受取った結果をソー
トする処理や受取った結果に演算を行なう処理をフロン
トエンド側で行なう代案にも、本実施形態の並列データ
ベースシステムルーチン実行方法を問題無く適用でき
る。
【0119】図12は、本実施形態の並列データベース
システムルーチン実行方法を実施する実施装置の分割デ
ータ側のデータベース操作文実行部25の処理手順を示
すフローチャートである。
システムルーチン実行方法を実施する実施装置の分割デ
ータ側のデータベース操作文実行部25の処理手順を示
すフローチャートである。
【0120】図12に示す様に、本実施形態の並列デー
タベースシステムルーチン実行方法を実施する実施装置
の分割データ側のデータベース操作文実行部25では、
データベース操作文の実行手順指示を順々に解釈し(ス
テップ1201)、実行していく。関数呼び出しの場合
(ステップ1202)、関数呼び出しに対応する関数実
行手順指示103を一意に決定する(ステップ120
3)。
タベースシステムルーチン実行方法を実施する実施装置
の分割データ側のデータベース操作文実行部25では、
データベース操作文の実行手順指示を順々に解釈し(ス
テップ1201)、実行していく。関数呼び出しの場合
(ステップ1202)、関数呼び出しに対応する関数実
行手順指示103を一意に決定する(ステップ120
3)。
【0121】これは、問合せ解析時に関数呼び出しに対
応する関数実行手順指示103が一意に決まらない場合
を想定している。標準化が進んでいるSQL3では、問
合せ解析時に関数呼び出しに対応する関数実行手順指示
103が一意に決まらない場合が有り得る。問合せ解析
時に関数呼び出しに対応する関数実行手順指示103が
一意に決まる場合は、この処理(ステップ1203)は
必要無い。
応する関数実行手順指示103が一意に決まらない場合
を想定している。標準化が進んでいるSQL3では、問
合せ解析時に関数呼び出しに対応する関数実行手順指示
103が一意に決まらない場合が有り得る。問合せ解析
時に関数呼び出しに対応する関数実行手順指示103が
一意に決まる場合は、この処理(ステップ1203)は
必要無い。
【0122】次に、決定した関数の関数本体用実行手順
指示61の共通情報64を取得し(ステップ120
4)、データベース操作文を本体に含むかチェックする
(ステップ1205)。
指示61の共通情報64を取得し(ステップ120
4)、データベース操作文を本体に含むかチェックする
(ステップ1205)。
【0123】共通情報64は、辞書情報格納部15に存
在するか、または、辞書情報格納部15の情報から取得
できる。共通情報64や関数実行手順指示103等のキ
ャッシュが存在すれば、キャッシュから取得することも
可能である。
在するか、または、辞書情報格納部15の情報から取得
できる。共通情報64や関数実行手順指示103等のキ
ャッシュが存在すれば、キャッシュから取得することも
可能である。
【0124】データベース操作文チェック情報104が
OFFであれば、データベース操作文が本体に無い関数
なので、データベース操作文に対する処理を含まないル
ーチン実行部14に関数の実行要求を行なう(ステップ
1206)。
OFFであれば、データベース操作文が本体に無い関数
なので、データベース操作文に対する処理を含まないル
ーチン実行部14に関数の実行要求を行なう(ステップ
1206)。
【0125】データベース操作文チェック情報104が
ONであれば、データベース操作文が本体に有る関数な
ので、データベース操作文に対する処理を含むルーチン
実行部13に関数の実行要求を行なう(ステップ120
7)。
ONであれば、データベース操作文が本体に有る関数な
ので、データベース操作文に対する処理を含むルーチン
実行部13に関数の実行要求を行なう(ステップ120
7)。
【0126】ルーチン実行部13またはルーチン実行部
14で関数実行手順指示103が実行され、その実行結
果を取得し(ステップ1208)、後の処理等で用い
る。
14で関数実行手順指示103が実行され、その実行結
果を取得し(ステップ1208)、後の処理等で用い
る。
【0127】関数呼び出しで無い場合は(ステップ12
02)、対応する実行手順指示に従い実行を行なう(ス
テップ1209)。以下、実行手順指示を順々に解釈実
行していく(ステップ1210)。
02)、対応する実行手順指示に従い実行を行なう(ス
テップ1209)。以下、実行手順指示を順々に解釈実
行していく(ステップ1210)。
【0128】図12の例では、データベース操作文チェ
ック情報104は、共通情報64から取得する様になっ
ているが、関数定義文解析時に設定したデータベース操
作文チェック情報104を取得できる様に対応できてい
れば良い。
ック情報104は、共通情報64から取得する様になっ
ているが、関数定義文解析時に設定したデータベース操
作文チェック情報104を取得できる様に対応できてい
れば良い。
【0129】また、データベース操作文チェック情報1
04は、ON、OFFのフラグ情報で無くても、データ
ベース定義文がルーチン本体に含まれているかどうかを
識別できる情報であれば良い。
04は、ON、OFFのフラグ情報で無くても、データ
ベース定義文がルーチン本体に含まれているかどうかを
識別できる情報であれば良い。
【0130】図13は、本実施形態の並列データベース
システムルーチン実行方法を実施する実施装置のデータ
ベース操作文に対する処理を含まないルーチン実行部1
4の実行手順指示実行の処理手順を示すフローチャート
である。
システムルーチン実行方法を実施する実施装置のデータ
ベース操作文に対する処理を含まないルーチン実行部1
4の実行手順指示実行の処理手順を示すフローチャート
である。
【0131】図13に示す様に、本実施形態のデータベ
ース操作文に対する処理を含まないルーチン実行部14
の実行手順指示実行では、図10に示したステップ10
03の実行手順指示実行をより詳細に記している。図1
2では、関数の呼び出しについて本実施形態の並列デー
タベースシステムルーチン実行方法を適用する例になっ
ており、それに対して図13では、分割データ側で実行
される関数から呼び出される手続きや関数に対しても適
用できる。
ース操作文に対する処理を含まないルーチン実行部14
の実行手順指示実行では、図10に示したステップ10
03の実行手順指示実行をより詳細に記している。図1
2では、関数の呼び出しについて本実施形態の並列デー
タベースシステムルーチン実行方法を適用する例になっ
ており、それに対して図13では、分割データ側で実行
される関数から呼び出される手続きや関数に対しても適
用できる。
【0132】ルーチンの実行要求に対応して、実行する
ルーチンの実行手順指示を取得する(ステップ100
1)。ルーチン実行手順指示を順々に解釈し(ステップ
1002)、実行していく。
ルーチンの実行手順指示を取得する(ステップ100
1)。ルーチン実行手順指示を順々に解釈し(ステップ
1002)、実行していく。
【0133】ルーチン呼び出しの場合(ステップ130
1)、ルーチン呼び出しに対応するルーチン(手続きま
たは関数)実行手順指示を一意に決定する(ステップ1
302)。次に、決定したルーチンの関数本体用実行手
順指示61の共通情報64を取得し(ステップ130
3)、データベース操作文を本体に含むかチェックする
(ステップ1304)。
1)、ルーチン呼び出しに対応するルーチン(手続きま
たは関数)実行手順指示を一意に決定する(ステップ1
302)。次に、決定したルーチンの関数本体用実行手
順指示61の共通情報64を取得し(ステップ130
3)、データベース操作文を本体に含むかチェックする
(ステップ1304)。
【0134】データベース操作文チェック情報104が
OFFであれば、データベース操作文が本体に無いルー
チンなので、データベース操作文に対する処理を含まな
いルーチン実行部14にルーチンの実行要求を行なう
(ステップ1305)。
OFFであれば、データベース操作文が本体に無いルー
チンなので、データベース操作文に対する処理を含まな
いルーチン実行部14にルーチンの実行要求を行なう
(ステップ1305)。
【0135】データベース操作文チェック情報104が
ONであれば、データベース操作文が本体に有るルーチ
ンなので、データベース操作文に対する処理を含むルー
チン実行部13にルーチンの実行要求を行なう(ステッ
プ1306)。
ONであれば、データベース操作文が本体に有るルーチ
ンなので、データベース操作文に対する処理を含むルー
チン実行部13にルーチンの実行要求を行なう(ステッ
プ1306)。
【0136】ルーチン実行部13またはルーチン実行部
14でルーチン実行手順指示が実行され、その実行結果
を取得し(ステップ1307)、後の処理等で用いる。
14でルーチン実行手順指示が実行され、その実行結果
を取得し(ステップ1307)、後の処理等で用いる。
【0137】ルーチン呼び出しで無い場合は(ステップ
1301)、対応する実行手順指示に従い実行を行なう
(ステップ1308)。以下、実行手順指示を順々に解
釈実行していく(ステップ1004)。
1301)、対応する実行手順指示に従い実行を行なう
(ステップ1308)。以下、実行手順指示を順々に解
釈実行していく(ステップ1004)。
【0138】図14は、本実施形態の並列データベース
システムルーチン実行方法を実施する実施装置のより具
体的な概略構成を示す図である。図14において、14
01はフロントエンドサーバ、1402はデータベース
操作サーバである。
システムルーチン実行方法を実施する実施装置のより具
体的な概略構成を示す図である。図14において、14
01はフロントエンドサーバ、1402はデータベース
操作サーバである。
【0139】図14に示す様に、本実施形態の並列デー
タベースシステムルーチン実行方法を実施する実施装置
では、図2をより具体的な並列データベースシステムに
適用した例を表している。
タベースシステムルーチン実行方法を実施する実施装置
では、図2をより具体的な並列データベースシステムに
適用した例を表している。
【0140】並列データベースシステムの構成として
は、ユーザアプリケーションプログラム(以下UAPと
呼ぶことにする)からのデータベースに対する問い合わ
せを解析しコンパイルするサーバであるフロントエンド
サーバ1401と、データが格納されるディスク装置に
アクセスしデータの操作を行う複数のサーバであるデー
タベース操作サーバ1402を有している。
は、ユーザアプリケーションプログラム(以下UAPと
呼ぶことにする)からのデータベースに対する問い合わ
せを解析しコンパイルするサーバであるフロントエンド
サーバ1401と、データが格納されるディスク装置に
アクセスしデータの操作を行う複数のサーバであるデー
タベース操作サーバ1402を有している。
【0141】フロントエンドサーバ1401とデータベ
ース操作サーバ1402は、高速な相互結合ネットワー
クで繋がっているものとする。但し、ネットワークで繋
がる複数プロセッサの並列データベースシステムで無
く、単一プロセッサのシステムでも、各サーバの役割と
して並列なプロセスを割り当てていれば、プロセス間の
通信回数を減らすものとして、本実施形態の並列データ
ベースシステムルーチン実行方法を適用可能である。
ース操作サーバ1402は、高速な相互結合ネットワー
クで繋がっているものとする。但し、ネットワークで繋
がる複数プロセッサの並列データベースシステムで無
く、単一プロセッサのシステムでも、各サーバの役割と
して並列なプロセスを割り当てていれば、プロセス間の
通信回数を減らすものとして、本実施形態の並列データ
ベースシステムルーチン実行方法を適用可能である。
【0142】データベース操作サーバ1402における
プロセサとディスクやメモリとの関連に対して、プロセ
サ間でディスクを共用しない、shared−noth
ing型であっても、複数のプロセサでディスクを共用
する、shared−disk型であっても、その他の
shared型であっても、関数を呼び出す部分と、検
索、更新系問合せを本体に含む関数を実行する部分で通
信が起こる構成であれば、本実施形態の並列データベー
スシステムルーチン実行方法を適用できる。
プロセサとディスクやメモリとの関連に対して、プロセ
サ間でディスクを共用しない、shared−noth
ing型であっても、複数のプロセサでディスクを共用
する、shared−disk型であっても、その他の
shared型であっても、関数を呼び出す部分と、検
索、更新系問合せを本体に含む関数を実行する部分で通
信が起こる構成であれば、本実施形態の並列データベー
スシステムルーチン実行方法を適用できる。
【0143】図14では、簡単の為、1つのUAP、1
つのフロントエンドサーバ1401と複数のデータベー
ス操作サーバ1402の構成で説明を行う。しかし、1
つ、または、複数のUAPからの複数の問い合わせに対
して、複数のフロントエンドサーバ1401が取り扱う
ことができる。
つのフロントエンドサーバ1401と複数のデータベー
ス操作サーバ1402の構成で説明を行う。しかし、1
つ、または、複数のUAPからの複数の問い合わせに対
して、複数のフロントエンドサーバ1401が取り扱う
ことができる。
【0144】この場合でも1つ1つの問い合わせに対し
ては、1つのUAP、1つのフロントエンドサーバ14
01と複数のデータベース操作サーバ1402の構成で
あると見なすことが可能で、本実施形態の並列データベ
ースシステムルーチン実行方法に問題無く適用される。
ては、1つのUAP、1つのフロントエンドサーバ14
01と複数のデータベース操作サーバ1402の構成で
あると見なすことが可能で、本実施形態の並列データベ
ースシステムルーチン実行方法に問題無く適用される。
【0145】コンパイルに必要な定義情報等はフロント
エンドサーバ1401からアクセスできる辞書情報格納
部15として存在する。辞書情報格納部15を提供する
サーバ(ディクショナリサーバと呼ぶことにする)を用
意しても良い。
エンドサーバ1401からアクセスできる辞書情報格納
部15として存在する。辞書情報格納部15を提供する
サーバ(ディクショナリサーバと呼ぶことにする)を用
意しても良い。
【0146】図14の並列データベースシステムの場
合、解析部11とフロントエンド側問合せ実行部22を
フロントエンドサーバ1401が有しており、分割デー
タ側の問合せ実行部23をデータベース操作サーバ14
02が有している。
合、解析部11とフロントエンド側問合せ実行部22を
フロントエンドサーバ1401が有しており、分割デー
タ側の問合せ実行部23をデータベース操作サーバ14
02が有している。
【0147】分割データ側の関数呼び出しはデータベー
ス操作サーバ1402の方にあり、データベース操作文
に対する処理を含むルーチン実行部13はフロントエン
ドサーバ1401の方に有る為、関数呼び出し毎の通信
回数は大きくなり、本実施形態の並列データベースシス
テムルーチン実行方法の適用が有効である。
ス操作サーバ1402の方にあり、データベース操作文
に対する処理を含むルーチン実行部13はフロントエン
ドサーバ1401の方に有る為、関数呼び出し毎の通信
回数は大きくなり、本実施形態の並列データベースシス
テムルーチン実行方法の適用が有効である。
【0148】並列データベースの構成に、ソート等の機
能を専用に行なうサーバが有る場合、そのサーバの問合
せ実行部23からの関数呼び出し等に対して、データベ
ース操作文に対する処理を含まないルーチン実行部14
を設けることで、同様に、本実施形態の並列データベー
スシステムルーチン実行方法を適用できる。
能を専用に行なうサーバが有る場合、そのサーバの問合
せ実行部23からの関数呼び出し等に対して、データベ
ース操作文に対する処理を含まないルーチン実行部14
を設けることで、同様に、本実施形態の並列データベー
スシステムルーチン実行方法を適用できる。
【0149】並列データベースの構成として、図14の
フロントエンドサーバ1401とデータベース操作サー
バ1402の両方の機能を持つ複数のサーバ(多機能サ
ーバと呼ぶことにする)を有している構成に対しても本
実施形態の並列データベースシステムルーチン実行方法
を適用可能である。
フロントエンドサーバ1401とデータベース操作サー
バ1402の両方の機能を持つ複数のサーバ(多機能サ
ーバと呼ぶことにする)を有している構成に対しても本
実施形態の並列データベースシステムルーチン実行方法
を適用可能である。
【0150】多機能サーバ間は、高速な相互結合ネット
ワークで繋がっているものとする。但し、ネットワーク
で繋がる複数プロセッサの並列データベースシステムで
無く、単一プロセッサのシステムでも、各サーバの役割
として並列なプロセスを割り当てていれば、プロセス間
の通信回数を減らすものとして、本実施形態の並列デー
タベースシステムルーチン実行方法を適用可能である。
ワークで繋がっているものとする。但し、ネットワーク
で繋がる複数プロセッサの並列データベースシステムで
無く、単一プロセッサのシステムでも、各サーバの役割
として並列なプロセスを割り当てていれば、プロセス間
の通信回数を減らすものとして、本実施形態の並列デー
タベースシステムルーチン実行方法を適用可能である。
【0151】上記、並列データベースの構成以外の構成
でも、図2の構成に対応が取れる構成であれば、本実施
形態の並列データベースシステムルーチン実行方法を適
用可能である。
でも、図2の構成に対応が取れる構成であれば、本実施
形態の並列データベースシステムルーチン実行方法を適
用可能である。
【0152】図15は、本実施形態の並列データベース
システムルーチン実行方法を実施する実施装置の具体例
を適用した概略構成を示す図である。
システムルーチン実行方法を実施する実施装置の具体例
を適用した概略構成を示す図である。
【0153】図15に示す様に、本実施形態の並列デー
タベースシステムルーチン実行方法を実施する実施装置
では、図14の構成図に、本実施形態の並列データベー
スシステムルーチン実行方法の具体例を適用した例を表
している。関数gは本体にデータベース操作文を含まな
い関数であり、その為データベース操作文チェック情報
104はOFFである。
タベースシステムルーチン実行方法を実施する実施装置
では、図14の構成図に、本実施形態の並列データベー
スシステムルーチン実行方法の具体例を適用した例を表
している。関数gは本体にデータベース操作文を含まな
い関数であり、その為データベース操作文チェック情報
104はOFFである。
【0154】関数gの呼び出しg(c2)を含む問合せ
を解析し実行手順指示を作成し、フロントエンド側と各
分割データ側のデータベース操作文実行部25で実行を
行なう。分割データ側では、表t1の列データc1、c
2をディスクから順に取り出し、g(c2)を実行しよ
うとする。
を解析し実行手順指示を作成し、フロントエンド側と各
分割データ側のデータベース操作文実行部25で実行を
行なう。分割データ側では、表t1の列データc1、c
2をディスクから順に取り出し、g(c2)を実行しよ
うとする。
【0155】実行するgのデータベース操作文チェック
情報104がOFFである為、gの実行は分割データ側
のルーチン実行部14で行ない、関数実行毎の通信は起
こらない。
情報104がOFFである為、gの実行は分割データ側
のルーチン実行部14で行ない、関数実行毎の通信は起
こらない。
【0156】g(c2)の結果から条件評価を行ない、
条件にあっているデータはフロントエンド側に転送す
る。フロントエンド側では、各分割データ側からの結果
をまとめ、UAP問合せ側に結果を転送する。
条件にあっているデータはフロントエンド側に転送す
る。フロントエンド側では、各分割データ側からの結果
をまとめ、UAP問合せ側に結果を転送する。
【0157】以上示したフローチャートの処理は、図2
で例として示した並列データベースシステムにおける処
理プログラム210〜212として実行される。しか
し、そのプログラムは図2の例の様にコンピュータシス
テムに物理的に直接接続される外部記憶装置に格納され
るものに限定されることはなく、ハードディスク装置、
フロッピーディスク装置等のコンピュータで読み書きで
きる記憶媒体に格納することができる。
で例として示した並列データベースシステムにおける処
理プログラム210〜212として実行される。しか
し、そのプログラムは図2の例の様にコンピュータシス
テムに物理的に直接接続される外部記憶装置に格納され
るものに限定されることはなく、ハードディスク装置、
フロッピーディスク装置等のコンピュータで読み書きで
きる記憶媒体に格納することができる。
【0158】以上説明した様に、本実施形態の並列デー
タベースシステムルーチン実行方法によれば、分割デー
タ側で呼び出されるルーチンの本体にデータベース操作
文を含まない場合、分割データ側に用意したルーチン実
行部でルーチンを実行するので、ルーチンの呼び出しに
よって起こる通信回数を削減して問合せ時間を小さくす
ることが可能である。
タベースシステムルーチン実行方法によれば、分割デー
タ側で呼び出されるルーチンの本体にデータベース操作
文を含まない場合、分割データ側に用意したルーチン実
行部でルーチンを実行するので、ルーチンの呼び出しに
よって起こる通信回数を削減して問合せ時間を小さくす
ることが可能である。
【0159】また、本実施形態の並列データベースシス
テムルーチン実行方法によれば、実行時にルーチンの本
体にデータベース操作文が含まれるかどうかの情報を参
照してルーチンを実行するルーチン実行部を選択するの
で、実行時までどのルーチンが実行されるか決定されな
い場合でもルーチンの呼び出しによって起こる通信回数
を削減して問合せ時間を小さくすることが可能である。
テムルーチン実行方法によれば、実行時にルーチンの本
体にデータベース操作文が含まれるかどうかの情報を参
照してルーチンを実行するルーチン実行部を選択するの
で、実行時までどのルーチンが実行されるか決定されな
い場合でもルーチンの呼び出しによって起こる通信回数
を削減して問合せ時間を小さくすることが可能である。
【0160】また、本実施形態の並列データベースシス
テムルーチン実行方法によれば、当該ルーチンから呼び
出される他のルーチンの本体にデータベース操作文が含
まれるかどうかの情報も参照して当該ルーチンを実行す
るルーチン実行部を選択するので、ルーチンの呼び出し
がネストして存在する場合であってもルーチンの呼び出
しによって起こる通信回数を削減して問合せ時間を小さ
くすることが可能である。
テムルーチン実行方法によれば、当該ルーチンから呼び
出される他のルーチンの本体にデータベース操作文が含
まれるかどうかの情報も参照して当該ルーチンを実行す
るルーチン実行部を選択するので、ルーチンの呼び出し
がネストして存在する場合であってもルーチンの呼び出
しによって起こる通信回数を削減して問合せ時間を小さ
くすることが可能である。
【0161】以上、本発明を前記実施形態に基づき具体
的に説明したが、本発明は、前記実施形態に限定される
ものではなく、その要旨を逸脱しない範囲において種々
変更可能であることは勿論である。
的に説明したが、本発明は、前記実施形態に限定される
ものではなく、その要旨を逸脱しない範囲において種々
変更可能であることは勿論である。
【0162】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば、下
記のとおりである。
的なものによって得られる効果を簡単に説明すれば、下
記のとおりである。
【0163】すなわち、分割データ側で呼び出されるル
ーチンの本体にデータベース操作文を含まない場合、分
割データ側に用意したルーチン実行部でルーチンを実行
するので、ルーチンの呼び出しによって起こる通信回数
を削減して問合せ時間を小さくすることが可能である。
ーチンの本体にデータベース操作文を含まない場合、分
割データ側に用意したルーチン実行部でルーチンを実行
するので、ルーチンの呼び出しによって起こる通信回数
を削減して問合せ時間を小さくすることが可能である。
【図1】本実施形態の並列データベースシステムルーチ
ン実行方法を実施する実施装置の概要を示す図である。
ン実行方法を実施する実施装置の概要を示す図である。
【図2】本実施形態の並列データベースシステムルーチ
ン実行方法を実施する実施装置の概略構成を示す図であ
る。
ン実行方法を実施する実施装置の概略構成を示す図であ
る。
【図3】本実施形態の並列データベースシステムルーチ
ン実行方法を実施する実施装置の関数定義文101の一
例を示す図である。
ン実行方法を実施する実施装置の関数定義文101の一
例を示す図である。
【図4】本実施形態の並列データベースシステムルーチ
ン実行方法を実施する実施装置の問合せ文201の一例
を示す図である。
ン実行方法を実施する実施装置の問合せ文201の一例
を示す図である。
【図5】本実施形態の並列データベースシステムルーチ
ン実行方法を実施する実施装置の関数定義情報102の
一例を示す図である。
ン実行方法を実施する実施装置の関数定義情報102の
一例を示す図である。
【図6】本実施形態の並列データベースシステムルーチ
ン実行方法を実施する実施装置の関数実行手順指示10
3の一例を示す図である。
ン実行方法を実施する実施装置の関数実行手順指示10
3の一例を示す図である。
【図7】本実施形態の並列データベースシステムルーチ
ン実行方法を実施する実施装置の定義文解析部12の処
理手順を示すフローチャートである。
ン実行方法を実施する実施装置の定義文解析部12の処
理手順を示すフローチャートである。
【図8】本実施形態の並列データベースシステムルーチ
ン実行方法を実施する実施装置の問合せ解析部21の処
理手順を示すフローチャートである。
ン実行方法を実施する実施装置の問合せ解析部21の処
理手順を示すフローチャートである。
【図9】本実施形態の並列データベースシステムルーチ
ン実行方法を実施する実施装置のデータベース操作文の
有るルーチン実行部13の処理手順を示すフローチャー
トである。
ン実行方法を実施する実施装置のデータベース操作文の
有るルーチン実行部13の処理手順を示すフローチャー
トである。
【図10】本実施形態の並列データベースシステムルー
チン実行方法を実施する実施装置のデータベース操作文
に対する処理を含まないルーチン実行部14の処理手順
を示すフローチャートである。
チン実行方法を実施する実施装置のデータベース操作文
に対する処理を含まないルーチン実行部14の処理手順
を示すフローチャートである。
【図11】本実施形態の並列データベースシステムルー
チン実行方法を実施する実施装置のフロントエンド側の
データベース操作文実行部24の処理手順を示すフロー
チャートである。
チン実行方法を実施する実施装置のフロントエンド側の
データベース操作文実行部24の処理手順を示すフロー
チャートである。
【図12】本実施形態の並列データベースシステムルー
チン実行方法を実施する実施装置の分割データ側のデー
タベース操作文実行部25の処理手順を示すフローチャ
ートである。
チン実行方法を実施する実施装置の分割データ側のデー
タベース操作文実行部25の処理手順を示すフローチャ
ートである。
【図13】本実施形態の並列データベースシステムルー
チン実行方法を実施する実施装置のデータベース操作文
に対する処理を含まないルーチン実行部14の実行手順
指示実行の処理手順を示すフローチャートである。
チン実行方法を実施する実施装置のデータベース操作文
に対する処理を含まないルーチン実行部14の実行手順
指示実行の処理手順を示すフローチャートである。
【図14】本実施形態の並列データベースシステムルー
チン実行方法を実施する実施装置の概略構成を示す図で
ある。
チン実行方法を実施する実施装置の概略構成を示す図で
ある。
【図15】本実施形態の並列データベースシステムルー
チン実行方法を実施する実施装置の概略構成を示す図で
ある。
チン実行方法を実施する実施装置の概略構成を示す図で
ある。
11…解析部、12…定義文解析部、13…ルーチン実
行部、14…ルーチン実行部、15…辞書情報格納部、
101…関数定義文、102…関数定義情報、103…
関数実行手順指示、104…データベース操作文チェッ
ク情報、110…データベース操作文有り状態、111
…データベース操作文無し状態、201…問合せ文、2
10〜212…処理プログラム、21…問合せ解析部、
22…問合せ実行部、23…問合せ実行部、24…デー
タベース操作文実行部、25…データベース操作文実行
部、31…FUNCTION構文、301…SET文、
302…IF文、303…SELECT文、401…呼
び出し文、61…関数本体用実行手順指示、62及び6
3…検索用実行手順指示、64〜66…共通情報、14
01…フロントエンドサーバ、1402…データベース
操作サーバ。
行部、14…ルーチン実行部、15…辞書情報格納部、
101…関数定義文、102…関数定義情報、103…
関数実行手順指示、104…データベース操作文チェッ
ク情報、110…データベース操作文有り状態、111
…データベース操作文無し状態、201…問合せ文、2
10〜212…処理プログラム、21…問合せ解析部、
22…問合せ実行部、23…問合せ実行部、24…デー
タベース操作文実行部、25…データベース操作文実行
部、31…FUNCTION構文、301…SET文、
302…IF文、303…SELECT文、401…呼
び出し文、61…関数本体用実行手順指示、62及び6
3…検索用実行手順指示、64〜66…共通情報、14
01…フロントエンドサーバ、1402…データベース
操作サーバ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 亀城 嘉人 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内
Claims (6)
- 【請求項1】 分割されたデータに対する問合せの実行
を行なう分割データ側の問合せ実行部と、各分割された
データに対する問合せの実行結果をまとめて返す処理を
行なうフロントエンド側の問合せ実行部を有し、分割デ
ータ側の問合せ実行部にデータベース操作文に対する処
理を含まないルーチン実行部を有している並列データベ
ースシステムでルーチンを実行する並列データベースシ
ステムルーチン実行方法において、 ルーチンの本体にデータベース操作文が含まれるかどう
かの判定を行なって前記判定した情報を記録する過程
と、 分割データ側の問合せ実行部で呼び出されるルーチンに
対して前記記録した情報を参照し、データベース操作文
を含まない場合、ルーチン呼び出し側かつ分割データ側
に有る、データベース操作文に対する処理を含まないル
ーチン実行部を選択し、データベース操作文を含む場
合、フロントエンド側に有る、データベース操作文に対
する処理を含むルーチン実行部を選択し、前記選択した
ルーチン実行部でルーチンの実行を行なう過程とを含む
ことを特徴とする並列データベースシステムルーチン実
行方法。 - 【請求項2】 実行時にルーチンの本体にデータベース
操作文が含まれるかどうかの情報を参照してルーチンを
実行するルーチン実行部を選択することを特徴とする請
求項1に記載された並列データベースシステムルーチン
実行方法。 - 【請求項3】 当該ルーチンから呼び出される他のルー
チンの本体にデータベース操作文が含まれるかどうかの
情報も参照して当該ルーチンを実行するルーチン実行部
を選択することを特徴とする請求項1または請求項2の
いずれかに記載された並列データベースシステムルーチ
ン実行方法。 - 【請求項4】 分割されたデータに対する問合せの実行
を行なう分割データ側の問合せ実行部と、各分割された
データに対する問合せの実行結果をまとめて返す処理を
行なうフロントエンド側の問合せ実行部を有し、分割デ
ータ側の問合せ実行部にデータベース操作文に対する処
理を含まないルーチン実行部を有している並列データベ
ースシステムとしてコンピュータを機能させるためのプ
ログラムを記録した媒体において、 ルーチンの本体にデータベース操作文が含まれるかどう
かの判定を行なって前記判定した情報を記録する過程
と、 分割データ側の問合せ実行部で呼び出されるルーチンに
対して前記記録した情報を参照し、データベース操作文
を含まない場合、ルーチン呼び出し側かつ分割データ側
に有る、データベース操作文に対する処理を含まないル
ーチン実行部を選択し、データベース操作文を含む場
合、フロントエンド側に有る、データベース操作文に対
する処理を含むルーチン実行部を選択し、前記選択した
ルーチン実行部でルーチンの実行を行なう過程とをコン
ピュータに実行させるためのプログラムを記録したこと
を特徴とする媒体。 - 【請求項5】 実行時にルーチンの本体にデータベース
操作文が含まれるかどうかの情報を参照してルーチンを
実行するルーチン実行部を選択する過程をコンピュータ
に実行させるためのプログラムを記録したことを特徴と
する請求項4に記載された媒体。 - 【請求項6】 当該ルーチンから呼び出される他のルー
チンの本体にデータベース操作文が含まれるかどうかの
情報も参照して当該ルーチンを実行するルーチン実行部
を選択する過程をコンピュータに実行させるためのプロ
グラムを記録したことを特徴とする請求項4または請求
項5のいずれかに記載された媒体。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP04190797A JP3742177B2 (ja) | 1997-02-26 | 1997-02-26 | 並列データベースシステムルーチン実行方法 |
| US09/028,055 US6076085A (en) | 1997-02-26 | 1998-02-23 | Routine executing method in database system |
| US09/547,078 US6374238B1 (en) | 1997-02-26 | 2000-04-11 | Routine executing method in database system |
| US10/084,323 US20020116376A1 (en) | 1997-02-26 | 2002-02-28 | Routine executing method in database system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP04190797A JP3742177B2 (ja) | 1997-02-26 | 1997-02-26 | 並列データベースシステムルーチン実行方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH10240590A true JPH10240590A (ja) | 1998-09-11 |
| JP3742177B2 JP3742177B2 (ja) | 2006-02-01 |
Family
ID=12621364
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP04190797A Expired - Fee Related JP3742177B2 (ja) | 1997-02-26 | 1997-02-26 | 並列データベースシステムルーチン実行方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (3) | US6076085A (ja) |
| JP (1) | JP3742177B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000285060A (ja) * | 1999-01-29 | 2000-10-13 | Digital Design Co Ltd | データ転送方法、コンピュータ読み取り可能な記録媒体及びデータ転送装置 |
| JP2002373175A (ja) * | 2001-06-14 | 2002-12-26 | Nec Corp | サービス検索方法及びシステム |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3742177B2 (ja) * | 1997-02-26 | 2006-02-01 | 株式会社日立製作所 | 並列データベースシステムルーチン実行方法 |
| JP3863291B2 (ja) * | 1998-05-28 | 2006-12-27 | 株式会社日立製作所 | データベース処理方法、データベース処理システム及び媒体 |
| EP1195676A3 (en) * | 2000-10-03 | 2007-03-28 | Microsoft Corporation | Architecture for customizable applications |
| GB0103053D0 (en) * | 2001-02-07 | 2001-03-21 | Nokia Mobile Phones Ltd | A communication terminal having a predictive text editor application |
| US6892205B1 (en) * | 2001-02-28 | 2005-05-10 | Oracle International Corporation | System and method for pre-compiling a source cursor into a target library cache |
| US7757225B2 (en) * | 2001-06-29 | 2010-07-13 | Microsoft Corporation | Linktime recognition of alternative implementations of programmed functionality |
| US7082428B1 (en) * | 2002-09-16 | 2006-07-25 | Bellsouth Intellectual Property Corporation | Systems and methods for collaborative searching |
| US7210127B1 (en) | 2003-04-03 | 2007-04-24 | Sun Microsystems | Methods and apparatus for executing instructions in parallel |
| US20050049999A1 (en) * | 2003-08-29 | 2005-03-03 | Immo-Gert Birn | Database access statement tracing |
| US7600221B1 (en) | 2003-10-06 | 2009-10-06 | Sun Microsystems, Inc. | Methods and apparatus of an architecture supporting execution of instructions in parallel |
| US7447797B2 (en) * | 2003-10-29 | 2008-11-04 | International Business Machines Corporation | Method and system for processing a service request associated with a particular priority level of service in a network data processing system using parallel proxies |
| US7590620B1 (en) * | 2004-06-18 | 2009-09-15 | Google Inc. | System and method for analyzing data records |
| US7539668B2 (en) * | 2004-11-30 | 2009-05-26 | International Business Machines Corporation | System and method for sorting data records contained in a query result based on suitability score |
| US8438141B2 (en) * | 2005-01-27 | 2013-05-07 | International Business Machines Corporation | System and method for providing secure access to data with user defined table functions |
| US9727604B2 (en) * | 2006-03-10 | 2017-08-08 | International Business Machines Corporation | Generating code for an integrated data system |
| US9361137B2 (en) | 2006-03-10 | 2016-06-07 | International Business Machines Corporation | Managing application parameters based on parameter types |
| US8099725B2 (en) * | 2006-10-11 | 2012-01-17 | International Business Machines Corporation | Method and apparatus for generating code for an extract, transform, and load (ETL) data flow |
| US8160999B2 (en) * | 2006-12-13 | 2012-04-17 | International Business Machines Corporation | Method and apparatus for using set based structured query language (SQL) to implement extract, transform, and load (ETL) splitter operation |
| US8219518B2 (en) | 2007-01-09 | 2012-07-10 | International Business Machines Corporation | Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (ETL) process |
| US20090006520A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Multiple Thread Pools for Processing Requests |
| US8051091B2 (en) * | 2008-02-19 | 2011-11-01 | Sap Ag | Parallelizing data manipulation by data set abstraction |
| US8938444B2 (en) * | 2011-12-29 | 2015-01-20 | Teradata Us, Inc. | Techniques for external application-directed data partitioning in data exporting from a database management system |
| US9338057B2 (en) * | 2013-10-30 | 2016-05-10 | Netapp, Inc. | Techniques for searching data associated with devices in a heterogeneous data center |
| CN104850638B (zh) * | 2015-05-25 | 2018-10-19 | 广东精点数据科技股份有限公司 | Etl过程并行决策方法及装置 |
| US11030045B2 (en) * | 2015-07-28 | 2021-06-08 | Futurewei Technologies, Inc. | Apparatus and method for utilizing different data storage types to store primary and replicated database directories |
| CN112711602B (zh) * | 2019-10-25 | 2023-04-28 | 金篆信科有限责任公司 | 一种存储过程的运行方法、装置,数据库系统及存储介质 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05334165A (ja) * | 1992-05-29 | 1993-12-17 | Hitachi Ltd | 並列データベース処理システムおよびその2次キー検索方法 |
| JPH0689212A (ja) * | 1991-12-19 | 1994-03-29 | Nec Corp | 情報処理方式 |
| JPH07141394A (ja) * | 1993-11-16 | 1995-06-02 | Hitachi Ltd | データベース分割管理方法および並列データベースシステム |
| JPH1069488A (ja) * | 1996-08-28 | 1998-03-10 | Hitachi Ltd | 並列データベースシステム検索方法 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5819083A (en) * | 1993-09-02 | 1998-10-06 | International Business Machines Corporation | Minimal sufficient buffer space for data redistribution in a parallel database system |
| US5495606A (en) * | 1993-11-04 | 1996-02-27 | International Business Machines Corporation | System for parallel processing of complex read-only database queries using master and slave central processor complexes |
| US5437032A (en) * | 1993-11-04 | 1995-07-25 | International Business Machines Corporation | Task scheduler for a miltiprocessor system |
| US5765146A (en) * | 1993-11-04 | 1998-06-09 | International Business Machines Corporation | Method of performing a parallel relational database query in a multiprocessor environment |
| US6101495A (en) * | 1994-11-16 | 2000-08-08 | Hitachi, Ltd. | Method of executing partition operations in a parallel database system |
| JPH0863441A (ja) * | 1994-08-26 | 1996-03-08 | Hitachi Ltd | 並列システムの運用方法 |
| US5692174A (en) * | 1995-10-05 | 1997-11-25 | International Business Machines Corporation | Query parallelism in a shared data DBMS system |
| US5835724A (en) * | 1996-07-03 | 1998-11-10 | Electronic Data Systems Corporation | System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client |
| JP3742177B2 (ja) * | 1997-02-26 | 2006-02-01 | 株式会社日立製作所 | 並列データベースシステムルーチン実行方法 |
-
1997
- 1997-02-26 JP JP04190797A patent/JP3742177B2/ja not_active Expired - Fee Related
-
1998
- 1998-02-23 US US09/028,055 patent/US6076085A/en not_active Expired - Fee Related
-
2000
- 2000-04-11 US US09/547,078 patent/US6374238B1/en not_active Expired - Fee Related
-
2002
- 2002-02-28 US US10/084,323 patent/US20020116376A1/en not_active Abandoned
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0689212A (ja) * | 1991-12-19 | 1994-03-29 | Nec Corp | 情報処理方式 |
| JPH05334165A (ja) * | 1992-05-29 | 1993-12-17 | Hitachi Ltd | 並列データベース処理システムおよびその2次キー検索方法 |
| JPH07141394A (ja) * | 1993-11-16 | 1995-06-02 | Hitachi Ltd | データベース分割管理方法および並列データベースシステム |
| JPH1069488A (ja) * | 1996-08-28 | 1998-03-10 | Hitachi Ltd | 並列データベースシステム検索方法 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000285060A (ja) * | 1999-01-29 | 2000-10-13 | Digital Design Co Ltd | データ転送方法、コンピュータ読み取り可能な記録媒体及びデータ転送装置 |
| JP2002373175A (ja) * | 2001-06-14 | 2002-12-26 | Nec Corp | サービス検索方法及びシステム |
Also Published As
| Publication number | Publication date |
|---|---|
| US6374238B1 (en) | 2002-04-16 |
| US20020116376A1 (en) | 2002-08-22 |
| US6076085A (en) | 2000-06-13 |
| JP3742177B2 (ja) | 2006-02-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH10240590A (ja) | 並列データベースシステムルーチン実行方法 | |
| JP3747525B2 (ja) | 並列データベースシステム検索方法 | |
| US6212516B1 (en) | Parallel database management method and parallel database management system | |
| US5809238A (en) | Data server with event driven sampling | |
| JP3160719B2 (ja) | コンピュータのネットワークからワールドワイドウェッブ上のページを捜し出したり、ドキュメントを捜し出したりするためのシステム及び方法 | |
| US6925462B2 (en) | Database management system, and query method and query execution program in the database management system | |
| JP2001357062A (ja) | データベース検索方法及びデータベース検索システム並びにデータベース検索プログラムを記録した記録媒体 | |
| US7343367B2 (en) | Optimizing a database query that returns a predetermined number of rows using a generated optimized access plan | |
| JPH10240589A (ja) | 実データ遅延取出しを行うデータベース処理方法 | |
| US6748377B1 (en) | Facilitating query pushdown in a multi-tiered database environment | |
| JP3808941B2 (ja) | 並列データベースシステム通信回数削減方法 | |
| US7689542B2 (en) | Dynamic return type generation in a database system | |
| US11157506B2 (en) | Multiform persistence abstraction | |
| JP4207096B2 (ja) | データベース管理方法 | |
| US12405947B2 (en) | Statement-level instead-of database triggers | |
| JP4033207B2 (ja) | データベース管理方法 | |
| US20080016029A1 (en) | Optimizing a query to a database | |
| JPH11120067A (ja) | データの部分情報を先行して管理するデータベース処理方法 | |
| US20060235819A1 (en) | Apparatus and method for reducing data returned for a database query using select list processing | |
| JPH1091503A (ja) | 情報資源管理制御方法及びシステム | |
| JP3882835B2 (ja) | データベース管理方法および並列データベース管理システム | |
| CN113704290A (zh) | 一种数据查询系统及方法 | |
| JP2007207280A (ja) | データベース管理方法 | |
| JPH02234270A (ja) | データベース処理方法 | |
| JP2000057025A (ja) | データベースシステム関数実行回数削減方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050705 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050902 |
|
| 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: 20051108 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051110 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |