(57)【要約】【課題】  データベースにおいて、トレードオフを含む各種パラメータ設定を、データベースの初心者でも意図通りに設定できるように簡便化する。【解決手段】  データベースの過去の使用履歴から基準となるクエリを生成し、実測に基づいて各クエリの予測性能を推定し、パラメータ設定パターンごとに予測性能をユーザに提示し、ユーザの意図に合致したパラメータ設定パターンを選択させる。【選択図】  図２
2013097725.tif 000002
【特許請求の範囲】
【請求項１】
データベース装置であって、
発行されたクエリのログを記録するクエリログ記録手段と、
該クエリのログを解析してクエリ特徴を抽出するクエリ特徴抽出手段と、
該クエリ特徴に基づいて性能の基準となるクエリセットを構成するクエリセット構成手段と、
パラメータ設定パターンごとに該クエリセットに含まれる各クエリの推定実行時間をユーザに提示する提示手段と、
を備えることを特徴とするデータベース装置。
【請求項２】
ユーザが許容する性能の許容値を指示する許容値設定手段を更に備え、
前記提示手段は、前記性能の許容値に適合するパラメータ設定パターンをユーザに提示することを特徴とする請求項１記載のデータベース装置。
【請求項３】
ユーザが性能改善方向を指示する性能改善方向指示手段を更に備え、
前記提示手段は前記性能改善方向に適合するパラメータ設定パターンを提示することを特徴とする請求項１記載のデータベース装置。
【請求項４】
データベース方法であって、
発行されたクエリのログを記録するクエリログ記録工程と、
該クエリのログを解析してクエリ特徴を抽出するクエリ特徴抽出工程と、
該クエリ特徴に基づいて性能の基準となるクエリセットを構成するクエリセット構成工程と、
パラメータ設定パターンごとに該クエリセットに含まれる各クエリの推定実行時間をユーザに提示する提示工程と、
を備えることを特徴とするデータベース方法。
【請求項５】
コンピュータを、
データベース装置であって、
発行されたクエリのログを記録するクエリログ記録手段と、
該クエリのログを解析してクエリ特徴を抽出するクエリ特徴抽出手段と、
該クエリ特徴に基づいて性能の基準となるクエリセットを構成するクエリセット構成手段と、
パラメータ設定パターンごとに該クエリセットに含まれる各クエリの推定実行時間をユーザに提示する提示手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込み型データベースの各種システムパラメータのユーザ設定方法に関する。
【背景技術】
【０００２】
近年、小型機器においても搭載可能な記憶装置の容量が飛躍的に増大したことに伴い単純なファイルシステムとは別にデータベースにより大量データのハンドリングを行うケースがでてきた。
データベースにおいては、データの登録と検索の処理時間がトレードオフの関係にあるが、初期状態ではユーザが通常行うであろう利用形態を想定し調整がなされている。初期状態がユーザのニーズに合致していない場合、より快適にユーザがデータベースを使用できるようにカスタマイズ（調整）が必要である。
大規模データベースにおいては専用解析ツールが存在し、その解析ツールを用いてデータベースに精通したユーザが使用しその使用要件に則した調整が可能となっている。
また〔特許文献１〕に示されるように各構成要素の稼動状態や業務の応答時間等をモニタし、要求性能やモニタ情報からチューニングが必要と判断した場合に、処理量、キャッシュ量の割り当てや論理構成等の変更指示を出すといった提案がなされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３０２７５１
【発明の概要】
【発明が解決しようとする課題】
【０００４】
〔特許文献１〕のようにユーザの使用状況によって自動調整する方法では、データベースの提供者が想定した範囲内の調整にとどまり、必ずしもユーザ意図通りとなるとは限らない。
【０００５】
解析ツールはデータベースに精通していれば最も適切な調整方法であるが、データベースのシステムパラメータは難解であり、意図に沿った理想的な調整は、一般ユーザにとっては非常に困難となる。
【０００６】
例えば、特定のカラムにインデックスを付与すればそのカラムに対する検索は速くなるが、その分登録が遅くなる。どのカラムまでインデクスを作るかを一般ユーザが調整する場合、少しでも検索する可能性のあるカラムに対しては、すべてインデクスを付加してしまい、その結果、レコードの登録が理想よりも遅くなっていても気がつかないのが普通である。インデクスを付けると検索が速くなるが登録が遅くなるという説明に対して、自分の使い方ではどのあたりが最適かを一般ユーザが把握するのは困難である。
【０００７】
ＰＣ等の比較的パワーのある環境であれば必要ないインデクスを付けてもファイル操作の速度低下が多少で済み、影響が比較的小さいが、組込み機器ではマシンパワーが非力であるため不必要な性能劣化は致命的となる。組込み機器では、各ユーザの使い方に応じて意図通りにトレードオフし調整することが特に重要となる。
よってデータベースに精通しない一般的なユーザでも適切な調整が可能となる仕組みが必要とされる。
【課題を解決するための手段】
【０００８】
本発明に係るデータベース装置は、以下の構成を備える。
即ち、データベース装置であって、
発行されたクエリのログを記録するクエリログ記録手段と、
該クエリのログを解析してクエリ特徴を抽出するクエリ特徴抽出手段と、
該クエリ特徴に基づいて性能の基準となるクエリセットを構成するクエリセット構成手段と、
パラメータ設定パターンごとに該クエリセットに含まれる各クエリの推定実行時間をユーザに提示する提示手段。
【発明の効果】
【０００９】
ユーザがパラメータを調整した後の予測性能が提示されるので、データベースに精通しない一般ユーザでも、トレードオフの効果を把握でき、ユーザの仕様意図に合致した調整が可能となる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態のデータベース装置の全体構成を示すブロック図である。
【図２】本実施形態のデータベース装置におけるパラメータ設定画面の例を示した図である。
【図３】本実施形態のデータベース装置における許容値設定画面の例を示した図である。
【図４】本実施形態のデータベース装置における許容値設定の別の操作例を示した図である。
【図５】本実施形態のデータベース装置におけるデータベースの構成を示した図である。
【図６】本実施形態のデータベース装置におけるデータベース内のノード間の構造を示した図である。
【図７】本実施形態のデータベース装置におけるクエリログテーブルとクエリ解析テーブルの構成を示した図である。
【図８】本実施形態のデータベース装置におけるクエリシナリオテーブルの構成を示した図である。
【図９】本実施形態のデータベース装置におけるパラメータ設定テーブルとパラメータ設定パターンテーブルの構成を示した図である。
【図１０】本実施形態のデータベース装置全体の処理手順の一例を示すフローチャートである
【図１１】登録処理、検索処理、更新処理の処理手順の一例を示すフローチャートである。
【図１２】許容値設定処理の処理手順の一例を示すフローチャートである。
【図１３】パラメータ設定処理の処理手順の一例を示すフローチャートである。
【図１４】クエリシナリオ作成処理の処理手順の一例を示すフローチャートである。
【図１５】パラメータ設定パターン作成処理の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
＜実施形態１＞
以下、図面を参照しながら本発明に好適な実施形態を詳細に説明する。
【００１２】
図１は、本実施形態の地理情報検索装置の構成を示すブロック図である。
【００１３】
図示の構成において、ＣＰＵ１０１はマイクロプロセッサであり、登録処理、検索処理、更新処理、許容値設定処理、パラメータ設定処理、画面制御処理等のための演算、論理判断等を行い、バスを介してバスに接続された各デバイスを制御する。
【００１４】
ＢＵＳ１０５はバスであり、マイクロプロセッサＣＰＵ１０１の制御対象である各デバイスを指示するアドレス信号、コントロール信号を転送する。また、各デバイス間のデータ転送を行う。
【００１５】
入力部１０２はボタン、タッチパネル等であり、オペレータが各種の指示を行う。
【００１６】
表示部１０３は液晶ディスプレイ等である。
【００１７】
通信部１０４はネットワークコントローラである。有線あるいは無線の通信路を介して外部とのデータ交換を行う。
【００１８】
ＲＯＭ１０６は読出専用の不揮発性メモリである。マイクロプロセッサＣＰＵ１０１によるブートプログラム、システムの制御プログラム、各種処理で参照される各種初期データ等を記憶する。ブートプログラムはシステム起動時に初期データをＲＡＭ１０７にロードし、マイクロプロセッサＣＰＵ１０１に制御プログラムを実行させる。制御プログラムについては、後にフローチャートを参照して詳述する。
【００１９】
ＲＡＭ１０７は読み書き可能なランダムアクセスメモリであって、各デバイスからの各種データの一次記憶に用いる。処理に必要なデータを記憶する各種ワーク領域、処理中に値変更が行われる各種データが格納される。クエリ解析テーブル、クエリシナリオテーブル、パラメータ設定パターンテーブル等がここに格納される。
【００２０】
ＤＩＳＫ１０８は大規模記憶デバイスである。ハードディスク等で構成され、大量のデータを変更可能に記憶する。ＳＤカード、ＣＦカード等のフラッシュメディアで代用することも可能である。後述する処理で使用するデータベース（ＤＢ）、ＤＢの内容を作業用にコピーして作成された作業用ＤＢ、クエリログテーブル、各パラメータの設定可能な値と現在の設定値を記憶するパラメータ設定テーブル等が格納され、必要に応じて随時内容が修正される。ＤＢは内部的には行データとインデクスから構成される。尚、マイクロプロセッサＣＰＵ１０１により実行される制御プログラムをここに格納する構成も可能である。その場合は、必要に応じてＲＡＭ１０７に示す主記憶にロードし、実行することになる。そのようにすることで固定プログラムではなく、途中で修正可能な柔軟なシステムを構成することができる。
【００２１】
かかる各デバイスからなる本地理情報検索装置は、入力部１０２等からの各種イベントに応じて作動するものである。入力部１０２等からのインタラプトが供給されるとインタラプト信号がマイクロプロセッサＣＰＵ１０１に送られる。それに伴ってイベントが発生し、イベントに応じてＣＰＵ１０１がＲＯＭ１０６またはＲＡＭ１０７内に記憶されている各種命令を読み出し、ＣＰＵ１０１の実行によって各種の制御が行われる。
【００２２】
尚、実施形態１の地理情報検索装置のＣＰＵはプログラムを実行することで各種の手段として機能する。なお、ＣＰＵと協調して動作するＡＳＩＣなどの制御回路がこれらの手段として機能してもよい。また、ＣＰＵと制御回路との協調によってこれらの手段が実現されてもよい。また、ＣＰＵは単一のものである必要はなく、複数であってもよい。この場合、複数のＣＰＵは分散して処理を実行する。また、複数のＣＰＵは単一のコンピュータに配置されていてもよいし、物理的に異なる複数のコンピュータに配置されていてもよい。なお、ＣＰＵがソフトウェアを実行することで実現する手段が専用の回路によって実現されてもよい。
【００２３】
図２は、実施形態１によるパラメータ設定の画面例を示した図である。ここでパラメータというのは、データベースの各種システムパラメータ、あるいはデータベースの各カラムのインデクス付与の指定のことをいう。これらの指定はデータベースの性能を大きく左右する。設定されるべきパラメータの種類をパラメータ属性と呼び、設定される値を設定値と呼ぶ。図（ａ）は、従来から良く見かけるパラメータ設定画面を示したものである。パラメータ属性の設定値をユーザに設定させている。ここでは日付、名前、場所等のカラムに対してインデクスを付加するかどうか、ＷＡＬ（Ｗｒｉｔｅ  Ａｈｅａｄ  Ｌｏｇｇｉｎｇ）機構をＯＮするかどうかをユーザに決定させている。カラムにインデクスを付加すれば、検索時の処理が高速になるが、登録時はインデクス付加の負荷がかかり、処理が遅くなる。ＷＡＬというのはデータベースのオプショナルな機構であり、ＯＮすれば永続化が保証されたリターンが速くなるが、リターン後のバックグラウンド処理の負荷が残るのが難点である。このような設定画面でも確かにパラメータが設定できるが、ユーザにはデータベースに関する深い理解が要求され、素人には敷居が高い。図２（ｂ）も従来からよくある設定画面の別形態の例である。これは、ユーザに与えるご利益の観点から選択させるものである。もし、「検索する」を選択すれば、そのカラムに対してインデクスが付加され、「登録を速くする」を選択すれば、ＷＡＬ機構がＯＮになることを意味している。この方式は、図２（ａ）よりは素人にとって分かりやすい。しかし、現実には各設定項目は相互に因果関係があり、検索を速くすれば登録が遅くなり、登録を速くすれば検索が遅くなるトレードオフの関係にある。一項目ずつの設定では選択が困難である。専門家であれば各項目の選択がどのようにパラメータに影響を及ぼすかを推定して、各項目を選択することができるが、素人には困難である。図２（ｃ）は、実施形態１が提案するパラメータ設定の画面例である。複数のパラメータ属性に対する設定値の組み合わせを「パラメータ設定パターン」と呼び、各パラメータ設定パターンに対してユーザがよく使用する機能の予測性能を機能ごとに提示している。ユーザは予測性能に基づいてパラメータ設定パターンを選択すればよい。
【００２４】
図３は、実施形態１による許容値設定の画面例を示した図である。すべてのパラメータ設定パターンを提示しようとすれば、組み合わせ爆発が発生してしまい、選択操作が困難になる。無数のパラメータ設定パターンのリストをユーザが延々とブラウズすることになってしまう。組み合わせに対しては、何らかの制限が必要である。そこで、機能ごとにユーザが性能の許容値を指定し、許容値を超えないパラメータ設定パターンのみを提示することにする。図３（ａ）は、そのような許容値の設定画面の例である。ユーザのよく使う機能「日付の検索」「名前の検索」「場所の検索」「更新」「登録」の各々について、許容できる時間を設定する画面である。図３（ｂ）は、そのような許容値が設定された後のパラメータ設定画面を示している。図２（ｃ）と比較して、予測性能が許容値を満たさないパラメータ設定パターンはそもそもリストに表れていないことに注意する。
【００２５】
図４は、実施形態１による許容値設定の別の操作例を示した図である。図４（ａ）はパラメータ設定の画面である。ここで、特定の予測性能値が条件に合わないことに気付いたとする。このとき、いちいち許容値設定画面に戻るのであれば、面倒であり、作業効率が落ちる。そこで、パラメータ設定で提示された予測性能の値の上で、性能許容値の改善方向を指示できるようにする。この場合、パターン２の登録機能の性能が条件を満たさないと判断し、ここで矢印マークを表示させ、下矢印を選択する。これによって、登録機能の性能許容値が１２秒未満であれと指示したことになる。図４（ｂ）では、その意向に沿って登録性能の許容値が１２秒未満に設定され、それに応じたパラメータ設定パターンのみがパラメータ設定画面に表示されている。
【００２６】
図５は、実施形態１におけるデータベースの構造を示した図である。データベースはいわゆるリレーショナルデータベースを対象としている。図５（ａ）は、データベース内の行データの論理構造を示している。写真の管理を想定して写真データベースとなっている。各行が写真を意味し、各カラムに写真の属性が格納されている。カラム５０１は各行（写真）を特定するためのＩＤ（ＲｏｗＩＤと呼ぶ）が格納される。カラム５０２は名前カラムであり、各写真の被写体が格納される。カラム５０３は場所カラムであり、各写真の撮影場所が格納される。カラム５０４は日付カラムであり、各写真の撮影日が格納される。カラム５０５は出来事カラムであり、各写真を撮影した状況（イベント）が格納される。図５（ｂ）は、データベースの物理構造を示している。データベースが管理するデータは、行データとインデクスに大別されるが、そのどちらも固定長のページという単位に分割されて管理される。行データあるいはインデクスの先頭ページはヘッダからリンクされ、次のページへリンクしていく。各ページは複数のノードから構成され、各ノード間にもリンクが張られる。なお、ページ長は固定であるが、システムの初期導入時にはその値を任意に選ぶことができる。その値によって性能が左右されるので、自分の動作条件に適合した値を定めることが重要である。
【００２７】
図６は、実施形態１におけるデータベース内のノード間のリンク構造を示した図である。基本的にはいわゆるＢ−Ｔｒｅｅの構造である。図６（ａ）は行データの格納構造を示している。行データは、行を一意に特定可能な内部ＩＤ（ＲｏｗＩＤ）をキーとして、Ｂ−Ｔｒｅｅの形式で格納される。データベースの格納単位はノード６０１であり、複数のノードから構成される。各ノードはキー６０２と枝６０３からなり、最も上位のノード（ルートノード）から、キーの大小関係を判断して枝をたどることによって目的ノードまでたどることができる。最下層のノード（リーフノード）には複数の行データ６０４がＲｏｗＩＤの順に格納される。カラム６０５に行を特定するためのＲｏｗＩＤ、その他のカラムにその他の情報を記憶する。
【００２８】
インデクスはキーに従って行データを検索したい場合に、検索を高速化するために用意されるものである。高速検索が必要なに対してインデクスを付与することになる。図６（ｂ）はインデクスの格納構造の一例であり、被写体（名前）のインデクスの例である。名前をキーとしたＢ−Ｔｒｅｅの構造となっている。ノードの格納構造は、行データの場合の格納構造と基本的に同一となるが、最下端のリーフノードには行データの代わりにキーである名前カラム６０６とＲｏｗＩＤカラム６０７のペアが格納される点が異なっている。各ペアは名前の値が同じ場合、ＲｏｗＩＤの順に格納される。このようなインデクスは、行データのすべてのカラムについて作成されるわけではなく、作成されるカラムと作成されないカラムがある。一般にインデクスを付与するとそのカラムについてｓｅｌｅｔ等の検索が速くなるが、反面、インデクス更新の負荷がｉｎｓｅｒｔ等の登録処理にかかり、遅くなる傾向がある。システムを構築する際には目的システムの特性を考えて、インデクスの有無が慎重に検討されることになる。
【００２９】
図７（ａ）は、実施形態１におけるクエリログテーブルの構成を示した図である。アプリケーション実行中にＤＢに対して発行されたＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）コマンドの履歴をクエリログとして保存したテーブルである。クエリが発行された順番に記録される。カラム７０１にはクエリのＳＱＬ文を記憶する。カラム７０２には、ＳＱＬ文のコマンド部を取り出して記憶する。カラム７０３には各ＳＱＬ文で最も処理時間に影響する主要な処理対象となるキー（主要キーと呼ぶ）の情報を記憶する。このようなクエリログを解析して、このシステムにおけるクエリの特徴（クエリ特徴と呼ぶ）を抽出して、図９（ｂ）に示すクエリ解析テーブルに記憶する。クエリログテーブルに記憶されるクエリ群を、コマンドと主要キーの観点でカテゴリに分類し、クエリ解析テーブルに記憶する。カラム７０４に、そのカテゴリのコマンド、カラム７０５にはそのカテゴリの主要キーを記憶する。カラム７０６には、各カテゴリに分類されたクエリログテーブル内のクエリのうち、最も頻繁に使用されたクエリを抽出し、代表クエリとして記憶する。カラム７０７にはそのカテゴリがクエリログテーブル内で使用された度数を記憶する。
【００３０】
図８は、実施形態１におけるクエリシナリオテーブルの構成を示した図である。システム稼働時の予測性能（予測される性能）を計るために、基準となるクエリがカテゴリごとに選定され（クエリセットと呼ぶ）、許容される実行時間と共に格納される。カテゴリは、クエリのコマンドと主要キーで分類される。カラム８０１に基準クエリのコマンドを、カラム８０２に基準クエリの主要キーを記憶する。カラム８０３に、そのカテゴリのクエリの実行時間として許容される許容値を記憶する。なお、許容値は許容値設定画面等においてユーザが指定する値である。カラム８０４に、そのカテゴリの基準クエリへのポインタを記憶する。カラム８０５で示す領域に、基準クエリのクエリ列が格納される。ここでは、図７（ｂ）のクエリ解析テーブルにある代表クエリと同じものを記述している。実際にクエリとして実行可能にするためには、更に、ＢＥＧＩＮ，ＥＮＤ等のトランザクションを構成するＳＱＬ文等が必要である。その他の追加されたＳＱＬ文もこの領域に格納されることになる。
【００３１】
図９（ａ）は、実施形態１におけるパラメータ設定テーブルの構成を示した図である。パラメータ設定テーブルには、設定可能なパラメータ属性について、現在の設定値、取りうる値（オプション）を格納する。テーブル９０１は、現在の設定値を記憶するテーブルである。写真データベースの各カラムに対応して、カラム９０３から９０５は、それぞれ日付カラム、名前カラム、場所カラムにインデクスを付与するかどうかを規定する。カラム９０６はＷＡＬ機能をＯＮするかどうかを規定する。カラム９０７はページ長のパラメータ属性であり、図５（ｂ）で示すデータベース内の固定長のページのページ長を規定する。テーブル９０２は、パラメータ属性のオプション値を格納するテーブルである。各パラメータ属性に対して、取りうる値を網羅的に記憶している。  図９（ｂ）は、実施形態１におけるパラメータ設定パターンテーブルの構成を示した図である。各行が１つのパラメータ設定パターンに相当する。カラム９０８、９０９、９０１０、９０１１、９０１２は、それぞれ、パラメータ属性の日付インデクス、名前インデクス、場所インデクス、ＷＡＬ機能、ページ長に対応する。パラメータ設定パターンテーブルに記憶される各行はあらゆる設定値の組み合わせが記憶されるわけではなく、動的に組み合わせが生成され、各組み合わせのうち、予測性能がユーザの設定した許容値を満たす組み合わせのみが作成される。カラム９０１３は、各行のパラメータ設定パターンに対して、クエリシナリオテーブルのクエリに対応する予測性能を格納する。
【００３２】
上述の動作をフローチャートに従って説明する。
図１０は本実施形態のデータベース装置の動作、より具体的にはマイクロプロセッサＣＰＵ１０１の処理手順を示すフローチャートである。ステップＳ１００１はシステムの初期化処理であり、各種パラメータの初期化や初期画面の表示等を行う処理である。ステップＳ１００２はタッチパネル等の入力部１０２から何らかのイベントが発生するのをマイクロプロセッサＣＰＵ１０１において待つ処理である。イベントが発生すると、ステップＳ１００３においてマイクロプロセッサＣＰＵ１０１がこのイベントを判別し、イベントの種類に応じて各種の処理に分岐する。各種イベントに対応した分岐先の複数の処理をステップＳ１００４という形でまとめて表現している。図１１で詳述する登録処理、検索処理、更新処理、図１２で詳述する許容値設定処理、図１３で詳述するパラメータ設定処理は、この分岐先の一部となる。
【００３３】
他の処理としては、詳細は記述されないが、画面制御処理などの処理がある。ステップＳ１００５は上記の各処理の処理結果や処理終了を通知し、画面を各処理の指示に従って表示する処理である。検索結果出力の画面表示、エラーがあった場合のエラー表示、正常な処理が行われた場合の画面表示への反映など通常広く行われる処理である。
【００３４】
図１１はステップＳ１００４の一部である登録処理、検索処理、更新処理を詳細化したフローチャートである。この３つの処理はＤＢを使う処理としては同様のフローチャートとなるので、まとめて説明している。ステップＳ１１０１において、処理を行う前提となる画面表示処理を行う。ステップＳ１１０２において、画面内におけるユーザ操作を制御する処理を行う。ステップＳ１１０３において、ユーザ指示がＤＢの登録、検索、更新を行う処理を確定させる操作であるかどうかを判定する。処理確定でない場合はステップＳ１１０４に分岐し、ステップＳ１１０４において画面表示の変更等を行い、ステップＳ１１０１にループする。ステップＳ１１０３において処理確定であった場合は、ステップＳ１１０５に進み、ステップＳ１１０５において、ＤＢコマンドを発行し、ＤＢ内の行データの検索、変更等を行う。ステップＳ１１０６において、クエリログ記録を行う。すなわち、発行されたクエリをクエリログテーブルに履歴として記録する。その後、リターンする。
【００３５】
図１２はステップＳ１００４の一部である許容値設定処理を詳細化したフローチャートである。ステップＳ１２０１において、許容値設定画面を表示する処理を行う。ステップＳ１２０２において、許容値設定画面内におけるユーザ操作を制御する処理を行う。ステップＳ１２０３において、ユーザ操作が許容値設定の確定指示かどうかを判定する。許容値確定でない場合はステップＳ１２０４に分岐し、ステップＳ１２０４において画面表示の変更等を行い、ステップＳ１２０１にループする。ステップＳ１２０３において許容値確定であった場合は、ステップＳ１２０５に進み、ステップＳ１２０５において、ユーザが確定した許容値をクエリシナリオテーブルに設定し、リターンする。
【００３６】
図１３はステップＳ１００４の一部であるパラメータ設定処理を詳細化したフローチャートである。ステップＳ１３０１において、作業用のＤＢを正式なＤＢからコピーする。このパラメータ設定操作において、各種クエリを実行し、ＤＢの中身が変わってしまうので、それに備えるためである。ステップＳ１３０２において、図１４に詳述するように、クエリシナリオを作成する。ステップＳ１３０３において、図１５に詳述するように、パラメータ設定パターン作成処理を行って、パラメータ設定パターンテーブルを作成する。ステップＳ１３０４において、パラメータ設定パターンテーブルに基づいてパラメータ設定画面の画面表示を行う。ここでパラメータ設定画面中にパラメータ設定パターンに対応して予測性能提示が行われることになる。ステップＳ１３０５において、パラメータ設定画面のユーザ操作を制御する処理を行う。ステップＳ１３０６において、パラメータ設定画面内での予測性能上の性能改善方向の指示であるかどうか判定し、性能改善方向指示であれば、ステップＳ１３０７に分岐する。ステップＳ１３０７において、指示された方向に性能の許容値の変更処理を行う。具体的には表示されていた予測性能値に微小量だけプラスまたはマイナスした値を新しい許容値とする。新しい許容値をクエリシナリオテーブルに設定し、ステップＳ１３０３にループする。ステップＳ１３０６において、性能改善方向指示でなかった場合は、ステップＳ１３０８に進む。ステップＳ１３０８において、設定値を確定する操作であるか判定する。設定値確定でない場合は、ステップＳ１３０９に分岐し、画面変更等の処理を行い、ステップＳ１３０４にループする。ステップＳ１３０８において、設定値確定であったときは、ステップＳ１３０１０に進み、確定した設定値をパラメータ設定テーブルに反映する。ステップＳ１３０１１において、設定した設定値に応じてシステム設定を行う。例えば、カラムにインデクス付加を行った場合は、ここでインデクス作成処理を行う。ページ長の変更があれば、データベース内のページ長を制御する変数を変更して、データベース内のページ長を変更する。その他のシステム変更の処理を行う。その後、リターンする。
【００３７】
図１４はステップＳ１３０２のクエリシナリオ作成処理を詳細化したフローチャートである。ステップＳ１４０１において、図７において説明したようにクエリログテーブルを解析する。ステップＳ１４０２において、解析結果をもとにクエリ特徴抽出を行う。抽出する特徴としては、コマンド種類ごとのクエリの使用度数、主要キーなどである。ステップＳ１４０３において、抽出した特徴をもとにクエリ解析テーブルを作成する。ステップＳ１４０４において、クエリセット構成する。すなわち、クエリ解析テーブルからカテゴリごとに代表クエリのＳＱＬ文を取得し、更に必要なＳＱＬ文を付加してクエリセットを構成する。ステップＳ１４０５において、クエリセット構成をもとにクエリシナリオテーブルを作成する。
【００３８】
図１５はステップＳ１３０３のパラメータ設定パターン作成処理を詳細化したフローチャートである。ステップＳ１５０１において、設定値の組み合わせの１つ（パラメータ設定パターン）を作成する。ステップＳ１５０２において、すべての組み合わせを作成し尽くしたかを判定し、組み合わせが終了していれば、手続きを終了してリターンする。組み合わせが終了していなければ、ステップＳ１５０３に進み、予測性能推定を行うために、そのパラメータ設定パターンに対してクエリシナリオテーブルの基準クエリを実行し、実行時間を実測する。ステップＳ１５０４において、必要があれば、実測時間を補正する。補正が必要な場合としては、諸般の事情で実動作の使用可能なワークサイズが異なる場合や、あるいは、管理するデータ件数が異なる場合などがある。ステップＳ１５０５において、このように得られた予測性能がクエリシナリオテーブルに記載される許容値に適合しているかどうかを判定する。ＮＧの場合は、このパラメータ設定パターンを捨て、ステップＳ１５０１からやり直す。ステップＳ１５０５において、ＯＫであった場合はステップＳ１５０６に進み、得られたパラメータ設定パターンと予測性能をパラメータ設定パターンテーブルに追加し、ステップＳ１５０１にループする。
【００３９】
このように実施形態１の構成によれば、ユーザがパラメータ属性の値を調整した後の各クエリに対する実測に基づいた予測性能がまとめて提示される。これによって、データベースに精通しない一般ユーザでも必要なトレードオフが理解でき、ユーザの仕様意図に合致した調整が容易となる。
【００４０】
また、単なる実測値ではなく、メモリサイズ変更等の事情の変化に応じた補正値を予測性能として表示できるので、よりユーザの実感に合った調整が可能である。
【００４１】
また、ユーザが各クエリに対して、許容値を指定することができるので、もともと許容値を満たさないパラメータ設定パターンを選択肢から除外できるので、ユーザの操作性を向上させたパラメータ設定機能を提供できる。
【００４２】
また、パラメータ設定パターンの一覧が表示されたパラメータ設定画面において、測定値上で性能値改善の方向性を指示することで、性能の許容値を具体的値の入力の手間なく容易に変更できるので、より操作性の高いパラメータ設定機能を提供できる。
【００４３】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００４４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００４５】
ＣＰＵ  マイクロプロセッサ
ＢＵＳ  バス
ＲＯＭ  読出専用の不揮発性メモリ
ＲＡＭ  読み書き可能なランダムアクセスメモリ
ＤＩＳＫ  大規模記憶デバイス
【図１】
2013097725.tif 000003
【図２】
2013097725.tif 000004
【図３】
2013097725.tif 000005
【図４】
2013097725.tif 000006
【図５】
2013097725.tif 000007
【図６】
2013097725.tif 000008
【図７】
2013097725.tif 000009
【図８】
2013097725.tif 000010
【図９】
2013097725.tif 000011
【図１０】
2013097725.tif 000012
【図１１】
2013097725.tif 000013
【図１２】
2013097725.tif 000014
【図１３】
2013097725.tif 000015
【図１４】
2013097725.tif 000016
【図１５】
2013097725.tif 000017