(57)【要約】【課題】リレーショナルデータベースに対する問合せ要求から生成されるアクセスプランの実行中に条件判定の順序を動的に再構成して、より早い段階で条件全体の真偽が定まるようにしたデータベース検索装置を提供する。【解決手段】リレーショナルデータベースへの問合せ要求に対するアクセスプランを作成して検索するデータベース検索装置であって、作成したアクセスプランを実行するときに、条件の評価結果の履歴に基づいて、複数の条件のうち、成立しやすい条件または成立しにくい条件の評価順序を繰り上げるようにして、複数の条件の評価順序を動的に再構成する。また、複数の条件の評価順序の動的な再構成の実施タイミングは、定期的にまたは複数の条件の評価にかかるコストが閾値以上になったときに行うようにした。【選択図】        図２
2004318314.tif 000002
【特許請求の範囲】
【請求項１】
リレーショナルデータベースへの問合せ要求に対するアクセスプランを作成して検索するデータベース検索装置において、問合せ要求に対するアクセスプランを生成するアクセスプラン生成部と、前記アクセスプラン生成部で生成されたアクセスプランを実行するアクセスプラン実行部と、複数の条件の評価順序を動的に再構成するアクセスプラン調整部とを備えることを特徴とするデータベース検索装置。
【請求項２】
請求項１に記載のデータベース検索装置において、前記アクセスプラン調整部は、条件の評価結果の履歴に基づいて、複数の条件の評価順序を動的に再構成することを特徴とするデータベース検索装置。
【請求項３】
請求項２に記載のデータベース検索装置において、前記アクセスプラン調整部は、条件の評価結果の履歴に基づいて、複数の条件のうち、成立しにくい条件の評価順序を繰り上げるようにして再構成することを特徴とするデータベース検索装置。
【請求項４】
請求項２に記載のデータベース検索装置において、前記アクセスプラン調整部は、条件の評価結果の履歴に基づいて、複数の条件のうち、成立しやすい条件の評価順序を繰り上げるようにして再構成することを特徴とするデータベース検索装置。
【請求項５】
請求項１乃至４のいずれかに記載のデータベース検索装置において、前記アクセスプラン調整部は、複数の条件の評価順序の動的な再構成を定期的に行うようにしたことを特徴とするデータベース検索装置。
【請求項６】
請求項１乃至４のいずれかに記載のデータベース検索装置において、前記アクセスプラン調整部は、複数の条件の評価順序の動的な再構成を複数の条件の評価にかかるコストが閾値以上になったときに行うことを特徴とするデータベース検索装置。
【請求項７】
コンピュータに、請求項１乃至６のいずれかに記載のデータベース検索装置の機能を実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベース検索装置、プログラムおよび記録媒体に関し、特に、リレーショナルデータベース管理システムにおいて問合せ処理の最適化をはかる技術に関する。
【０００２】
【従来の技術】
データベースに対する検索処理を効率的に実施するために、最適化と呼ばれる処理を行うデータベース管理システムが一般的になっている。
従来、データベースへの問合せの最適化処理では、検索要求に対し複数のアクセス処理手順をプランとして生成し、それぞれの処理手順のコスト評価を実施した後、一つまたは複数の効率的と判断される処理手順を生成し、この生成されたアクセスプランに従ってデータベースの検索処理を実行する。
【０００３】
例えば、特許文献１の「データベース処理方法」では、データベースへの問合せ要求文に対して、問合せ要求文の構文解析、意味解析およびエラー検査を該問い合わせの実行時と分離して予め行う。即ち、問い合わせ文をアクセスプランに変換する問い合わせの最適化に際し、その問い合わせの実行時に得られる実行時情報に依存しない最適化処理が終った中間状態のアクセスプランを登録し、その実行時情報に依存した最適化処理を問い合わせの実行時に行うことにより、最終的に最適なアクセスプランを得る。
これにより、コンパイル過程のメリットを生かし、より小型で高速な実行過程が得られるデータベース処理方法を提供している。
【０００４】
【特許文献１】
特開２００２−７３３８７号公報
【０００５】
【発明が解決しようとする課題】
先ず、例えば、表の各列の役割を次のように定義し、「文書」を管理するための表を次のスキーマ定義文で定義したときのアクセスプランについて説明する。
【０００６】
文書ＩＤ：            文書を一意に識別する番号、
文書名：              文書の名称、
プロジェクト名：      文書に関連するプロジェクトの名称、
作成者：              文書の作成者の氏名、
作成日：              文書の作成された日付、
本文：              文書の本文。
【０００７】
ｃｒｅａｔｅ  ｔａｂｌｅ  文書  （
文書ＩＤ      ｕｎｓｉｇｎｅｄ  ｉｎｔｅｇｅｒ（８）          ｎｏｔ  ｎｕｌｌ，
文書名        ｃｈａｒａｃｔｅｒ  ｖａｒｙｉｎｇ（１２８）      ｎｏｔ  ｎｕｌｌ，
プロジェクト名        ｃｈａｒａｃｔｅｒ  ｖａｒｙｉｎｇ（６４），
作成者        ｃｈａｒａｃｔｅｒ  ｖａｒｙｉｎｇ（３２）              ｎｏｔ  ｎｕｌｌ，
作成日        ｄａｔｅ                      ｎｏｔ  ｎｕｌｌ，
本文          ｃｈａｒａｃｔｅｒ  ｖａｒｙｉｎｇ（９９９９９９）    ｎｏｔ  ｎｕｌｌ
）；
ｃｒｅａｔｅ  ｉｎｄｅｘ  文書ＩＤ索引  ｏｎ  文書（文書）  ｕｎｉｑｕｅ；
【０００８】
このように定義したリレーショナルデータベースに対して、次の問い合わせ式による検索を実行するものとする。
ｓｅｌｅｃｔ  文書名，  文書ＩＤ
ｆｒｏｍ    文書
ｗｈｅｒｅ  作成日  ｂｅｔｗｅｅｎ  ‘２００１／４／１’  ａｎｄ  ‘２００１／９／３０’
ａｎｄ    プロジェクト名  ＝‘デジタルカメラの開発（その２）’
ａｎｄ    文書名  ｌｉｋｅ  ‘％仕様書％’；
【０００９】
この問い合わせ式の意味は、「２００１年４月１日から２００１年９月３０日までの間に作成された文書のうち、この文書に関連するプロジェクト名が『デジタルカメラの開発（その２）』で、文書名に『仕様書』が含まれている文書の文書名と文書ＩＤを検索せよ」である。
この問い合わせ式に対して、データベース管理システムでは、例えば次のようなアクセスプランを組み立てる。
【００１０】
（０）結果表を空にする。
（１）表「文書」の最初の行の１つ前の仮想的な行にカーソルを位置付ける。
（２）カーソルを１つ進める。カーソルの指す行が、表「文書」の最後の行の１つ後の仮想的な行に達していた場合、終了する。
（３）カーソルの指す行から３つの列「文書名」、「プロジェクト名」および「作成日」の値を取り出す。
（４）列「作成日」の値が、２００１年４月１日以上、且つ２００１年９月３０日以下であるかを判定し（以下、条件判定１と呼ぶ）、この結果が真であれば（５）へ進み、さもなければ（８）へ進む。
（５）列「プロジェクト名」の値が文字列「デジタルカメラの開発（その２）」と一致するかを判定し（以下、条件判定２と呼ぶ）、その結果が真であれば（６）へ進み、さもなければ（８）へ進む。
（６）列「文書名」の値が文字列「仕様書」を含むかを判定し（以下、条件判定３と呼ぶ）、その結果が真であれば（７）へ進み、さもなければ（８）へ進む。
（７）カーソルの指す行から２つの列「文書ＩＤ」と「文書名」の値を取り出して、結果表へ書き込む。
（８）（２）へ戻る。
データベース管理システムは、アクセスプランを組み立て終わると、引き続いて、このアクセスプランを実行することによって所期の検索を実行することになる。
【００１１】
上記の特許文献１に述べられている問合せの最適化を行ったとしても、上述のように組み立てられたアクセスプランは静的なものであり、アクセスプランに現れる条件判定は表の各行に対して同じ順序で行われることになる。
このため、アクセスプラン中での条件判定の順序によっては、条件全体の真偽が定まるまでに実行される条件判定の延べ回数が多くなってしまう。
【００１２】
例えば、上述のアクセスプランでは、条件判定１、条件判定２、条件判定３の順で条件全体の真偽が定められるため、条件全体の真偽が定まるまでには、次の３つの道筋が考えられる。
【００１３】
（ａ）条件判定１で結果が偽になる。
（ｂ）条件判定１で結果が真になり、条件判定２で結果が偽になる。
（ｃ）条件判定１で結果が真になり、条件判定２で結果が真になり、
条件判定３で結果が真または偽になる。
【００１４】
これらのうち、条件全体の真偽が定まるまでのコストが最も小さいのは（ａ）であり、次いで（ｂ）、最後が（ｃ）である。したがって、常に同じ順序で条件判定を行うよりも、より早い段階で条件全体の真偽が定まるように条件判定の順序を動的に再構成するのがよい。
【００１５】
本発明は、上述の実情を考慮してなされたものであって、リレーショナルデータベースに対する問合せ要求から生成されるアクセスプランの実行中に、条件判定の順序を動的に再構成して、より早い段階で条件全体の真偽が定まるようにしたデータベース検索装置、データベース検索装置の機能を実行するプログラムおよびそのプログラムを記録したコンピュータ読取可能な記録媒体を提供することを目的とする。
【００１６】
【課題を解決するための手段】
上記の課題を解決するために、本発明の請求項１は、リレーショナルデータベースへの問合せ要求に対するアクセスプランを作成して検索するデータベース検索装置において、問合せ要求に対するアクセスプランを生成するアクセスプラン生成部と、前記アクセスプラン生成部で生成されたアクセスプランを実行するアクセスプラン実行部と、複数の条件の評価順序を動的に再構成するアクセスプラン調整部とを備えることを特徴とする。
【００１７】
また、本発明の請求項２は、請求項１に記載のデータベース検索装置において、前記アクセスプラン調整部は、条件の評価結果の履歴に基づいて、複数の条件の評価順序を動的に再構成することを特徴とする。
また、本発明の請求項３は、請求項２に記載のデータベース検索装置において、前記アクセスプラン調整部は、条件の評価結果の履歴に基づいて、複数の条件のうち、成立しにくい条件の評価順序を繰り上げるようにして再構成することを特徴とする。
また、本発明の請求項４は、請求項２に記載のデータベース検索装置において、前記アクセスプラン調整部は、条件の評価結果の履歴に基づいて、複数の条件のうち、成立しやすい条件の評価順序を繰り上げるようにして再構成することを特徴とする。
【００１８】
また、本発明の請求項５は、請求項１乃至４のいずれかに記載のデータベース検索装置において、前記アクセスプラン調整部は、複数の条件の評価順序の動的な再構成を定期的に行うようにしたことを特徴とする。
また、本発明の請求項６は、請求項１乃至４のいずれかに記載のデータベース検索装置において、前記アクセスプラン調整部は、複数の条件の評価順序の動的な再構成を複数の条件の評価にかかるコストが閾値以上になったときに行うことを特徴とする。
また、本発明の請求項７は、コンピュータに、請求項１乃至６のいずれかに記載のデータベース検索装置の機能を実行させるためのプログラムである。
また、本発明の請求項８は、請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００１９】
以上のような構成により、リレーショナルデータベースに対する問合せ要求から生成されるアクセスプランの実行中に、複数の条件の評価順序を動的に再構成することによって、条件全体の真偽値の決定にかかる時間を短縮できる。
また、複数の条件の評価順序を動的に再構成する過程において、条件の評価結果の履歴を利用して、成立しにくい条件や成立しやすい条件を見つけて評価順序を繰り上げることにより、条件全体の真偽値の決定にかかる時間を短縮できる。
【００２０】
また、複数の条件の評価順序の動的な再構成を定期的にまたは条件の評価にかかるコストが閾値以上になったときに行うことにより、複数の条件の評価にかかる時間を短縮した状態を保持できるとともに、再構成にかかる時間を調整できる。
【００２１】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態を説明する。
図１は、本発明が適用されるデータベース検索装置のネットワーク構成例を示すブロック図である。同図において、データベース検索装置は、１つのサーバマシン３０と必要に応じてネットワーク５０を介して接続される０台以上のクライアントマシン（１０，２０）とで構成される。
【００２２】
クライアントマシン（１０，２０）は、利用者が問合せ要求を入力したり、問合せ結果を出力したりするために利用するコンピュータである。一般的には、クライアントマシン（１０，２０）には、問合せ要求を入力するためのキーボードやポインティングデバイス（例えば、マウス）、また問合せ結果を表示するためのディスプレイが装備される。また、クライアントマシン（１０，２０）は、ＣＰＵ、メモリおよび二次記憶装置４０を備え、サーバマシン３０への問い合わせ要求の入力や問合せ結果の出力を行うためのプログラムが実行される。
【００２３】
クライアントマシン（１０，２０）では、サーバマシン３０への問い合わせ要求の入力や問合せ結果の出力を行うためのクライアントプロセス（１１，２１，２２）が必要に応じて１個以上実行される。
また、このクライアントプロセスをサーバマシン３０で実行することも可能であり、この場合にはクライアントマシンを接続する必要はない。
【００２４】
サーバマシン３０は、クライアントマシン（１０，２０）から入力された問合せ要求を受け取り、それに応じた問合せ処理を行い、問合せ結果をクライアントマシン（１０，２０）に返すためのコンピュータである。サーバマシン３０は、ＣＰＵ、メモリ、二次記憶装置４０を備え、データベースを管理するプログラムが実行される。この二次記憶装置４０には、データベース管理プログラムのほかに、表に関するメタデータファイルおよび表のデータファイル等を記憶している。
【００２５】
ネットワーク５０は、クライアントマシン（１０，２０）およびサーバマシン３０をつなぐための伝送路であり、一般的にはケーブルで実現され、通信プロトコルとしては、ＴＣＰ／ＩＰが使われる。但し、伝送路はケーブルに限らず、通信プロトコルが一致すればよく、例えば、有線または無線等の公衆回線や専用回線等によるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットなどを用いることができる。
【００２６】
このサーバマシン３０では、クライアントマシン（１０，２０）から処理依頼を受け取り、その処理結果をクライアントマシン（１０，２０）に送り返す機能、クライアントマシン（１０，２０）からの問合せ要求に応じたアクセスプランを作成・管理し、二次記憶装置４０上の物理ファイルとの入出力を行う機能を持つデータベース管理システムのサーバプロセス３１が常時稼働している。サーバプロセス３１は、データベース検索装置を利用する利用者ごとに実行されるクライアントプロセス（１１，２１，２２等）とネットワーク５０を介したプロセス間通信を行って（プロセス間通信経路６０）、クライアントプロセスとのデータの送受信を行う。
【００２７】
図２は、サーバプロセス３１内の機能構成を示すブロック図であり、同図において、サーバプロセス３１は、インターフェース部３１１、アクセスプラン生成部３１２、アクセスプラン実行部３１３、アクセスプラン調整部３１４および入出力管理部３１５とから構成されている。
【００２８】
インターフェース部３１１は、ネットワーク５０を介して、クライアントプロセス１１からの処理依頼の受信およびクライアントプロセス１１へ処理結果の返信を行う。
【００２９】
アクセスプラン生成部３１２は、インターフェース部３１１から処理依頼を受け取り、アクセスプランを生成し、そのアクセスプランをアクセスプラン実行部３１３へ渡す。
アクセスプラン実行部３１３は、アクセスプラン生成部３１２からアクセスプランを受け取り、そのアクセスプランを実行し、実行結果をインターフェース部３１１へ渡す。
【００３０】
アクセスプラン調整部３１４は、アクセスプラン中の条件の評価順序を再構成する。
入出力管理部３１５は、アクセスプラン実行部３１３からの指示にもとづいて、二次記憶装置４０上の物理ファイルとの入出力を行う。
【００３１】
図３は、問合せ要求文中における条件を木表現するためのデータ構造を示している。条件ブロックには、演算子とその引数（列の参照の場合にはその列に対応するプレースホルダ、定数値の場合にはその定数値そのもの）が置かれる。
この条件ブロックの評価は、列のプレースホルダにその列の値を当てはめた後、演算子に対応する関数を呼び出して行う。
【００３２】
条件ノードには、演算子と条件ブロックへのポインタと、そのポインタの指す条件ブロックの評価回数および成立回数が置かれる。
以下、演算子が「ａｎｄ」の条件ノードをＡＮＤ条件ノードと呼び、演算子が「ｏｒ」の条件ノードをＯＲ条件ノードと呼ぶ。
【００３３】
以下、前述したスキーマ定義文で定義される表と索引に対して、次の問い合わせ式による検索を実行する場合を例にして説明する。
【００３４】
ｓｅｌｅｃｔ  文書名，  文書ＩＤ
ｆｒｏｍ    文書
ｗｈｅｒｅ  作成日  ｂｅｔｗｅｅｎ  ‘２００１／４／１’  ａｎｄ  ‘２００１／９／３０’
ａｎｄ    プロジェクト名  ＝  ‘デジタルカメラの開発（その２）’
ａｎｄ    文書名  ｌｉｋｅ  ‘％仕様書％’；
【００３５】
このとき、アクセスプラン生成部３１２は、この問い合わせ式に対応して、例えば次のようなアクセスプランを組み立てる。
【００３６】
（０）結果表を空にする。
（１）表「文書」の最初の行の１つ前の仮想的な行にカーソルを位置付ける。
（２）カーソルを１つ進める。カーソルの指す行が、表「文書」の最後の行の１つ後の仮想的な行に達していた場合、終了する。
（３）カーソルの指す行から３つの列「文書名」、「プロジェクト名」および「作成日」の値を取り出す。
（４）ｗｈｅｒｅ句の条件に対応するＡＮＤ条件ノードを評価し、その結果が真であれば（５）へ進み、さもなければ（６）へ進む。
（５）カーソルの指す行から２つの列「文書ＩＤ」および「文書名」の値を取り出し、結果表へ書き込む。
（６）（２）へ戻る。
【００３７】
上記のｗｈｅｒｅ句の条件に対応する条件ノードは、ＡＮＤ条件ノードとなり、図４に示すように初期設定される。同図において、ＡＮＤ条件ノードは、３つの条件ブロック（ｂｅｔｗｅｅｎ、＝、ｌｉｋｅの各演算子に対応する）へのポインタと、それぞれの評価回数および成立回数をゼロに初期化して、評価順に設定されている。
【００３８】
上述の例で用いた問合せ要求文では、ＡＮＤ条件ノードのみで構成されているが、一般には、ＡＮＤ条件ノードおよびＯＲ条件ノードが組み合わさった構成になる。
例えば、Ａ，Ｂ，Ｃ，Ｄを条件ブロックとした場合、
（Ａ  ｏｒ  Ｂ）  ａｎｄ  （Ｃ  ｏｒ  Ｄ）
という問い合わせは、２つのＯＲ条件ノード、即ち、ＯＲ条件ノード（Ａ  ｏｒＢ）とＯＲ条件ノード（Ｃ  ｏｒ  Ｄ）をＡＮＤ条件ノードで結合したものとなる。
【００３９】
アクセスプラン実行部３１３は、アクセスプラン生成部３１２で作成された条件ノードの構成をアクセスプランに基づいて、表の各行ごとに検索を実行する。その際、アクセスプラン調整部３１４では、各行ごとの評価結果に対して、複数の条件の評価順序を動的に再構成する。
先ず、ＡＮＤ条件ノードの評価過程を図５のフローチャートを用いて説明する。
【００４０】
条件ノードに置かれた条件ブロックへのポインタのうち、最も左のポインタを条件ブロックポインタに代入し（ステップＳ１）、真の値を仮結果に代入する（ステップＳ２）。
条件ブロックポインタの指す条件ブロックの演算子に対応する関数に各引数を適用して評価し、その結果の真偽値を得る（ステップＳ３）とともに、この条件ブロックの評価回数を１増やす（ステップＳ４）。
ステップＳ３で得た評価結果が真であれば（ステップＳ５のＹＥＳ）、この条件ブロックの成立回数を１増やす（ステップＳ６）。
１つ右の条件ブロックへのポインタを条件ブロックポインタに代入し（ステップＳ７）、条件ブロックポインタの値が空でなければ（ステップＳ８のＮＯ）、ステップＳ３へ戻る。
また、次の条件ブロックへのポインタが空であれば（ステップＳ８のＹＥＳ）、ステップＳ１０へ進む。
【００４１】
一方、ステップＳ３で得た評価結果が偽であれば（ステップＳ５のＮＯ）、偽値を仮結果に代入して（ステップＳ９）、ステップＳ１０へ進む。
【００４２】
ＡＮＤ条件ノードに属している複数の条件ブロックの評価順序を再構成する（ステップＳ１０）。この再構成は、条件ブロックへのポインタと、そのポインタの指す条件ブロックの評価回数および成立回数の値を交換することによって、必要に応じて行う。ステップＳ１０によりアクセスプラン調整部３１４を構成する。
最後に、ＡＮＤ条件ノードの評価結果として仮結果の値を返す（ステップＳ１１）。
【００４３】
また、ＯＲ条件ノードの評価過程を図６のフローチャートを用いて説明する。
条件ノードに置かれた条件ブロックへのポインタのうち、最も左のポインタを条件ブロックポインタに代入し（ステップＳ２１）、偽の値を仮結果に代入する（ステップＳ２２）。
条件ブロックポインタの指す条件ブロックの演算子に対応する関数に各引数を適用して評価し、その結果の真偽値を得る（ステップＳ２３）とともに、この条件ブロックの評価回数を１増やす（ステップＳ２４）。
ステップＳ２３で得た評価結果が偽であれば（ステップＳ２５のＮＯ）、１つ右の条件ブロックへのポインタを条件ブロックポインタに代入し（ステップＳ２６）、条件ブロックポインタの値が空でなければ（ステップＳ２７のＮＯ）、ステップＳ２３へ戻る。
また、次の条件ブロックへのポインタが空であれば（ステップＳ２７のＹＥＳ）、ステップＳ３０へ進む。
【００４４】
一方、ステップＳ２３で得た評価結果が真であれば（ステップＳ２５のＹＥＳ）、この条件ブロックの成立回数を１増やし（ステップＳ２８）、真の値を仮結果に代入する（ステップＳ２９）。
【００４５】
ＯＲ条件ノードに属している複数の条件ブロックの評価順序を再構成する（ステップＳ３０）。この再構成は、条件ブロックへのポインタと、そのポインタの指す条件ブロックの評価回数および成立回数の値を交換することによって、必要に応じて行う。ステップＳ３０でアクセスプラン調整部３１４を構成する。
最後に、ＯＲ条件ノードの評価結果として仮結果の値を返す（ステップＳ３１）。
【００４６】
上記のアクセスプラン調整部３１４（ステップＳ１０およびステップＳ３０）は、条件ノードに蓄積された評価履歴を利用して再構成を実施する。
この場合、評価順序を入れ替える条件とその入れ替え位置は次のいずれかによって行う。
（１）評価順序を入れ替える条件とその入れ替え位置は任意とする。
（２）条件ノードがＡＮＤ条件ノードである場合には、条件ノードに蓄積された評価履歴を利用して、成立しにくい条件（例えば、評価回数に比して成功回数が所定の割合以下の条件）の評価順序を繰り上げるようにして、条件全体の真偽値が偽となる場合の真偽値の判定に掛かる時間を短縮する。
（３）条件ノードがＯＲ条件ノードである場合には、条件ノードに蓄積された評価履歴を利用して、成立しやすい条件（例えば、評価回数に比して成功回数が所定の割合以上の条件）を選択し、その評価順序を繰り上げるようにして、条件全体の真偽値が真となる場合の真偽値の判定に掛かる時間を短縮する。
【００４７】
また、アクセスプラン調整部３１４の実施タイミングは、上述の図５および図６では１行の条件ノードの評価値が定まったときに再構成を行っているが、これとは別に定期的に再構成を実施するようにしてもよいし、または、複数の条件の評価にかかるコストが所定の閾値以上になったときに再構成を実施するようにしてもよい。
【００４８】
本発明は、上述した実施形態を構成するデータベース検索装置の各機能をそれぞれプログラム化し、予めＣＤ−ＲＯＭ等の記録媒体に書き込んでおき、コンピュータに搭載したＣＤ−ＲＯＭドライブのような媒体駆動装置にこのＣＤ−ＲＯＭ等を装着して、これらのプログラムを読み取って内部記憶装置または外部記憶装置にインストールし、そのインストールされたプログラムをコンピュータが実行することによって、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、そのプログラムおよびそのプログラムを記録した記録媒体もまた本発明を構成することになる。
【００４９】
また、ロードしたプログラムを実行することにより上述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、オペレーティングシステムあるいは他のアプリケーションプログラム等と共同して処理することによって上述した実施形態の機能が実現される場合も含まれる。
【００５０】
尚、このような機能を実現するプログラムは、半導体媒体（例えば、ＲＯＭ、不揮発性メモリ等）、光媒体（例えば、ＤＶＤ、ＭＯ、ＭＤ、ＣＤ等）、磁気媒体（例えば、磁気テープ、フレキシブルディスク等）等のいずれの形態の記録媒体で提供されてもよい。
あるいは、サーバコンピュータからネットワーク等の通信網を介して、サーバコンピュータの記憶装置に格納されたプログラムを直接供給されるようにしてもよい。この場合、このサーバコンピュータの記憶装置も本発明の記録媒体に含まれる。
【００５１】
尚、本発明は上述した実施形態に限定されず、本発明の要旨を逸脱しない範囲内で各種の変形、修正が可能であるのは勿論である。
【００５２】
【発明の効果】
以上説明したように本発明によれば、リレーショナルデータベースに対する問合せ要求から生成されるアクセスプランの実行中に、複数の条件の評価順序を動的に再構成することによって、条件全体の真偽値の決定にかかる時間を短縮できる。
また、複数の条件の評価順序を動的に再構成する過程において、条件の評価結果の履歴を利用して、成立しにくい条件や成立しやすい条件を見つけて評価順序を繰り上げることにより、条件全体の真偽値の決定にかかる時間を短縮できる。
【００５３】
また、複数の条件の評価順序の動的な再構成を定期的にまたは条件の評価にかかるコストが閾値以上になったときに行うことにより、複数の条件の評価にかかる時間を短縮した状態を保持できるとともに、再構成にかかる時間を調整できる。
【図面の簡単な説明】
【図１】データベース検索装置のネットワーク構成例を示すブロック図である。
【図２】サーバプロセスの機能構成を示すブロック図である。
【図３】問合せ要求文中における条件を木表現するためのデータ構造の説明図である。
【図４】ＡＮＤ条件ノードの初期状態を表す例である。
【図５】ＡＮＤ条件ノードの評価過程を説明するフローチャートである。
【図６】ＯＲ条件ノードの評価過程を説明するフローチャートである。
【符号の説明】
１０，２０…クライアントマシン、１１，２１，２２…クライアントプロセス、３０…サーバマシン、３１…サーバプロセス、３１１…インターフェース部、３１２…アクセスプラン生成部、３１３…アクセスプラン実行部、３１４…アクセスプラン調整部、３１５…入出力管理部、４０…二次記憶装置、５０…ネットワーク、６０…プロセス間通信経路。
【図１】
2004318314.tif 000003
【図２】
2004318314.tif 000004
【図３】
2004318314.tif 000005
【図４】
2004318314.tif 000006
【図５】
2004318314.tif 000007
【図６】
2004318314.tif 000008