"データベース装置であって、発行されたクエリのログを記録するクエリログ記録手段と、該クエリのログを解析してクエリ特徴を抽出するクエリ特徴抽出手段と、該クエリ特徴に基づいて性能の基準となるクエリセットを構成するクエリセット構成手段と、パラメータ設定パターンごとに該クエリセットに含まれる各クエリの推定実行時間をユーザに提示する提示手段と、を備えることを特徴とするデータベース装置。ユーザが許容する性能の許容値を指示する許容値設定手段を更に備え、前記提示手段は、前記性能の許容値に適合するパラメータ設定パターンをユーザに提示することを特徴とする請求項1記載のデータベース装置。ユーザが性能改善方向を指示する性能改善方向指示手段を更に備え、前記提示手段は前記性能改善方向に適合するパラメータ設定パターンを提示することを特徴とする請求項1記載のデータベース装置。データベース方法であって、発行されたクエリのログを記録するクエリログ記録工程と、該クエリのログを解析してクエリ特徴を抽出するクエリ特徴抽出工程と、該クエリ特徴に基づいて性能の基準となるクエリセットを構成するクエリセット構成工程と、パラメータ設定パターンごとに該クエリセットに含まれる各クエリの推定実行時間をユーザに提示する提示工程と、を備えることを特徴とするデータベース方法。コンピュータを、データベース装置であって、発行されたクエリのログを記録するクエリログ記録手段と、該クエリのログを解析してクエリ特徴を抽出するクエリ特徴抽出手段と、該クエリ特徴に基づいて性能の基準となるクエリセットを構成するクエリセット構成手段と、パラメータ設定パターンごとに該クエリセットに含まれる各クエリの推定実行時間をユーザに提示する提示手段と、して機能させるためのプログラム。特許文献1のようにユーザの使用状況によって自動調整する方法では、データベースの提供者が想定した範囲内の調整にとどまり、必ずしもユーザ意図通りとなるとは限らない。解析ツールはデータベースに精通していれば最も適切な調整方法であるが、データベースのシステムパラメータは難解であり、意図に沿った理想的な調整は、一般ユーザにとっては非常に困難となる。例えば、特定のカラムにインデックスを付与すればそのカラムに対する検索は速くなるが、その分登録が遅くなる。どのカラムまでインデクスを作るかを一般ユーザが調整する場合、少しでも検索する可能性のあるカラムに対しては、すべてインデクスを付加してしまい、その結果、レコードの登録が理想よりも遅くなっていても気がつかないのが普通である。インデクスを付けると検索が速くなるが登録が遅くなるという説明に対して、自分の使い方ではどのあたりが最適かを一般ユーザが把握するのは困難である。PC等の比較的パワーのある環境であれば必要ないインデクスを付けてもファイル操作の速度低下が多少で済み、影響が比較的小さいが、組込み機器ではマシンパワーが非力であるため不必要な性能劣化は致命的となる。組込み機器では、各ユーザの使い方に応じて意図通りにトレードオフし調整することが特に重要となる。よってデータベースに精通しない一般的なユーザでも適切な調整が可能となる仕組みが必要とされる。本発明に係るデータベース装置は、以下の構成を備える。即ち、データベース装置であって、発行されたクエリのログを記録するクエリログ記録手段と、該クエリのログを解析してクエリ特徴を抽出するクエリ特徴抽出手段と、該クエリ特徴に基づいて性能の基準となるクエリセットを構成するクエリセット構成手段と、パラメータ設定パターンごとに該クエリセットに含まれる各クエリの推定実行時間をユーザに提示する提示手段。ユーザがパラメータを調整した後の予測性能が提示されるので、データベースに精通しない一般ユーザでも、トレードオフの効果を把握でき、ユーザの仕様意図に合致した調整が可能となる。<実施形態1>以下、図面を参照しながら本発明に好適な実施形態を詳細に説明する。図1は、本実施形態の地理情報検索装置の構成を示すブロック図である。図示の構成において、CPU101はマイクロプロセッサであり、登録処理、検索処理、更新処理、許容値設定処理、パラメータ設定処理、画面制御処理等のための演算、論理判断等を行い、バスを介してバスに接続された各デバイスを制御する。BUS105はバスであり、マイクロプロセッサCPU101の制御対象である各デバイスを指示するアドレス信号、コントロール信号を転送する。また、各デバイス間のデータ転送を行う。入力部102はボタン、タッチパネル等であり、オペレータが各種の指示を行う。表示部103は液晶ディスプレイ等である。通信部104はネットワークコントローラである。有線あるいは無線の通信路を介して外部とのデータ交換を行う。ROM106は読出専用の不揮発性メモリである。マイクロプロセッサCPU101によるブートプログラム、システムの制御プログラム、各種処理で参照される各種初期データ等を記憶する。ブートプログラムはシステム起動時に初期データをRAM107にロードし、マイクロプロセッサCPU101に制御プログラムを実行させる。制御プログラムについては、後にフローチャートを参照して詳述する。RAM107は読み書き可能なランダムアクセスメモリであって、各デバイスからの各種データの一次記憶に用いる。処理に必要なデータを記憶する各種ワーク領域、処理中に値変更が行われる各種データが格納される。クエリ解析テーブル、クエリシナリオテーブル、パラメータ設定パターンテーブル等がここに格納される。DISK108は大規模記憶デバイスである。ハードディスク等で構成され、大量のデータを変更可能に記憶する。SDカード、CFカード等のフラッシュメディアで代用することも可能である。後述する処理で使用するデータベースDB、DBの内容を作業用にコピーして作成された作業用DB、クエリログテーブル、各パラメータの設定可能な値と現在の設定値を記憶するパラメータ設定テーブル等が格納され、必要に応じて随時内容が修正される。DBは内部的には行データとインデクスから構成される。尚、マイクロプロセッサCPU101により実行される制御プログラムをここに格納する構成も可能である。その場合は、必要に応じてRAM107に示す主記憶にロードし、実行することになる。そのようにすることで固定プログラムではなく、途中で修正可能な柔軟なシステムを構成することができる。かかる各デバイスからなる本地理情報検索装置は、入力部102等からの各種イベントに応じて作動するものである。入力部102等からのインタラプトが供給されるとインタラプト信号がマイクロプロセッサCPU101に送られる。それに伴ってイベントが発生し、イベントに応じてCPU101がROM106またはRAM107内に記憶されている各種命令を読み出し、CPU101の実行によって各種の制御が行われる。尚、実施形態1の地理情報検索装置のCPUはプログラムを実行することで各種の手段として機能する。なお、CPUと協調して動作するASICなどの制御回路がこれらの手段として機能してもよい。また、CPUと制御回路との協調によってこれらの手段が実現されてもよい。また、CPUは単一のものである必要はなく、複数であってもよい。この場合、複数のCPUは分散して処理を実行する。また、複数のCPUは単一のコンピュータに配置されていてもよいし、物理的に異なる複数のコンピュータに配置されていてもよい。なお、CPUがソフトウェアを実行することで実現する手段が専用の回路によって実現されてもよい。図2は、実施形態1によるパラメータ設定の画面例を示した図である。ここでパラメータというのは、データベースの各種システムパラメータ、あるいはデータベースの各カラムのインデクス付与の指定のことをいう。これらの指定はデータベースの性能を大きく左右する。設定されるべきパラメータの種類をパラメータ属性と呼び、設定される値を設定値と呼ぶ。図aは、従来から良く見かけるパラメータ設定画面を示したものである。パラメータ属性の設定値をユーザに設定させている。ここでは日付、名前、場所等のカラムに対してインデクスを付加するかどうか、WALWriteAheadLogging機構をONするかどうかをユーザに決定させている。カラムにインデクスを付加すれば、検索時の処理が高速になるが、登録時はインデクス付加の負荷がかかり、処理が遅くなる。WALというのはデータベースのオプショナルな機構であり、ONすれば永続化が保証されたリターンが速くなるが、リターン後のバックグラウンド処理の負荷が残るのが難点である。このような設定画面でも確かにパラメータが設定できるが、ユーザにはデータベースに関する深い理解が要求され、素人には敷居が高い。図2bも従来からよくある設定画面の別形態の例である。これは、ユーザに与えるご利益の観点から選択させるものである。もし、検索するを選択すれば、そのカラムに対してインデクスが付加され、登録を速くするを選択すれば、WAL機構がONになることを意味している。この方式は、図2aよりは素人にとって分かりやすい。しかし、現実には各設定項目は相互に因果関係があり、検索を速くすれば登録が遅くなり、登録を速くすれば検索が遅くなるトレードオフの関係にある。一項目ずつの設定では選択が困難である。専門家であれば各項目の選択がどのようにパラメータに影響を及ぼすかを推定して、各項目を選択することができるが、素人には困難である。図2cは、実施形態1が提案するパラメータ設定の画面例である。複数のパラメータ属性に対する設定値の組み合わせをパラメータ設定パターンと呼び、各パラメータ設定パターンに対してユーザがよく使用する機能の予測性能を機能ごとに提示している。ユーザは予測性能に基づいてパラメータ設定パターンを選択すればよい。図3は、実施形態1による許容値設定の画面例を示した図である。すべてのパラメータ設定パターンを提示しようとすれば、組み合わせ爆発が発生してしまい、選択操作が困難になる。無数のパラメータ設定パターンのリストをユーザが延々とブラウズすることになってしまう。組み合わせに対しては、何らかの制限が必要である。そこで、機能ごとにユーザが性能の許容値を指定し、許容値を超えないパラメータ設定パターンのみを提示することにする。図3aは、そのような許容値の設定画面の例である。ユーザのよく使う機能日付の検索名前の検索場所の検索更新登録の各々について、許容できる時間を設定する画面である。図3bは、そのような許容値が設定された後のパラメータ設定画面を示している。図2cと比較して、予測性能が許容値を満たさないパラメータ設定パターンはそもそもリストに表れていないことに注意する。図4は、実施形態1による許容値設定の別の操作例を示した図である。図4aはパラメータ設定の画面である。ここで、特定の予測性能値が条件に合わないことに気付いたとする。このとき、いちいち許容値設定画面に戻るのであれば、面倒であり、作業効率が落ちる。そこで、パラメータ設定で提示された予測性能の値の上で、性能許容値の改善方向を指示できるようにする。この場合、パターン2の登録機能の性能が条件を満たさないと判断し、ここで矢印マークを表示させ、下矢印を選択する。これによって、登録機能の性能許容値が12秒未満であれと指示したことになる。図4bでは、その意向に沿って登録性能の許容値が12秒未満に設定され、それに応じたパラメータ設定パターンのみがパラメータ設定画面に表示されている。図5は、実施形態1におけるデータベースの構造を示した図である。データベースはいわゆるリレーショナルデータベースを対象としている。図5aは、データベース内の行データの論理構造を示している。写真の管理を想定して写真データベースとなっている。各行が写真を意味し、各カラムに写真の属性が格納されている。カラム501は各行写真を特定するためのIDRowIDと呼ぶが格納される。カラム502は名前カラムであり、各写真の被写体が格納される。カラム503は場所カラムであり、各写真の撮影場所が格納される。カラム504は日付カラムであり、各写真の撮影日が格納される。カラム505は出来事カラムであり、各写真を撮影した状況イベントが格納される。図5bは、データベースの物理構造を示している。データベースが管理するデータは、行データとインデクスに大別されるが、そのどちらも固定長のページという単位に分割されて管理される。行データあるいはインデクスの先頭ページはヘッダからリンクされ、次のページへリンクしていく。各ページは複数のノードから構成され、各ノード間にもリンクが張られる。なお、ページ長は固定であるが、システムの初期導入時にはその値を任意に選ぶことができる。その値によって性能が左右されるので、自分の動作条件に適合した値を定めることが重要である。図6は、実施形態1におけるデータベース内のノード間のリンク構造を示した図である。基本的にはいわゆるB-Treeの構造である。図6aは行データの格納構造を示している。行データは、行を一意に特定可能な内部IDRowIDをキーとして、B-Treeの形式で格納される。データベースの格納単位はノード601であり、複数のノードから構成される。各ノードはキー602と枝603からなり、最も上位のノードルートノードから、キーの大小関係を判断して枝をたどることによって目的ノードまでたどることができる。最下層のノードリーフノードには複数の行データ604がRowIDの順に格納される。カラム605に行を特定するためのRowID、その他のカラムにその他の情報を記憶する。インデクスはキーに従って行データを検索したい場合に、検索を高速化するために用意されるものである。高速検索が必要なに対してインデクスを付与することになる。図6bはインデクスの格納構造の一例であり、被写体名前のインデクスの例である。名前をキーとしたB-Treeの構造となっている。ノードの格納構造は、行データの場合の格納構造と基本的に同一となるが、最下端のリーフノードには行データの代わりにキーである名前カラム606とRowIDカラム607のペアが格納される点が異なっている。各ペアは名前の値が同じ場合、RowIDの順に格納される。このようなインデクスは、行データのすべてのカラムについて作成されるわけではなく、作成されるカラムと作成されないカラムがある。一般にインデクスを付与するとそのカラムについてselet等の検索が速くなるが、反面、インデクス更新の負荷がinsert等の登録処理にかかり、遅くなる傾向がある。システムを構築する際には目的システムの特性を考えて、インデクスの有無が慎重に検討されることになる。図7aは、実施形態1におけるクエリログテーブルの構成を示した図である。アプリケーション実行中にDBに対して発行されたSQLStructuredQueryLanguageコマンドの履歴をクエリログとして保存したテーブルである。クエリが発行された順番に記録される。カラム701にはクエリのSQL文を記憶する。カラム702には、SQL文のコマンド部を取り出して記憶する。カラム703には各SQL文で最も処理時間に影響する主要な処理対象となるキー主要キーと呼ぶの情報を記憶する。このようなクエリログを解析して、このシステムにおけるクエリの特徴クエリ特徴と呼ぶを抽出して、図9bに示すクエリ解析テーブルに記憶する。クエリログテーブルに記憶されるクエリ群を、コマンドと主要キーの観点でカテゴリに分類し、クエリ解析テーブルに記憶する。カラム704に、そのカテゴリのコマンド、カラム705にはそのカテゴリの主要キーを記憶する。カラム706には、各カテゴリに分類されたクエリログテーブル内のクエリのうち、最も頻繁に使用されたクエリを抽出し、代表クエリとして記憶する。カラム707にはそのカテゴリがクエリログテーブル内で使用された度数を記憶する。図8は、実施形態1におけるクエリシナリオテーブルの構成を示した図である。システム稼働時の予測性能予測される性能を計るために、基準となるクエリがカテゴリごとに選定されクエリセットと呼ぶ、許容される実行時間と共に格納される。カテゴリは、クエリのコマンドと主要キーで分類される。カラム801に基準クエリのコマンドを、カラム802に基準クエリの主要キーを記憶する。カラム803に、そのカテゴリのクエリの実行時間として許容される許容値を記憶する。なお、許容値は許容値設定画面等においてユーザが指定する値である。カラム804に、そのカテゴリの基準クエリへのポインタを記憶する。カラム805で示す領域に、基準クエリのクエリ列が格納される。ここでは、図7bのクエリ解析テーブルにある代表クエリと同じものを記述している。実際にクエリとして実行可能にするためには、更に、BEGIN,END等のトランザクションを構成するSQL文等が必要である。その他の追加されたSQL文もこの領域に格納されることになる。図9aは、実施形態1におけるパラメータ設定テーブルの構成を示した図である。パラメータ設定テーブルには、設定可能なパラメータ属性について、現在の設定値、取りうる値オプションを格納する。テーブル901は、現在の設定値を記憶するテーブルである。写真データベースの各カラムに対応して、カラム903から905は、それぞれ日付カラム、名前カラム、場所カラムにインデクスを付与するかどうかを規定する。カラム906はWAL機能をONするかどうかを規定する。カラム907はページ長のパラメータ属性であり、図5bで示すデータベース内の固定長のページのページ長を規定する。テーブル902は、パラメータ属性のオプション値を格納するテーブルである。各パラメータ属性に対して、取りうる値を網羅的に記憶している。図9bは、実施形態1におけるパラメータ設定パターンテーブルの構成を示した図である。各行が1つのパラメータ設定パターンに相当する。カラム908、909、9010、9011、9012は、それぞれ、パラメータ属性の日付インデクス、名前インデクス、場所インデクス、WAL機能、ページ長に対応する。パラメータ設定パターンテーブルに記憶される各行はあらゆる設定値の組み合わせが記憶されるわけではなく、動的に組み合わせが生成され、各組み合わせのうち、予測性能がユーザの設定した許容値を満たす組み合わせのみが作成される。カラム9013は、各行のパラメータ設定パターンに対して、クエリシナリオテーブルのクエリに対応する予測性能を格納する。上述の動作をフローチャートに従って説明する。図10は本実施形態のデータベース装置の動作、より具体的にはマイクロプロセッサCPU101の処理手順を示すフローチャートである。ステップS1001はシステムの初期化処理であり、各種パラメータの初期化や初期画面の表示等を行う処理である。ステップS1002はタッチパネル等の入力部102から何らかのイベントが発生するのをマイクロプロセッサCPU101において待つ処理である。イベントが発生すると、ステップS1003においてマイクロプロセッサCPU101がこのイベントを判別し、イベントの種類に応じて各種の処理に分岐する。各種イベントに対応した分岐先の複数の処理をステップS1004という形でまとめて表現している。図11で詳述する登録処理、検索処理、更新処理、図12で詳述する許容値設定処理、図13で詳述するパラメータ設定処理は、この分岐先の一部となる。他の処理としては、詳細は記述されないが、画面制御処理などの処理がある。ステップS1005は上記の各処理の処理結果や処理終了を通知し、画面を各処理の指示に従って表示する処理である。検索結果出力の画面表示、エラーがあった場合のエラー表示、正常な処理が行われた場合の画面表示への反映など通常広く行われる処理である。図11はステップS1004の一部である登録処理、検索処理、更新処理を詳細化したフローチャートである。この3つの処理はDBを使う処理としては同様のフローチャートとなるので、まとめて説明している。ステップS1101において、処理を行う前提となる画面表示処理を行う。ステップS1102において、画面内におけるユーザ操作を制御する処理を行う。ステップS1103において、ユーザ指示がDBの登録、検索、更新を行う処理を確定させる操作であるかどうかを判定する。処理確定でない場合はステップS1104に分岐し、ステップS1104において画面表示の変更等を行い、ステップS1101にループする。ステップS1103において処理確定であった場合は、ステップS1105に進み、ステップS1105において、DBコマンドを発行し、DB内の行データの検索、変更等を行う。ステップS1106において、クエリログ記録を行う。すなわち、発行されたクエリをクエリログテーブルに履歴として記録する。その後、リターンする。図12はステップS1004の一部である許容値設定処理を詳細化したフローチャートである。ステップS1201において、許容値設定画面を表示する処理を行う。ステップS1202において、許容値設定画面内におけるユーザ操作を制御する処理を行う。ステップS1203において、ユーザ操作が許容値設定の確定指示かどうかを判定する。許容値確定でない場合はステップS1204に分岐し、ステップS1204において画面表示の変更等を行い、ステップS1201にループする。ステップS1203において許容値確定であった場合は、ステップS1205に進み、ステップS1205において、ユーザが確定した許容値をクエリシナリオテーブルに設定し、リターンする。図13はステップS1004の一部であるパラメータ設定処理を詳細化したフローチャートである。ステップS1301において、作業用のDBを正式なDBからコピーする。このパラメータ設定操作において、各種クエリを実行し、DBの中身が変わってしまうので、それに備えるためである。ステップS1302において、図14に詳述するように、クエリシナリオを作成する。ステップS1303において、図15に詳述するように、パラメータ設定パターン作成処理を行って、パラメータ設定パターンテーブルを作成する。ステップS1304において、パラメータ設定パターンテーブルに基づいてパラメータ設定画面の画面表示を行う。ここでパラメータ設定画面中にパラメータ設定パターンに対応して予測性能提示が行われることになる。ステップS1305において、パラメータ設定画面のユーザ操作を制御する処理を行う。ステップS1306において、パラメータ設定画面内での予測性能上の性能改善方向の指示であるかどうか判定し、性能改善方向指示であれば、ステップS1307に分岐する。ステップS1307において、指示された方向に性能の許容値の変更処理を行う。具体的には表示されていた予測性能値に微小量だけプラスまたはマイナスした値を新しい許容値とする。新しい許容値をクエリシナリオテーブルに設定し、ステップS1303にループする。ステップS1306において、性能改善方向指示でなかった場合は、ステップS1308に進む。ステップS1308において、設定値を確定する操作であるか判定する。設定値確定でない場合は、ステップS1309に分岐し、画面変更等の処理を行い、ステップS1304にループする。ステップS1308において、設定値確定であったときは、ステップS13010に進み、確定した設定値をパラメータ設定テーブルに反映する。ステップS13011において、設定した設定値に応じてシステム設定を行う。例えば、カラムにインデクス付加を行った場合は、ここでインデクス作成処理を行う。ページ長の変更があれば、データベース内のページ長を制御する変数を変更して、データベース内のページ長を変更する。その他のシステム変更の処理を行う。その後、リターンする。図14はステップS1302のクエリシナリオ作成処理を詳細化したフローチャートである。ステップS1401において、図7において説明したようにクエリログテーブルを解析する。ステップS1402において、解析結果をもとにクエリ特徴抽出を行う。抽出する特徴としては、コマンド種類ごとのクエリの使用度数、主要キーなどである。ステップS1403において、抽出した特徴をもとにクエリ解析テーブルを作成する。ステップS1404において、クエリセット構成する。すなわち、クエリ解析テーブルからカテゴリごとに代表クエリのSQL文を取得し、更に必要なSQL文を付加してクエリセットを構成する。ステップS1405において、クエリセット構成をもとにクエリシナリオテーブルを作成する。図15はステップS1303のパラメータ設定パターン作成処理を詳細化したフローチャートである。ステップS1501において、設定値の組み合わせの1つパラメータ設定パターンを作成する。ステップS1502において、すべての組み合わせを作成し尽くしたかを判定し、組み合わせが終了していれば、手続きを終了してリターンする。組み合わせが終了していなければ、ステップS1503に進み、予測性能推定を行うために、そのパラメータ設定パターンに対してクエリシナリオテーブルの基準クエリを実行し、実行時間を実測する。ステップS1504において、必要があれば、実測時間を補正する。補正が必要な場合としては、諸般の事情で実動作の使用可能なワークサイズが異なる場合や、あるいは、管理するデータ件数が異なる場合などがある。ステップS1505において、このように得られた予測性能がクエリシナリオテーブルに記載される許容値に適合しているかどうかを判定する。NGの場合は、このパラメータ設定パターンを捨て、ステップS1501からやり直す。ステップS1505において、OKであった場合はステップS1506に進み、得られたパラメータ設定パターンと予測性能をパラメータ設定パターンテーブルに追加し、ステップS1501にループする。このように実施形態1の構成によれば、ユーザがパラメータ属性の値を調整した後の各クエリに対する実測に基づいた予測性能がまとめて提示される。これによって、データベースに精通しない一般ユーザでも必要なトレードオフが理解でき、ユーザの仕様意図に合致した調整が容易となる。また、単なる実測値ではなく、メモリサイズ変更等の事情の変化に応じた補正値を予測性能として表示できるので、よりユーザの実感に合った調整が可能である。また、ユーザが各クエリに対して、許容値を指定することができるので、もともと許容値を満たさないパラメータ設定パターンを選択肢から除外できるので、ユーザの操作性を向上させたパラメータ設定機能を提供できる。また、パラメータ設定パターンの一覧が表示されたパラメータ設定画面において、測定値上で性能値改善の方向性を指示することで、性能の許容値を具体的値の入力の手間なく容易に変更できるので、より操作性の高いパラメータ設定機能を提供できる。以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェアプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータまたはCPUやMPU等がプログラムを読み出して実行する処理である。"