(57)【要約】【課題】検索クエリの実行処理で使用可能なリソース量の上限値を動的に変更できるデータ検索装置を提供する。【解決手段】データ検索装置１０は、過去に実行されたクエリ処理とクエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で使用されるリソース量を予測する予測部１１と、クエリ処理で使用可能なリソース量の上限値を実行が許可された実行予定のクエリ処理で使用される予測されたリソース量に変更する変更部１２とを備える。【選択図】図１
2018106281.tif 000002
【特許請求の範囲】
【請求項１】
過去に実行されたクエリ処理と前記クエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で使用されるリソース量を予測し、
クエリ処理で使用可能なリソース量の上限値を実行が許可された前記実行予定のクエリ処理で使用される予測されたリソース量に変更する
ことを特徴とするデータ検索方法。
【請求項２】
過去に実行されたクエリ処理で扱われたデータ量と前記クエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で扱われるデータ量を基に前記実行予定のクエリ処理で使用されるリソース量を予測する
請求項１記載のデータ検索方法。
【請求項３】
実行予定のクエリ処理で使用される予測されたリソース量を基に前記実行予定のクエリ処理の実行を許可するか否かを判断する
請求項１または請求項２記載のデータ検索方法。
【請求項４】
実行予定のクエリ処理で扱われるデータ量を確認し、
確認された前記データ量を基に前記実行予定のクエリ処理の実行を許可するか否かを判断する
請求項２記載のデータ検索方法。
【請求項５】
実行が許可された実行予定のクエリ処理を実行し、
実行された前記クエリ処理で使用されたリソース量を記録する
請求項１から請求項４のうちのいずれか１項に記載のデータ検索方法。
【請求項６】
データの検索条件を示す情報を基に実行予定のクエリ処理を生成する
請求項１から請求項５のうちのいずれか１項に記載のデータ検索方法。
【請求項７】
過去に実行されたクエリ処理と前記クエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で使用されるリソース量を予測する予測部と、
クエリ処理で使用可能なリソース量の上限値を実行が許可された前記実行予定のクエリ処理で使用される予測されたリソース量に変更する変更部とを備える
ことを特徴とするデータ検索装置。
【請求項８】
予測部は、過去に実行されたクエリ処理で扱われたデータ量と前記クエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で扱われるデータ量を基に前記実行予定のクエリ処理で使用されるリソース量を予測する
請求項７記載のデータ検索装置。
【請求項９】
コンピュータに、
過去に実行されたクエリ処理と前記クエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で使用されるリソース量を予測する予測処理、および
クエリ処理で使用可能なリソース量の上限値を実行が許可された前記実行予定のクエリ処理で使用される予測されたリソース量に変更する変更処理
を実行させるためのデータ検索プログラム。
【請求項１０】
コンピュータに、
過去に実行されたクエリ処理で扱われたデータ量と前記クエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で扱われるデータ量を基に前記実行予定のクエリ処理で使用されるリソース量を予測する予測処理を実行させる
請求項９記載のデータ検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ検索方法、データ検索装置およびデータ検索プログラムに関し、特にリソースの制限値を動的に変更できるデータ検索方法、データ検索装置およびデータ検索プログラムに関する。
【背景技術】
【０００２】
データ管理分野におけるクエリ管理製品は、データベース管理システムに対する問合せ（処理要求）を行うプログラム群に従って処理を実行する。クエリ管理製品がデータベース管理システムに対して発行する問合せは、クエリと呼ばれる。
【０００３】
例えば、処理対象のテーブルやデータの抽出条件および並べ方等が指定されると、クエリ管理製品は、最初に問合せ結果を取得する。次いで、クエリ管理製品は、指定に従って問合せ結果に対して並べ替え処理、グループ化処理、またはフィルタ処理を実行する。また、クエリ管理製品は、データの作成、データのコピー、データの削除、およびデータの変更等を実行できる。
【０００４】
クエリ管理製品が発行するクエリの種類は、データベース管理システムの管理対象のデータベースの種類や仕様に依存する。例えば、管理対象がリレーショナルデータベース(Relational Database;RDB)である場合、クエリは一般的にSQL(Structured English Query Language)で記述される。また、管理対象がXML(Extensible Markup Language)データベースである場合、クエリはXQueryで記述されることが多い。
【０００５】
また、「検索クエリ」と呼ばれるクエリは、上記のような記述方法によって区別されるクエリではなく、ユーザが検索エンジンを利用してデータを検索したい時に使用する検索条件が記述されたクエリである。
【０００６】
Google（登録商標）等の検索エンジンを利用する時に、ユーザが検索窓に入力するキーワードも検索クエリと呼ばれる。すなわち、キーワードを検索窓に入力したユーザは、意識せずに巨大なデータベースに対して問合せを行っている。
【０００７】
RDBやXMLデータベース等を管理するデータベース管理システムが検索クエリを用いてデータ検索を行う場合、コンピュータ内の様々なリソースが使用される。使用されるリソースは、例えばCPU(Central Processing Unit)、メモリ、ディスク、および通信ネットワーク等のコンピュータにおける共有資源である。
【０００８】
コンピュータで実行される様々なプロセスが、上記のリソースを利用する。すなわち、データ検索で検索される量が多いとリソースが枯渇し、リソースの枯渇が原因で処理待ちが発生したり、他の処理の処理時間に影響が及んだりする。よって、データ検索で使用されるリソースの量を制限し、他の処理に及ぶ影響をできるだけ小さくする仕組みがデータベース管理システムでは取られている。
【０００９】
データ検索で使用されるリソースの量の制限方法には、例えば、データ検索が実行される前に、データベース等に記憶されているデータがメモリにキャッシュされる量の制限値を設定する方法がある。
【００１０】
また、データ検索が実行される時に、同時に実行される処理数の上限値を設定する方法がある。また、データ検索が実行される時に、最初にデータ取得件数のみを計測し、次いで事前に設定された上限値と計測されたデータ取得件数を比べた上で検索を制御する方法がある。
【００１１】
また、計測されたデータ取得件数が上限値を超えた場合、データ検索の依頼元にアラートを通知し、依頼元に検索を続けるか否かを判断させることによって、検索クエリの実行処理にリソースを無駄に確保させない方法もある。
【００１２】
データ検索で使用されるリソースの量が検索クエリの実行処理の内容に依存する場合、予め最大値を見積もり、最大値よりも所定の割合だけ大きい値のメモリをキャッシュとして確保することが求められる。例えば、検索されるデータベースの容量が1TBである場合、最大で1TBのデータが検索されるため、1TBよりも大きい1.3TB程度のメモリをキャッシュとして確保することが求められる。
【００１３】
もし検索量の平均値よりも少しだけ大きい値のメモリしかキャッシュとして確保されていないと、最大値よりも所定の割合だけ大きい値のメモリがキャッシュとして確保される場合に比べてキャッシュされるデータが少なくなる。すなわち、キャッシュのヒット率が下がり、検索効率や検索速度が低下する。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２０１５−１０６２１９号公報
【特許文献２】特開２００８−２３４４３０号公報
【特許文献３】特開２００６−０４００８１号公報
【特許文献４】国際公開第２００８／０３８３４２号
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上記の方法における制限値は、例えば超過すると障害が発生するような閾値よりも所定の割合だけ大きい設定値であることが多い。すなわち、検索クエリの実行処理の対象であるデータが少ない場合であっても、リソースが多く消費されるような状況が発生する可能性がある。上記の例であれば、データ検索で使用されるキャッシュが100MBのキャッシュでよい場合、1.3TBのメモリをキャッシュとして確保することは非効率である。
【００１６】
すなわち、データ検索に関してリソースが無駄に消費されているという状況が存在する。また、取り扱われるデータの量は急速に増加している。サーバのようなハードウェア等の物理的なリソースの量にも上限があるため、限られたリソースを効率よく適正に各処理に割り振ることが重要である。上記の問題は、リソースの制限値が固定されていることを起因とする。
【００１７】
また、データ取得件数等の一部の情報はカラム数やカラム内のデータ量が不明なまま取得されるため、データ取得件数等の一部の情報のみが使用される場合、リソースの消費量が正しく把握されない可能性がある。すなわち、一部の情報のみで検索クエリの実行許可が判断された場合、検索クエリが実行されて初めて大量のリソースが消費されることが把握されるような状況が発生することもある。上記の問題は、判断対象の情報が不足していることを起因とする。
【００１８】
上記のような状況が発生することは、データベース管理システムの運用上好ましくない。さらに、リソースの利用可能な総量を実行が予定されているクエリ処理が要するリソース量が上回っている状況では、クエリ処理が要するリソース量が上回っていることが先に検知された方がよい場合がある。検知されることによって、検索クエリの実行処理を停止させたり、処理の実行タイミングをずらしたりする等の対処が行われる。
【００１９】
特許文献１に記載されている分散型データ仮想化システムは、１または複数のデータ仮想化装置を使用して分散クエリを効率的に実行するシステムである。また、特許文献２に記載されているクエリ処理装置は、より高度なプランの精度の最適化を図ることができる装置である。
【００２０】
しかし、特許文献１に記載されている分散型データ仮想化システム、および特許文献２に記載されているクエリ処理装置では、ハードウェア等の物理的なリソースに上限がある場合においてリソースの制限値を動的に変更することは想定されていない。
【００２１】
また、特許文献３に記載されている情報検索装置は、所望の検索条件が記述された検索式を読込み所定の簡易形式に分割する検索式分割部と、分割された簡易形式の検索式による検索時のリソース消費量がシステムのリソース上限値内であるか否かを評価する検索式評価部とを備える。すなわち、特許文献３に記載されている情報検索装置では、所望の検索条件が記述された検索式自体によるリソース消費量を予測することは想定されていない。
【００２２】
［発明の目的］
そこで、本発明は、上述した課題を解決する、検索クエリの実行処理で使用可能なリソース量の上限値を動的に変更できるデータ検索方法、データ検索装置およびデータ検索プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２３】
本発明によるデータ検索方法は、過去に実行されたクエリ処理とクエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で使用されるリソース量を予測し、クエリ処理で使用可能なリソース量の上限値を実行が許可された実行予定のクエリ処理で使用される予測されたリソース量に変更することを特徴とする。
【００２４】
本発明によるデータ検索装置は、過去に実行されたクエリ処理とクエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で使用されるリソース量を予測する予測部と、クエリ処理で使用可能なリソース量の上限値を実行が許可された実行予定のクエリ処理で使用される予測されたリソース量に変更する変更部とを備えることを特徴とする。
【００２５】
本発明によるデータ検索プログラムは、コンピュータに、過去に実行されたクエリ処理とクエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で使用されるリソース量を予測する予測処理、およびクエリ処理で使用可能なリソース量の上限値を実行が許可された実行予定のクエリ処理で使用される予測されたリソース量に変更する変更処理を実行させることを特徴とする。
【発明の効果】
【００２６】
本発明によれば、検索クエリの実行処理で使用可能なリソース量の上限値を動的に変更できる。
【図面の簡単な説明】
【００２７】
【図１】本発明によるデータ検索装置の第１の実施形態の構成例を示すブロック図である。
【図２】第１の実施形態のデータ検索装置１０による変更処理の動作を示すフローチャートである。
【図３】本発明によるデータ検索システムの第２の実施形態の構成例を示すブロック図である。
【図４】データ情報入出力部１１０に入力されるデータの検索情報の例を示す説明図である。
【図５】クエリ生成部２１０が生成するクエリの定義情報の例を示す説明図である。
【図６】クエリ生成部２１０が生成する実行用クエリの例を示す説明図である。
【図７】クエリ生成部２１０が生成する対象データ量確認手段の例を示す説明図である。
【図８】リソース使用結果記憶部２６０に記憶されているリソース使用結果情報を示す説明図である。
【図９】リソース使用結果記憶部２６０に記憶されているリソース使用結果情報の他の例を示す説明図である。
【図１０】対象データ量とCPU使用時間との関係を示す説明図である。
【図１１】対象データ量とメモリ使用量との関係を示す説明図である。
【図１２】関係式の算出に用いられる近似曲線の例を示す説明図である。
【図１３】寄与率と安全率との対応関係の例を示す説明図である。
【図１４】第２の実施形態のデータ検索システム２０によるクエリ実行処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００２８】
実施形態１．
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明によるデータ検索装置の第１の実施形態の構成例を示すブロック図である。本発明によるデータ検索装置１０は、過去に実行されたクエリ処理とクエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で使用されるリソース量を予測する予測部１１（例えば、リソース使用量予測部２５０）と、クエリ処理で使用可能なリソース量の上限値を実行が許可された実行予定のクエリ処理で使用される予測されたリソース量に変更する変更部１２（例えば、クエリ実行制御部２２０）とを備える。
【００２９】
以下、データ検索装置１０による変更処理を説明する。図２は、第１の実施形態のデータ検索装置１０による変更処理の動作を示すフローチャートである。
【００３０】
予測部１１は、過去に実行されたクエリ処理とクエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で使用されるリソース量を予測する（ステップS11）。
【００３１】
次いで、変更部１２は、クエリ処理で使用可能なリソース量の上限値を実行が許可された実行予定のクエリ処理で使用される予測されたリソース量に変更する（ステップS12）。変更した後、データ検索装置１０は、変更処理を終了する。
【００３２】
そのような構成により、データ検索装置は、検索クエリの実行処理で使用可能なリソース量の上限値を動的に変更できる。
【００３３】
また、予測部１１は、過去に実行されたクエリ処理で扱われたデータ量とクエリ処理で使用されたリソース量との関係を用いて実行予定のクエリ処理で扱われるデータ量を基に実行予定のクエリ処理で使用されるリソース量を予測してもよい。
【００３４】
そのような構成により、データ検索装置は、検索クエリの実行処理で検索されるデータ量を用いて検索クエリの実行処理で使用されるリソース量を予測できる。
【００３５】
また、データ検索装置１０は、実行予定のクエリ処理で使用される予測されたリソース量を基に実行予定のクエリ処理の実行を許可するか否かを判断する判断部（例えば、クエリ実行判断部１３０およびクエリ実行確認部２４０）を備えてもよい。
【００３６】
そのような構成により、データ検索装置は、予測されたリソースの使用量が大きいクエリ処理の実行を事前に中止できる。
【００３７】
また、データ検索装置１０は、実行予定のクエリ処理で扱われるデータ量を確認する確認部（例えば、対象データ確認部２３０）を備え、判断部は、確認されたデータ量を基に実行予定のクエリ処理の実行を許可するか否かを判断してもよい。
【００３８】
そのような構成により、データ検索装置は、確認されたデータ量が大きいクエリ処理の実行を事前に中止できる。
【００３９】
また、データ検索装置１０は、実行が許可された実行予定のクエリ処理を実行する実行部（例えば、クエリ実行制御部２２０）と、実行されたクエリ処理で使用されたリソース量を記録する記録部（例えば、クエリ実行制御部２２０）とを備えてもよい。
【００４０】
そのような構成により、データ検索装置は、過去に実行されたクエリ処理とクエリ処理で使用されたリソース量を蓄積できる。
【００４１】
また、データ検索装置１０は、データの検索条件を示す情報を基に実行予定のクエリ処理を生成する生成部（例えば、クエリ生成部２１０）を備えてもよい。
【００４２】
そのような構成により、データ検索装置は、利用者から入力されたデータの検索条件を基に実行用クエリを生成できる。
【００４３】
また、生成部は、使用されるリソース量を確認する手段を生成してもよい。
【００４４】
また、記録部は、実行されたクエリ処理で扱われたデータ量を記録してもよい。
【００４５】
実施形態２．
［構成の説明］
次に、本発明の第２の実施形態を、図面を参照して説明する。図３は、本発明によるデータ検索システムの第２の実施形態の構成例を示すブロック図である。
【００４６】
図３に示すように、データ検索システム２０は、クライアント装置１００と、クエリ実行制御装置２００と、Operating System３００と、Database System３１０とを含む。
【００４７】
本実施形態のデータ検索システム２０は、上記の課題を解決するために、クエリ実行時のリソース制限値を動的に変更する仕組みを提供する。なお、本実施形態における制限値は、クエリ処理で使用可能なリソース量の上限値を意味する。データ検索システム２０は、以下の３つの特徴を有する。
【００４８】
１つ目の特徴として、データ検索システム２０は、クエリ処理で扱われるデータ量である対象データ量を確認する手段を有する。データ検索システム２０は、クエリを実行する直前に対象データ量を確認し、処理を実行するか否かを判断する。また、データ検索システム２０は、確認された対象データ量を記録する。
【００４９】
対象データ量には、クエリ処理に応じて様々なデータ量がある。例えば、データベース検索であれば、対象データ量は、クエリ処理で検索される対象データのサイズである。また、ファイルデータのインポートおよびエクスポートであれば、対象データ量は、対象ファイルのディスクサイズである。なお、ファイルには、テキストファイル以外に、画像ファイルや音声ファイル等も含まれる。
【００５０】
２つ目の特徴として、データ検索システム２０は、クエリ処理によるリソース使用量を取得する手段を有する。データ検索システム２０は、クエリ実行時に各リソースに応じた手段で各リソース使用量を取得する。また、データ検索システム２０は、取得された実績値を、クエリ処理の対象データ量と併せて蓄積する。
【００５１】
３つ目の特徴として、データ検索システム２０は、過去に実行されたクエリ処理の対象データ量と、クエリ処理のリソース使用量の実績値を基に、新しく実行されるクエリ処理のリソース使用量を、クエリ処理が実行される前に見積もる。データ検索システム２０は、クエリ処理の対象データ量が判明した時点でリソース使用量を見積もる。
【００５２】
データベース等のデータソースも含めて全く同じ処理が実行される場合、基本的にリソース使用量や処理時間は変動しない。しかし、処理量が違う場合、すなわち各処理で扱われるデータ量（対象データ量）が異なる場合、リソース使用量や処理時間は変動する。
【００５３】
よって、本実施形態のデータ検索システム２０は、過去実績として蓄積された対象データ量とリソース使用量との関係を用いて、新しく実行されるクエリ処理の対象データ量を基にリソース使用量を見積もる。対象データ量とリソース使用量との関係は、リソースの種類ごとに生成される。データ検索システム２０は、リソースの種類ごとにリソース使用量を見積もる。
【００５４】
次いで、データ検索システム２０は、所定の割合で安全率が考慮されたリソース使用量の予測値をリソース制限値に反映する。クエリ処理の実行ごとに変更されることによって、リソース制限値には、対象のクエリ処理のリソース使用量が少ないと推測される場合、比較的小さな値が設定される。
【００５５】
また、対象のクエリ処理のリソース使用量が多いと推測される場合、リソース制限値には、比較的大きな値が設定される。また、データ検索システム２０は、より具体的なリソース使用量の情報を基にクエリ処理を実行するか否かを判断できる。
【００５６】
クライアント装置１００は、データ検索システム２０の利用者が使用する装置である。クライアント装置１００は、データ情報入出力部１１０と、データ検索情報入出力部１２０と、クエリ実行判断部１３０とを有する。
【００５７】
データ情報入出力部１１０は、利用者から入力されたデータを出力したり、利用者に向けてデータを出力したりする機能を有する。データ情報入出力部１１０は、利用者から入力されたデータの検索情報をデータ検索情報入出力部１２０に入力する。また、データ情報入出力部１１０は、データ検索情報入出力部１２０から返却された検索結果を利用者に向けて表示する。
【００５８】
図４は、データ情報入出力部１１０に入力されるデータの検索情報の例を示す説明図である。図４に示すデータの検索情報は、情報種別と、値とで構成されている。
【００５９】
図４には、情報種別として検索対象テーブルと、検索条件が示されている。検索対象テーブルには、検索対象のテーブルの名称が指定されている。また、検索条件には、検索に使用されるテーブルのカラム名等が指定されている。
【００６０】
また、データ情報入出力部１１０は、クエリ実行判断部１３０から返却されたクエリ実行の継続判断情報を利用者に向けて表示する。データ情報入出力部１１０は、利用者から入力されたクエリ実行の継続可否を示す情報をクエリ実行判断部１３０に返却する。
【００６１】
データ検索情報入出力部１２０は、データ情報入出力部１１０から入力されたデータの検索情報を基に、クエリ生成に使用される情報をクエリ生成部２１０に入力する機能を有する。また、データ検索情報入出力部１２０は、クエリ実行制御部２２０から返却されたクエリの実行結果を、データ情報入出力部１１０に返却する。
【００６２】
クエリ実行判断部１３０は、通知されたリソース使用量の予測値または対象データ量を基にクエリの実行可否を判断する機能を有する。クエリ実行判断部１３０は、クエリ実行確認部２４０からリソース使用量の予測値または対象データ量に関する情報が通知される。
【００６３】
クエリ実行判断部１３０は、データ情報入出力部１１０にクエリ実行の継続判断情報を入力する。また、クエリ実行判断部１３０は、データ情報入出力部１１０から返却されたクエリ実行の継続可否を示す情報をクエリ実行確認部２４０に返却する。
【００６４】
クエリ実行制御装置２００は、クエリの実行を制御する装置である。クエリ実行制御装置２００は、個々のクエリの実行を直接制御しているため、クエリ処理の実行状況と、対象データ量およびリソース使用量を適切に把握している。対象データ量およびリソース使用量の実績値を基にリソース使用量を推測することによって、クエリ実行制御装置２００は、リソース制限値の設定をより高精度に制御できる。
【００６５】
クエリ実行制御装置２００は、クエリ生成部２１０と、クエリ実行制御部２２０と、対象データ確認部２３０と、クエリ実行確認部２４０と、リソース使用量予測部２５０と、リソース使用結果記憶部２６０と、リソース使用量確認部２７０とを有する。
【００６６】
クエリ生成部２１０は、データ検索情報入出力部１２０から入力された情報を基にSQL等の記述方式で実行用クエリおよび確認用クエリを生成する機能を有する。また、クエリ生成部２１０は、実行用クエリの処理プロセスによるリソース使用量の確認手段等を生成する。クエリ生成部２１０は、生成された情報を示すクエリの定義情報をクエリ実行制御部２２０に入力する。
【００６７】
図５は、クエリ生成部２１０が生成するクエリの定義情報の例を示す説明図である。図５に示すように、クエリの定義情報は、クエリ処理名と、対象データ量と、リソース使用量とで構成されている。
【００６８】
クエリ処理名は、実行されるクエリ処理を識別する情報である。対象データ量は、クエリ処理名が示すクエリ処理で検索されるデータ量の確認に用いられる情報を示す。リソース使用量は、使用量の種別と、使用量を確認するための確認手段を示す。図５に示すように、第１クエリ処理は、CPUとメモリの２つのリソースを使用する。
【００６９】
図５に示す各確認手段は、一般的なWindows（登録商標）オペレーティングシステムやデータベースシステムに用意されているコマンドを発行することによってリソース使用量を確認する手段である。なお、確認手段は、図５に示す方法以外でリソース使用量を確認する手段でもよい。
【００７０】
図５に示す対象データ量の種別は、クエリの種別である。種別「SQL」は、クエリがSQLで記述されていることを意味する。
【００７１】
また、図５に示す対象データ量の種別明細の例を図６に示す。図６は、クエリ生成部２１０が生成する実行用クエリの例を示す説明図である。
【００７２】
また、図５に示す対象データ量の確認手段の例を図７に示す。図７は、クエリ生成部２１０が生成する対象データ量確認手段の例を示す説明図である。図７に示す対象データ量確認手段には、クエリ生成部２１０で生成された確認用クエリを実行するステップが含まれている。図７に示すSTEP1〜STEP5の各確認ステップを実行することによって、対象データ確認部２３０は、対象データ量を確認する。
【００７３】
クエリ実行制御部２２０は、各構成要素と連携しながらクエリ処理全体の実行を制御する機能を有する。クエリ実行制御部２２０は、クエリ生成部２１０から入力されたクエリの定義情報を基に、クエリ処理の実行を制御する。具体的には、クエリ実行制御部２２０は、クエリの実行プロセスを起動させたり、停止させたりする。
【００７４】
また、クエリ実行制御部２２０は、対象データ確認部２３０、クエリ実行確認部２４０、リソース使用量予測部２５０、およびリソース使用量確認部２７０それぞれに処理の実行を要求し、処理結果を取得する。次いで、クエリ実行制御部２２０は、取得された処理結果を基に、クエリ処理の実行を制御する。
【００７５】
具体的には、リソース使用量の予測値が制限値を超える場合、クエリ実行制御部２２０は、クエリ処理の実行を保留する。また、クエリ実行制御部２２０は、実行中のクエリ処理を強制的に停止させてもよい。また、クエリ実行制御部２２０は、クエリ処理で使用されたリソースの実績値をリソース使用結果記憶部２６０に記録する。
【００７６】
クエリ実行制御部２２０は、クエリ実行時にOperating System３００からクエリ処理プロセスのプロセスIDを取得する。図３に示すクエリ処理プロセスは、Operating System３００において動作する処理プロセス群を示す。クエリ処理プロセスには、確認用クエリ処理プロセスと実行用クエリ処理プロセスがある。
【００７７】
対象データ確認部２３０は、クエリ生成部２１０で生成された確認用クエリを実行する機能を有する。確認用クエリを実行することによって、対象データ確認部２３０は、Database System３１０から対象データ量を示す情報を取得する。対象データ確認部２３０は、取得された情報をクエリ実行制御部２２０に返却する。
【００７８】
クエリ実行確認部２４０は、対象データ確認部２３０が取得した対象データ量に関する情報をクエリ実行判断部１３０に入力する機能を有する。また、クエリ実行確認部２４０は、入力されたリソース使用量の予測値が制限値を超えるか否かを判断する。また、クエリ実行確認部２４０は、クエリ実行判断部１３０から返却されたクエリ実行の継続可否を示す情報をクエリ実行制御部２２０に返却する。
【００７９】
リソース使用量予測部２５０は、クエリ実行制御部２２０からのリソース使用量の予測依頼を受けてリソース使用量を予測する機能を有する。リソース使用量予測部２５０は、リソース使用結果記憶部２６０に記憶されているリソース使用量の実績値に基づいて所定の計算を行い、計算結果であるリソース使用量をクエリ実行制御部２２０に返却する。
【００８０】
具体的には、リソース使用量予測部２５０は、実行予定のクエリ処理に適用可能な、リソース使用結果記憶部２６０に記憶されている過去に実行されたクエリ処理の対象データ量とリソース使用量を参照する。次いで、リソース使用量予測部２５０は、クエリ処理による各リソース使用量と対象データ量との関係を計算する。
【００８１】
リソース使用量予測部２５０は、計算された関係を用いて実行予定のクエリ処理の対象データ量に対するリソース使用量の予測値を計算する。リソース使用量予測部２５０は、計算された予測値をクエリ実行制御部２２０に返却する。
【００８２】
なお、対象データ量とリソース使用量との関係の算定方法には、過去実績のデータ量が十分に存在する場合、関係曲線へのフィッティング等により関係式を算出する公知の技術が使用されてもよい。
【００８３】
リソース使用量予測部２５０は、対象クエリの実行直前にクエリ実行制御部２２０から依頼を受けて対象データ量とリソース使用量との関係を計算する。しかし、計算に使用されるデータが事前にリソース使用結果記憶部２６０に格納されているので、リソース使用量予測部２５０は、関係の計算処理を、クエリ実行制御部２２０から依頼を受けた時機と別の時機で非同期に実行してもよい。
【００８４】
リソース使用量予測部２５０が関係の計算処理を非同期に実行する場合、関係の計算結果が、それぞれのクエリ処理で使用されるリソースごとにリソース使用結果記憶部２６０に格納される。また、リソース使用量予測部２５０は、後述するステップS108の処理を省略する。
【００８５】
リソース使用結果記憶部２６０は、対象データ量と各リソースの使用実績値とを対応付けて記憶する機能を有する。各リソースの使用実績値には、例えば、リソースの最大使用量やリソースの使用時間が含まれる。なお、本実施形態のリソース使用結果記憶部２６０には、クエリ処理の実行に関する過去の実績値が十分に蓄積されている。
【００８６】
図８は、リソース使用結果記憶部２６０に記憶されているリソース使用結果情報を示す説明図である。図８に示すように、リソース使用結果情報は、クエリ処理名と、実行情報と、対象データ量と、リソース使用量とで構成されている。
【００８７】
クエリ処理名は、実行されたクエリ処理を識別する情報である。実行情報は、クエリ処理名が示すクエリ処理の実行に関する情報である。図８における実行情報は、開始時刻、種別、および種別明細を示す。
【００８８】
対象データ量は、クエリ処理名が示すクエリ処理で検索されたデータ量である。図８に示す対象データ量の単位はバイトであるが、バイト以外の単位が用いられてもよい。
【００８９】
リソース使用量は、クエリ処理名が示すクエリ処理で使用されたリソースの量を示す。図８におけるリソース使用量は、CPU使用時間と、メモリ使用量とを示す。図８に示すメモリ使用量の単位はバイトであるが、バイト以外の単位が用いられてもよい。また、図８に示すCPU使用時間の単位は分と秒であるが、分と秒以外の単位が用いられてもよい。
【００９０】
CPU使用時間は、累積的なリソース使用量である。なお、CPU使用時間以外にリソース使用量として、単位時間当たりの使用量であるCPU使用率等が記録されてもよい。
【００９１】
本実施形態のクエリ実行制御部２２０は、リソース使用量確認部２７０が確認したリソース使用量の最大値を実績値として記録する。具体的には、クエリ実行制御部２２０は、CPU使用時間の場合、クエリ処理の終了時点での値を記録する。
【００９２】
また、クエリ実行制御部２２０は、メモリ使用量やCPU使用率の場合、最大値が確認されたタイミングでの値を記録する。クエリ実行制御部２２０は、リソース使用結果情報に累積的なリソース使用量と、単位時間当たりのリソース使用量のどちらも記録できる。
【００９３】
図９は、リソース使用結果記憶部２６０に記憶されているリソース使用結果情報の他の例を示す説明図である。図９には、図８に示す対象データ量およびリソース使用量が抜粋されて示されている。
【００９４】
図１０は、対象データ量とCPU使用時間との関係を示す説明図である。図１０に示す関数は、図９に示すデータを基に生成されている。図１１は、対象データ量とメモリ使用量との関係を示す説明図である。図１１に示す関数は、図９に示すデータを基に生成されている。
【００９５】
なお、図１０に示す関数および図１１に示す関数は、関係を示す近似曲線へのフィッティングにより関係式を算出する技術が用いられて生成されている。図１０に示す例では対数近似曲線が、図１１に示す例では線形近似曲線がそれぞれ用いられている。
【００９６】
なお、対数近似曲線および線形近似曲線以外の近似曲線が用いられて関係式が算出されてもよい。図１２は、関係式の算出に用いられる近似曲線の例を示す説明図である。
【００９７】
なお、リソースの種類によっては、対象データ量がどのような値であってもリソース使用量が変動しない場合も考えられる。すなわち、リソース使用量が固定値であるリソースも存在する。
【００９８】
以下、図５に示す第１クエリ処理を実行する場合を考える。図９に示す実績値は、第１クエリ処理のリソース使用量の予測に使用可能な値である。対象データ量確認手段が実行され、第１クエリ処理の対象データ量が2,000,000バイトであると確認されたとする。
【００９９】
リソース使用量予測部２５０は、図１０に示す関数および図１１に示す関数を用いて、各リソース使用量の予測値を「CPU使用時間：2分15秒」、「メモリ使用量：4,059,182バイト」とそれぞれ求めることができる。
【０１００】
次いで、リソース使用量予測部２５０は、関数の寄与率（R2値）を基に安全率を算出し、安全率が考慮されたリソース使用量の予測値を算出する。算出する際、リソース使用量予測部２５０は、図１３に示す対応関係を用いる。図１３は、寄与率と安全率との対応関係の例を示す説明図である。
【０１０１】
例えば、図１０に示す例であれば寄与率が0.8839であるため、安全率αは1.5倍である。また、図１１に示す例であれば寄与率が0.9994であるため、安全率αは1.2倍である。リソース使用量予測部２５０は、安全率を考慮して、リソース使用量の予測値をそれぞれ以下のように算出する。
【０１０２】
CPU使用時間：2:15×1.5=3:22
メモリ使用量：4,059,182×1.2=4,871,018
【０１０３】
リソース使用量確認部２７０は、プロセスIDごとにCPU、メモリ、ディスク等のリソースの使用量およびデータベース処理時間等をDatabase System３１０から取得する機能を有する。
【０１０４】
リソース使用量確認部２７０は、プロセスIDをクエリ実行制御部２２０から取得する。また、リソース使用量確認部２７０は、Database System３１０から取得した情報をクエリ実行制御部２２０に返却する。
【０１０５】
Operating System３００は、プロセスIDの発行や、各プロセスへのリソースの割り当てを行う機能を有する。なお、本実施形態のOperating System３００は、WindowsやLINUX（登録商標）等のOperating System全般に対応している。
【０１０６】
Database System３１０には、検索対象のデータが蓄積されている。具体的には、Database System３１０には、データの検索情報を基に取得されるデータおよびデータの属性データが格納されている。なお、本実施形態のDatabase System３１０は、Oracle（登録商標）、PostgreSQL（登録商標）、XMLDB、DB2（登録商標）、およびHadoop（登録商標）等のDatabase System全般に対応している。
【０１０７】
なお、図３に示すクライアント装置１００、クエリ実行制御装置２００、Operating System３００、およびDatabase System３１０はそれぞれ異なる構成要素として記述されているが、各構成要素は同一の環境で実現されてもよい。例えば、本実施形態のデータ検索システム２０が、１つの物理サーバ、または１つの仮想サーバで実現されてもよい。
【０１０８】
本実施形態のデータ検索システム２０は、データ検索等のクエリ処理で使用されるリソース量の制限値を動的に変更することによって、処理量が増加して使用されるリソース量が予期せず増大し、クエリ処理が打ち切られたり遅延したりすることを回避できる。また、データ検索システム２０は、制限値が大き目に設定されているために制限値が殆ど意味を成していないような状況の発生も回避できる。
【０１０９】
なお、リソース使用量の予測値がリソース使用量の制限値を超えた場合に警告を上げたりクエリ処理を強制的に停止させたりする処理には、公知の技術が使用されてもよい。
【０１１０】
［動作の説明］
以下、本実施形態のデータ検索システム２０の検索クエリを実行する動作を図１４を参照して説明する。図１４は、第２の実施形態のデータ検索システム２０によるクエリ実行処理の動作を示すフローチャートである。
【０１１１】
図１４に示すクエリ実行処理は、クエリが実行される前に対象データ量からリソース使用量を事前に見積もり処理を実行させるか停止させるかを判断した上でリソースの制限値を動的に変更する処理と、クエリの実行中にリソース使用量を取得し実績値を蓄積する処理に分かれている。
【０１１２】
ステップS101〜ステップS117は、リソースの制限値を動的に変更する、クエリが実行される前の処理である。データ情報入出力部１１０に、データの検索情報が入力される（ステップS101）。次いで、データ情報入出力部１１０は、データ検索の指示をデータ検索情報入出力部１２０に入力する。
【０１１３】
次いで、データ検索情報入出力部１２０は、入力されたデータの検索情報を基に、クエリ生成に使用される情報をクエリ生成部２１０に入力する（ステップS102）。
【０１１４】
次いで、クエリ生成部２１０は、入力されたクエリ生成に使用される情報を基に、クエリの定義情報を生成する（ステップS103）。具体的には、クエリ生成部２１０は、検索結果のデータが取得されるための実行用クエリと、実行用クエリで検索される対象データ量が事前に確認されるための確認用クエリをそれぞれ生成する。
【０１１５】
また、クエリ生成部２１０は、処理プロセスによるリソース使用量の確認手段等も生成する。クエリ生成部２１０は、生成されたクエリの定義情報をクエリ実行制御部２２０に入力する。
【０１１６】
次いで、クエリ実行制御部２２０は、最初にクエリの定義情報から確認用クエリを読み込む。クエリ実行制御部２２０は、読み込まれた確認用クエリの実行ステップが含まれる対象データ量確認手段を対象データ確認部２３０に通知することによって、対象データ量の確認を対象データ確認部２３０に依頼する（ステップS104）。
【０１１７】
また、クエリ実行制御部２２０は、確認用クエリ処理プロセスを起動させる。なお、確認用クエリ処理プロセスは、対象データ量の確認のみを行うプロセスである。すなわち、確認用クエリ処理プロセスが使用するリソース量は軽微である。
【０１１８】
次いで、対象データ確認部２３０は、通知された対象データ量確認手段を実行することによってOperating System３００を介してDatabase System３１０に対して問合せを行い、クエリ処理の対象データ量を確認する（ステップS105）。対象データ量を確認した後、対象データ確認部２３０は、確認結果をクエリ実行制御部２２０に返却する。
【０１１９】
次いで、クエリ実行制御部２２０は、クエリ処理名とステップS105で得られた対象データ量をリソース使用量予測部２５０に通知する。すなわち、クエリ実行制御部２２０は、リソース使用量予測部２５０に実行予定のクエリ処理で使用されるリソース量の予測を依頼する（ステップS106）。
【０１２０】
なお、ステップS106で利用されるクエリ処理名は、リソース使用量予測部２５０がリソース使用結果記憶部２６０内のリソース使用結果情報から一意な情報を取得するために使用する識別情報としての値である。すなわち、識別情報として使用可能な情報であれば、クエリ処理名以外の他の情報が利用されてもよい。
【０１２１】
次いで、リソース使用量予測部２５０は、クエリ実行制御部２２０から通知されたクエリ処理名が含まれるリソース使用結果情報をリソース使用結果記憶部２６０から取得する（ステップS107）。
【０１２２】
次いで、リソース使用量予測部２５０は、取得されたリソース使用結果情報に含まれる対象データ量と各リソースのリソース使用量との関係をそれぞれ計算する（ステップS108）。なお、上述したように、ステップS108の処理は省略されてもよい。
【０１２３】
次いで、リソース使用量予測部２５０は、ステップS108で得られた対象データ量と各リソース使用量との関係を用いて、クエリ実行制御部２２０から通知された実行予定のクエリ処理の対象データ量を基にリソース使用量の予測値をそれぞれ計算する（ステップS109）。
【０１２４】
また、リソース使用量予測部２５０は、対象データ量と各リソース使用量との関係の寄与率も併せて計算する。リソース使用量予測部２５０は、各計算結果をクエリ実行制御部２２０に返却する。
【０１２５】
次いで、リソース使用量予測部２５０は、返却された寄与率を基に安全率を算出する。次いで、リソース使用量予測部２５０は、安全率が考慮されたリソース使用量の予測値を計算する。リソース使用量予測部２５０は、計算された各予測値をクエリ実行確認部２４０に入力する（ステップS110）。
【０１２６】
クエリ実行確認部２４０は、安全率が考慮されたリソース使用量の予測値とリソース使用制限値とを比較し、予測値が制限値を超えるか否かを確認する（ステップS111）。なお、クエリ実行確認部２４０は、リソース使用制限値の代わりに物理的なリソースの利用可能制限値と予測値とを比較してもよい。また、比較に使用される予測値は、安全率が考慮される前の予測値でもよい。
【０１２７】
なお、本実施形態のリソース使用制限値は、例えば物理的なリソースの利用可能制限値の８割の値等のように、事前に設定されている値である。また、リソース使用制限値は、任意に変更可能な値である。
【０１２８】
予測値が制限値を超える場合（ステップS111におけるYes）、クエリ実行確認部２４０は、クエリ実行判断部１３０に予測値が制限値を超えることを示す情報を通知する（ステップS112）。予測値が制限値以下の場合（ステップS111におけるNo）、クエリ実行制御部２２０は、ステップS118の処理を行う。
【０１２９】
クエリ実行判断部１３０は、クエリ実行の継続判断情報をデータ情報入出力部１１０に入力する。データ情報入出力部１１０は、入力された情報を基にクエリ処理を継続して実行するか否かを確認する情報を利用者に向けて出力する（ステップS113）。
【０１３０】
出力された情報を参照して、利用者は、データ情報入出力部１１０にクエリ実行の継続可否を示す情報を入力する。データ情報入出力部１１０は、入力された情報をクエリ実行判断部１３０に返却する。次いで、クエリ実行判断部１３０は、返却された情報をクエリ実行確認部２４０に通知する。次いで、クエリ実行確認部２４０は、クエリ実行制御部２２０に確認結果を返却する（ステップS114）。
【０１３１】
本例では、クエリ実行制御部２２０に返却された確認結果が、「処理の継続」、「処理の停止」、「処理の保留」のいずれかを示す。クエリ実行制御部２２０は、返却された確認結果を参照する（ステップS115）。
【０１３２】
確認結果が「処理の継続」を示す場合（ステップS115における「継続」）、クエリ実行制御部２２０は、ステップS110で算出されたリソース使用量の予測値を新たなリソース制限値として設定する（ステップS116）。
【０１３３】
次いで、クエリ実行制御部２２０は、対象のクエリ処理の実行を開始する（ステップS118）。なお、予測値が制限値以下の場合（ステップS111におけるNo）も、クエリ実行制御部２２０は、対象のクエリ処理の実行を開始する（ステップS118）。
【０１３４】
確認結果が「処理の停止」を示す場合（ステップS115における「停止」）、クエリ実行制御部２２０は、対象のクエリ処理の実行を開始しない。また、クエリ実行制御部２２０は、リソース制限値の再設定も行わない。データ検索システム２０は、クエリ実行処理を終了する。
【０１３５】
確認結果が「処理の保留」を示す場合（ステップS115における「保留」）、クエリ実行制御部２２０は、予め決められた時間だけクエリ処理の実行を保留する（ステップS117）。決められた時間が経過した後、データ検索システム２０は、再度ステップS112の処理を実行する。
【０１３６】
ステップS119〜ステップS121は、クエリ実行中の処理である。クエリ処理の実行を開始した後、クエリ実行制御部２２０は、対象の実行用クエリ処理プロセスを一意に識別可能な値、およびクエリ生成部２１０から得られた対象の実行用クエリ処理プロセス用のリソース使用量の確認手段をリソース使用量確認部２７０に通知する。通知することによって、クエリ実行制御部２２０は、リソース使用量確認部２７０にリソース使用量の確認を依頼する（ステップS119）。
【０１３７】
実行用クエリ処理プロセスを一意に識別可能な値は、例えばプロセスIDである。プロセスIDは、実行用クエリ処理プロセスの起動時に得られる。なお、実行用クエリ処理プロセス用のリソース使用量の確認手段は、ステップS103で既に生成されている。
【０１３８】
次いで、リソース使用量確認部２７０は、通知された実行用クエリ処理プロセスを一意に識別可能な値を用いて、通知された対象クエリ用のリソース使用量の確認手段を、Operating System３００とDatabase System３１０とを含むサーバ等のクエリ処理実行装置に対して実行する。実行することによって、リソース使用量確認部２７０は、対象のクエリ処理の各リソース使用量を確認する（ステップS120）。
【０１３９】
リソース使用量確認部２７０は、リソース使用量の確認を所定の時間間隔を空けて繰り返し行う。次いで、クエリ実行制御部２２０は、リソース使用量確認部２７０が確認したリソース使用量の最大値をリソース使用結果記憶部２６０に記録する（ステップS121）。記録した後、データ検索システム２０は、クエリ実行処理を終了する。
【０１４０】
なお、本例では所定の割合の安全率が考慮されたリソース使用量の予測値を比較、判断、または設定する方法を説明したが、安全率が考慮されない予測値に対しても同様の方法が適用可能である。
【０１４１】
［効果の説明］
本実施形態のデータ検索システム２０は、リソース制限値が固定されている時に、検索対象のデータ量が増加して使用されるリソース量が増えた場合にクエリ処理が予期せず保留されたり、停止されたりする可能性を減らすことができる。
【０１４２】
リソース制限値が固定されている時、蓄積されている過去実績が示す値よりも大きなデータ量が検索される場合に、リソース使用量がリソース制限値を超過する可能性があるため、クエリ処理の強制終了等が発生することがある。しかし、本実施形態ではクエリ実行制御部２２０が上記のリソース使用量の予測値を利用してリソース制限値を動的に変更するため、クエリ処理の強制終了が防止される。
【０１４３】
また、本実施形態のデータ検索システム２０は、固定されている制限値が、超過した場合に障害等が発生する閾値よりも大きい値である場合、値が大きすぎて制限値としての意味を成していないような状況や、他の処理で使用されるリソースに影響が及ぶような状況の発生を防止できる。特に、蓄積されている過去実績が示す値よりも小さなデータ量が検索される場合であっても大きなリソース制限値が設定されたままの状況が継続することが防止される。
【０１４４】
また、本実施形態のデータ検索システム２０は、クエリが実行される直前にクエリ処理における検索対象データ量や予想リソース使用量を把握するので、対象のクエリが実行された時のシステムへの影響を事前に察知できる。システムへの影響は、例えばリソースの圧迫やリソースの枯渇である。
【０１４５】
システムへの影響を把握した上で、データ検索システム２０は、クエリを実行可能な状況であればクエリの実行を開始する。また、クエリの実行が困難な状況であれば、データ検索システム２０は、クエリの実行を保留、または停止させることができる。よって、データ検索システム２０は、想定された値以上のリソース量を占有するクエリ処理である「キラークエリ処理」に対応できる。
【０１４６】
特許文献４には、クライアントプロセスがサーバプロセスに接続する際に接続が許可された後の負荷の増大が考慮された制御を行うことによって他の実行中の処理が遅延することを防止する接続制御方法が記載されている。特許文献４に記載されている予測方法と異なり、本実施形態では過去の実績値を基に予測が行われる。
【０１４７】
本実施形態で予測されるリソース使用量は、最適なスケジューリングを行う際の指標として使用可能な値である。各クエリ処理のリソース使用量の上限値は、事前に決定されている。リソース使用量を指標として使用するクエリ処理の管理者は、指標が上限値を超えないように、空きリソースができるだけ少なく、かつ、効率的に各クエリ処理が実行される最適なクエリ処理の実行スケジュールを組むことができる。
【０１４８】
また、本実施形態のデータ検索システム２０は、物理サーバ環境または仮想サーバ環境等の複数の分散処理装置で実現されるプロセス実行処理方式に組み込まれたリソースコントローラとして利用可能なシステムである。プロセス実行処理方式は、例えばデータベース検索システムにおけるクエリ処理方式、ファイル更新システムにおける更新処理方式、または画像や音声の登録システムにおける登録処理方式である。
【０１４９】
また、本実施形態で予測されるリソース使用量は、最適なシステムを設計する際の指標として活用可能な値である。例えば、サーバの構成設計、リソース設計（性能設計）、またはデータ移行設計における指標として活用される。データ検索システム２０は、蓄積された実行結果のデータを基に、物理サーバまたは仮想サーバの設計における指標を提示できたり、使用可能なリソース量が制限されている環境下での設計を制御できたりする。
【０１５０】
例えば、検索クエリ処理の実行に３台のサーバを要すると予測していた管理者が上記の指標を用いると、検索クエリ処理の実行に２台のサーバがあればよいと事前に見積もることができる可能性がある。また、管理者は、データ移行時間を５時間以内に収めるために、１０台のサーバを要すると事前に見積もることができる可能性がある。
【０１５１】
なお、各実施形態のデータ検索装置１０、データ検索システム２０のクライアント装置１００およびクエリ実行制御装置２００は、例えば、記憶媒体に格納されているプログラムに従って処理を実行するCPUによって実現される。すなわち予測部１１、変更部１２、データ情報入出力部１１０、データ検索情報入出力部１２０、クエリ実行判断部１３０、クエリ生成部２１０、クエリ実行制御部２２０、対象データ確認部２３０、クエリ実行確認部２４０、リソース使用量予測部２５０、およびリソース使用量確認部２７０は、例えば、プログラム制御に従って処理を実行するCPUによって実現される。なお、データ検索装置１０、クライアント装置１００、およびクエリ実行制御装置２００は、CPU以外の他のProcessing Unit（例えば、GPU(Graphics Processing Unit)）によって実現されてもよい。
【０１５２】
また、リソース使用結果記憶部２６０は、例えばRAM(Random Access Memory)で実現される。
【０１５３】
また、各実施形態のデータ検索装置１０における各部、およびデータ検索システム２０における各部は、ハードウェア回路によって実現されてもよい。一例として、予測部１１、変更部１２、データ情報入出力部１１０、データ検索情報入出力部１２０、クエリ実行判断部１３０、クエリ生成部２１０、クエリ実行制御部２２０、対象データ確認部２３０、クエリ実行確認部２４０、リソース使用量予測部２５０、リソース使用結果記憶部２６０、およびリソース使用量確認部２７０が、それぞれLSI(Large Scale Integration)で実現される。また、それらが１つのLSIで実現されていてもよい。
【産業上の利用可能性】
【０１５４】
本発明は、データ管理分野や、テキストファイル、画像ファイル、または音声ファイル等のファイル管理分野に好適に適用可能である。
【符号の説明】
【０１５５】
１０  データ検索装置
１１  予測部
１２  変更部
２０  データ検索システム
１００  クライアント装置
１１０  データ情報入出力部
１２０  データ検索情報入出力部
１３０  クエリ実行判断部
２００  クエリ実行制御装置
２１０  クエリ生成部
２２０  クエリ実行制御部
２３０  対象データ確認部
２４０  クエリ実行確認部
２５０  リソース使用量予測部
２６０  リソース使用結果記憶部
２７０  リソース使用量確認部
３００  Operating System
３１０  Database System
【図１】
2018106281.tif 000003
【図２】
2018106281.tif 000004
【図３】
2018106281.tif 000005
【図４】
2018106281.tif 000006
【図５】
2018106281.tif 000007
【図６】
2018106281.tif 000008
【図７】
2018106281.tif 000009
【図８】
2018106281.tif 000010
【図９】
2018106281.tif 000011
【図１０】
2018106281.tif 000012
【図１１】
2018106281.tif 000013
【図１２】
2018106281.tif 000014
【図１３】
2018106281.tif 000015
【図１４】
2018106281.tif 000016