(57)【要約】【課題】現実の運用状況に即した効率的な検索処理を可能とすること。【解決手段】検索履歴取得手段１ｂは、検索手段１ａによる検索履歴を取得し、検索履歴記憶手段１ｃに格納する。測定手段１ｄは、検索履歴に複数の検索条件を含む第１の検索処理の内容が追加されると、その検索処理につき絞込の順序を変更した複数の第２の検索処理を生成する。そして、検索履歴に基づいて、第２の検索処理それぞれと、第１の検索処理が実行された際に実行中であった他の検索処理と、を実行し、第２の検索処理それぞれに要した処理時間を測定結果として取得し、測定結果記憶手段１ｅに格納する。変換ルール出力手段１ｆは、その測定結果に基づいて、第２の検索処理それぞれのうち処理時間が最小であるものを特定し、特定した第２の検索処理に含まれる絞込の順序を、検索手段１ａによる第１の検索処理による絞込の順序を変換するための条件変換ルールとして出力する。【選択図】図１
2011159015.tif 000002
【特許請求の範囲】
【請求項１】
複数の項目を含むデータテーブルから、前記複数の項目のうち２つ以上の項目に対して与えられた条件に基づき前記項目ごとに所定の順序で絞込を行って前記条件に合致するレコードの検索処理を行う検索手段による前記検索処理を支援する処理をコンピュータに実行させる検索支援プログラムであって、
前記コンピュータを、
前記検索手段により実行された複数の検索処理の履歴である検索履歴を取得し、取得した前記検索履歴を検索履歴記憶手段に格納する検索履歴取得手段、
前記検索履歴記憶手段に記憶された前記検索履歴に複数の所定の検索条件を含む第１の検索処理の内容が追加されると、前記第１の検索処理につき絞込の順序を変更した複数の第２の検索処理の命令を生成し、前記検索履歴に基づいて、当該複数の第２の検索処理それぞれと、前記第１の検索処理が実行された際に実行中であった１つ以上の他の検索処理と、を実行して、前記複数の第２の検索処理それぞれに要した処理時間を測定結果として取得し、取得した前記測定結果を測定結果記憶手段に格納する測定手段、
前記測定結果記憶手段に記憶された前記測定結果に基づいて、前記複数の第２の検索処理それぞれのうち前記処理時間が最小であるものを特定し、特定した第２の検索処理に含まれる絞込の順序を、前記検索手段による前記第１の検索処理の実行の際に絞込の順序を変換するための条件変換ルールとして出力する変換ルール出力手段、
として機能させることを特徴とする検索支援プログラム。
【請求項２】
前記検索履歴取得手段は、複数の検索処理それぞれに対応付けて、前記複数の検索処理を取得した第１のタイムスタンプを前記検索履歴に記録し、
前記測定手段は、前記検索履歴を参照して、前記第１のタイムスタンプに基づく時間差を再現して、前記複数の第２の検索処理それぞれと前記他の検索処理とを実行し、前記複数の第２の検索処理それぞれの実行時を示す第２のタイムスタンプを前記測定結果に記録し、
前記変換ルール出力手段は、前記測定結果に含まれる前記第２のタイムスタンプに基づいて、時間帯ごとに前記条件変換ルールを出力する、
ことを特徴とする請求項１記載の検索支援プログラム。
【請求項３】
前記測定手段は、前記複数の第２の検索処理それぞれを実行する際に実行中であった検索処理の数を示す多重実行数を前記測定結果に記録し、
前記変換ルール出力手段は、前記測定結果に基づいて、前記複数の第２の検索処理それぞれにつき前記時間帯における前記多重実行数ごとに最小処理時間、平均処理時間および最大処理時間を集計し、集計した前記最小処理時間、平均処理時間および最大処理時間に基づき前記複数の第２の検索処理それぞれの前記時間帯における前記多重実行数ごとの優先度を決定し、当該優先度に基づいて、前記時間帯の前記条件変換ルールを得るための第２の検索処理の特定を行う、
ことを特徴とする請求項２記載の検索支援プログラム。
【請求項４】
前記コンピュータを、更に、前記検索手段が前記第１の検索処理を実行する際に、前記変換ルール出力手段が出力した前記条件変換ルールを記憶する変換ルール記憶手段を参照して、当該第１の検索処理に含まれる前記所定の検索条件による絞込の順序を変換し、変換後の前記第１の検索処理の内容を前記検索手段に出力する変換手段として機能させることを特徴とする請求項１乃至３の何れか一項に記載の検索支援プログラム。
【請求項５】
前記コンピュータとは異なる情報処理装置に前記検索手段が設けられており、
前記検索履歴取得手段は、前記情報処理装置から受信した検索処理の内容に基づいて、前記検索履歴を取得する、
ことを特徴とする請求項１乃至３の何れか一項に記載の検索支援プログラム。
【請求項６】
複数の項目を含むデータテーブルから、前記複数の項目のうち２つ以上の項目に対して与えられた条件に基づき前記項目ごとに所定の順序で絞込を行って前記条件に合致するレコードの検索処理を行う検索部による前記検索処理を支援する検索支援装置であって、
前記検索部により実行された複数の検索処理の履歴である検索履歴を取得し、取得した前記検索履歴を検索履歴記憶部に格納する検索履歴取得部と、
前記検索履歴記憶部に記憶された前記検索履歴に複数の所定の検索条件を含む第１の検索処理の内容が追加されると、前記第１の検索処理につき絞込の順序を変更した複数の第２の検索処理の命令を生成し、前記検索履歴に基づいて、当該複数の第２の検索処理それぞれと、前記第１の検索処理が実行された際に実行中であった１つ以上の他の検索処理を実行して、前記複数の第２の検索処理それぞれに要した処理時間を測定結果として取得し、取得した前記測定結果を測定結果記憶部に格納する測定部と、
前記測定結果記憶部に記憶された前記測定結果に基づいて、前記複数の第２の検索処理それぞれのうち前記処理時間が最小であるものを特定し、特定した第２の検索処理に含まれる絞込の順序を、前記検索部による前記第１の検索処理の実行の際の条件変換ルールとして出力する変換ルール出力部と、
を有することを特徴とする検索支援装置。
【請求項７】
複数の項目を含むデータテーブルから、前記複数の項目のうち２つ以上の項目に対して与えられた条件に基づき前記項目ごとに所定の順序で絞込を行って前記条件に合致するレコードの検索処理を行う検索部による前記検索処理を支援する検索支援装置の検索支援方法であって、
検索履歴取得部が、前記検索部により実行された複数の検索処理の履歴である検索履歴を取得し、取得した前記検索履歴を検索履歴記憶部に格納し、
測定部が、前記検索履歴記憶部に記憶された前記検索履歴に複数の所定の検索条件を含む第１の検索処理の内容が追加されると、前記第１の検索処理につき絞込の順序を変更した複数の第２の検索処理の命令を生成し、前記検索履歴に基づいて、当該複数の第２の検索処理それぞれと、前記第１の検索処理が実行された際に実行中であった１つ以上の他の検索処理を実行して、前記複数の第２の検索処理それぞれに要した処理時間を測定結果として取得し、取得した前記測定結果を測定結果記憶部に格納し、
変換ルール出力部が、前記測定結果記憶部に記憶された前記測定結果に基づいて、前記複数の第２の検索処理それぞれのうち前記処理時間が最小であるものを特定し、特定した第２の検索処理に含まれる絞込の順序を、前記検索部による前記第１の検索処理の実行の際の条件変換ルールとして出力する、
ことを特徴とする検索支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータテーブルの検索処理を支援する検索支援プログラム、検索支援装置および検索支援方法に関する。
【背景技術】
【０００２】
従来、様々な業務処理システムにおいて多数のデータが取り扱われている。データは、例えば、データベース（ＤＢ：DataBase）に格納される。情報処理システムは、データベースにアクセスし、業務処理に応じたデータの読み出しや書き込みを行う。
【０００３】
データベースへのアクセスに際し、所望のデータの検索性能は処理効率の観点から重要である。すなわち、データベースでは指定された条件に合致するデータをより高速に特定することが望まれる。
【０００４】
ここで、データベースでは複数の条件に基づいて、データの検索が行われる。その場合、検索条件を用いる順序によってデータベースの応答性能を改善することが考えられる。例えば、検索条件を入れ替えて生成した複数の実行手順から実行コストの小さい手順を選択する技術がある（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−００３２５７号公報
【特許文献２】特開２００１−１５５０１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、業務処理によっては、ある検索処理を実行する際に他の検索処理の実行を伴う場合も多い。その場合、実行中の他の検索処理の実行がチューニング対象の検索処理の実行に影響を及ぼすことがある。
【０００７】
このため、チューニング対象の検索処理を単体で実行して、その応答時間を取得し、検索手順を決定したとしても、現実の業務運用において、その検索手順が必ずしも最適であるとは限らないという問題があった。
【０００８】
本発明はこのような点に鑑みてなされたものであり、現実の運用状況に即した効率的な検索処理を可能とする検索支援プログラム、検索支援装置および検索支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では上記課題を解決するために、複数の項目を含むデータテーブルから、複数の項目のうち２つ以上の項目に対して与えられた条件に基づき項目ごとに所定の順序で絞込を行って条件に合致するレコードの検索処理を行う検索手段による検索処理を支援する処理をコンピュータに実行させる検索支援プログラムが提供される。この検索支援プログラムを実行するコンピュータは、検索履歴取得手段、測定手段および変換ルール出力手段として機能する。検索履歴取得手段は、検索手段により実行された複数の検索処理の履歴である検索履歴を取得し、取得した検索履歴を検索履歴記憶手段に格納する。測定手段は、検索履歴記憶手段に記憶された検索履歴に複数の所定の検索条件を含む第１の検索処理の内容が追加されると、第１の検索処理につき絞込の順序を変更した複数の第２の検索処理の命令を生成し、検索履歴に基づいて、複数の第２の検索処理それぞれと、第１の検索処理が実行された際に実行中であった１つ以上の他の検索処理と、を実行して、複数の第２の検索処理それぞれに要した処理時間を測定結果として取得し、取得した測定結果を測定結果記憶手段に格納する。変換ルール出力手段は、測定結果記憶手段に記憶された測定結果に基づいて、複数の第２の検索処理それぞれのうち処理時間が最小であるものを特定し、特定した第２の検索処理に含まれる絞込の順序を、検索手段による第１の検索処理の実行の際に絞込の順序を変換するための条件変換ルールとして出力する。
【００１０】
また、上記検索支援プログラムを実行するコンピュータと同様の機能を有する検索支援装置が提供される。また、上記検索支援プログラムを実行するコンピュータと同様の処理を行う検索支援方法が提供される。
【発明の効果】
【００１１】
上記検索支援プログラム、検索支援装置および検索支援方法によれば、現実の運用状況に即した効率的な検索処理が可能となる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係るコンピュータを示す図である。
【図２】第２の実施の形態に係る業務システムの全体構成を示す図である。
【図３】業務サーバのハードウェア構成を示す図である。
【図４】業務サーバの機能構成を示す図である。
【図５】Ｓｅｌｅｃｔ文定義テーブルのデータ構造例を示す図である。
【図６】検索ログの例を示す図である。
【図７】検索実績テーブルのデータ構造例を示す図である。
【図８】測定実績テーブルのデータ構造例を示す図である。
【図９】ログ集計テーブルのデータ構造例を示す図である。
【図１０】優先度テーブルのデータ構造例を示す図である。
【図１１】変換テーブルのデータ構造例を示す図である。
【図１２】実績処理時間計測処理を示すフローチャートである。
【図１３】処理時間計測処理を示すフローチャートである。
【図１４】変換情報生成処理を示すフローチャートである。
【図１５】Ｓｅｌｅｃｔ文変換処理を示すフローチャートである。
【図１６】第３の実施の形態に係る業務サーバの機能構成を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態を図面を参照して詳細に説明する。
［第１の実施の形態］
図１は第１の実施の形態に係るコンピュータを示す図である。コンピュータ１は、データベース２と接続されている。コンピュータ１は、検索手段１ａ、検索履歴取得手段１ｂ、検索履歴記憶手段１ｃ、測定手段１ｄ、測定結果記憶手段１ｅ、変換ルール出力手段１ｆ、変換ルール記憶手段１ｇおよび検索条件変換手段１ｈを有する。
【００１４】
検索手段１ａは、データベース２に格納されたデータテーブルを検索し、検索条件に合致するレコードを抽出する。検索手段１ａは、例えば所定の業務アプリケーションによって指示された条件に従って検索を実行する。業務アプリケーションを実行するコンピュータは、コンピュータ１であってもよいし、コンピュータ１とは別個の情報処理装置であってもよい。
【００１５】
検索履歴取得手段１ｂは、検索手段１ａが実行した検索処理の内容を検索履歴３として取得し、検索履歴記憶手段１ｃに格納する。検索処理の内容は、例えばＳＱＬ文で記述される。
【００１６】
検索履歴記憶手段１ｃは、検索履歴取得手段１ｂが取得した検索履歴３を記憶する。
測定手段１ｄは、検索履歴記憶手段１ｃに記憶された検索履歴３に所定の第１の検索処理の内容が追加されると、第１の検索処理につき絞込の順序を変更した第２の検索処理と、第１の検索処理が実行された際に実行中であった１つ以上の他の検索処理を実行する。測定手段１ｄは、第２の検索処理に要した時間を測定結果として測定結果記憶手段１ｅに格納する。
【００１７】
例えば、検索履歴３に含まれる検索処理Ｄについてチューニングする場合を考える。ここで、検索処理Ｄは複数の検索条件を有する。より具体的には、検索処理Ｄは条件ｄ１，ｄ２，ｄ３を有している。条件ｄ１，ｄ２，ｄ３は、データテーブルの各レコードに含まれる複数の項目に対する条件である。検索手段１ａは検索処理Ｄを実行する際に、条件ｄ１，ｄ２，ｄ３の順でレコードの絞込を行ったとする。
【００１８】
測定手段１ｄは、検索履歴記憶手段１ｃを参照して検索履歴３に検索処理Ｄが追加されたことを検知すると、それ以前の所定期間に実行された他の検索処理を検索処理Ｄを実行した際に実行中であった検索処理として抽出する。所定期間は、個々の検索処理の実行時間に応じて決定することができる。例えば「検索処理Ｄの実行時以前の０．５秒間」として所定期間を決定できる。この場合、測定手段１ｄは、検索履歴３から検索処理Ｂ，Ｃを抽出する。ここで、検索履歴３のうち、検索処理Ｄの実行時以前の所定期間の履歴を再実行部３ａとする。
【００１９】
次に、測定手段１ｄは、検索処理Ｄに含まれる条件ＤＸ，ＤＹ，ＤＺの順序を変更する。例えば、条件ＤＹ，ＤＺ，ＤＸの順とした検索処理Ｄ（１）を生成する。そして、再実行部３ａに含まれる検索処理Ｄを検索処理Ｄ（１）に置換した一連の検索処理をデータベース２に対して再実行する。再実行部３ａの例では、まず、検索処理Ｂを実行する。その０．２４８（＝０．７８９−０．５４１）秒後に検索処理Ｃを実行する。更に、その０．２１１（＝１．０００−０．７８９）秒後に検索処理Ｄ（１）を実行する。これを、検索処理Ｄの条件ＤＸ，ＤＹ，ＤＺが取り得る全ての順列に対する検索処理Ｄ（１），Ｄ（２），・・・，Ｄ（６）について実行する。この例では、検索処理Ｄ（１）〜Ｄ（６）が第２の検索処理に対応する。ここで、第２の検索処理に第１の検索処理と絞込の順序が同一となるものが含まれていてもよい。
【００２０】
測定手段１ｄは、各実行結果について処理時間を記録し、測定結果として測定結果記憶手段１ｅに格納する。
測定結果記憶手段１ｅは、測定手段１ｄによって取得された処理時間の測定結果を記憶する。
【００２１】
変換ルール出力手段１ｆは、所定の測定期間中に測定結果記憶手段１ｅに格納された測定結果に基づいて、第１の検索処理と同じ結果を得るために必要な処理時間が最小となる絞込の順序を特定する。具体的には、検索処理Ｄが実行されるたびに取得した検索処理Ｄ（１）〜Ｄ（６）による測定結果を各処理ごとに集計する。そして、例えば測定期間中の平均処理時間が最小となる条件ＤＸ，ＤＹ，ＤＺの順序を特定する。変換ルール出力手段１ｆは、この順序を検索手段１ａによる第１の検索処理の実行の際の条件変換ルールとして出力する。ここで、例えば条件ＤＹ，ＤＺ，ＤＸの順序を条件変換ルールとして出力したとする。
【００２２】
変換ルール記憶手段１ｇは、変換ルール出力手段１ｆが出力した条件変換ルールを記憶する。
検索条件変換手段１ｈは、検索手段１ａが第１の検索処理を実行する際に、変換ルール記憶手段１ｇを参照する。そして、第１の検索処理に対する条件変換ルールが存在する場合、第１の検索処理の条件を条件変換ルールに基づいて変換する。検索条件変換手段１ｈは、変換後の絞込順序で検索手段１ａに検索処理を実行させる。
【００２３】
コンピュータ１によれば、検索履歴取得手段１ｂにより、検索手段１ａが実行した複数の検索処理の履歴である検索履歴３が取得され、取得された検索履歴３が検索履歴記憶手段１ｃに格納される。検索履歴記憶手段１ｃに記憶された検索履歴に複数の所定の検索条件を含む第１の検索処理の内容が追加されると、測定手段１ｄにより、第１の検索処理につき絞込の順序を変更した複数の第２の検索処理の命令が生成される。そして、検索履歴に基づいて、複数の第２の検索処理それぞれと、第１の検索処理が実行された際に実行中であった１つ以上の他の検索処理と、が実行されて、複数の第２の検索処理それぞれに要した処理時間が測定結果として取得され、測定結果記憶手段１ｅに格納される。変換ルール出力手段１ｆにより、測定結果記憶手段１ｅに記憶された測定結果に基づいて、複数の第２の検索処理それぞれのうち処理時間が最小であるものが特定される。そして、特定された第２の検索処理に含まれる絞込の順序が、検索手段１ａによる第１の検索処理の実行の際の絞込の順序を変更するための条件変換ルールとして出力される。
【００２４】
このように、実際に実行された検索履歴に基づいて絞込の順序を決定するので、現実の運用状況に即したより効率的な検索処理が可能となる。
更に、運用時間中に測定期間を複数設けて、時間帯ごとに最適な条件変換ルールを特定してもよい。このようにすれば、時々刻々と変化し得るデータの量やデータの種別に応じた適切な条件変換ルールを取得することができる。
【００２５】
以下の実施の形態では、コンピュータ１を金融機関の窓口における業務システムに適用する場合を例に採り、より具体的に説明する。
［第２の実施の形態］
図２は、第２の実施の形態に係る業務システムの全体構成を示す図である。この業務システムは、金融機関の窓口業務を行うためのものである。この業務システムでは、端末装置２１，２２，２３および業務サーバ１００，２００がネットワーク２０を介して接続されている。
【００２６】
端末装置２１，２２，２３は、オペレータのデータ入力を受け付けるための情報処理装置である。オペレータは、例えば、顧客が記入した帳票の情報（振込や払出等）を端末装置２１，２２，２３に入力する。端末装置２１，２２，２３は、入力情報を業務サーバ１００に送信する。
【００２７】
業務サーバ１００，２００は、端末装置２１，２２，２３から受信する入力情報に基づいて、金融取引を行うための所定の処理を実行する情報処理装置である。業務サーバ１００，２００はクラスタ構成となっている。業務サーバ１００は、運用系のサーバである。業務サーバ２００は、待機系のサーバである。すなわち、通常時は業務サーバ１００が業務処理を引き受ける。そして、業務サーバ１００が障害等でダウンした場合に、業務サーバ２００が処理を引き継ぐ。両サーバのデータの不整合を回避するため、業務サーバ２００のデータは業務サーバ１００のデータと同期される。相手側とのヘルスチェックやデータ同期のために業務サーバ１００，２００の間は専用のネットワークで接続される。
【００２８】
図３は、業務サーバのハードウェア構成を示す図である。業務サーバ１００は、業務サーバ１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、ＨＤＤ（Hard Disk Drive）１０４、グラフィック処理装置１０５、入力インタフェース１０６、記録媒体読取装置１０７および通信インタフェース１０８を有する。
【００２９】
ＣＰＵ１０１は、業務サーバ１００全体を制御する。
ＲＯＭ１０２は、業務サーバ１００上のＢＩＯＳ（Basic Input / Output System）のプログラムなどを記憶する。
【００３０】
ＲＡＭ１０３は、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションソフトウェア（以下、アプリケーションという）のプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０３は、ＣＰＵ１０１による処理に必要な各種データを記憶する。
【００３１】
ＨＤＤ１０４は、ＯＳのプログラム、アプリケーションのプログラムを記憶する。また、ＨＤＤ１０４はＣＰＵ１０１による処理に必要な各種データを記憶する。なお、ＨＤＤ１０４に代えて（または、ＨＤＤ１０４と併せて）、ＳＳＤ（Solid State Drive）など他の種類の記憶装置を用いてもよい。
【００３２】
グラフィック処理装置１０５は、モニタ１１と接続される。グラフィック処理装置１０５は、ＣＰＵ１０１からの命令に従って画像をモニタ１１の画面に表示させる。
入力インタフェース１０６は、キーボード１２とマウス１３と接続される。入力インタフェース１０６は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。
【００３３】
記録媒体読取装置１０７は、記録媒体１４に記憶されたデータを読み取る読取装置である。例えば、業務サーバ１００が有すべき機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。そのようなプログラムは、コンピュータ読み取り可能な記録媒体１４に記録して配布することができる。また、ネットワーク２０に接続されたプログラム配信サーバ（図示せず）に、記録媒体１４からそのプログラムを格納してもよい。この場合、業務サーバ１００は、ネットワーク２０を介してプログラム配信サーバからプログラムをダウンロードすることができる。
【００３４】
記録媒体１４としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ：Flexible Disk）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−Ｒ／ＲＷ／ＲＡＭなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。半導体メモリには、ＵＳＢ（Universal Serial Bus）メモリなどのフラッシュメモリがある。
【００３５】
通信インタフェース１０８は、ネットワーク２０と接続される。通信インタフェース１０８は、ネットワーク２０を介して他の情報処理装置とデータ通信する。
なお、端末装置２１，２２，２３および業務サーバ２００に関しても業務サーバ１００と同様のハードウェア構成により実現できる。
【００３６】
図４は、業務サーバの機能構成を示す図である。業務サーバ１００は、データベース１１１、ＳＱＬ定義情報記憶部１１２、実績ログ記憶部１１３、変換ルール記憶部１１４、業務処理部１２０、同期処理部１３０、ＤＢ処理部１４０、ＳＱＬ文変換部１５０、ＳＱＬ文通知部１６０、応答実績記録部１７０およびログ通信部１８０を有する。これらの機能は、ＣＰＵ１０１が所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアにより実現してもよい。
【００３７】
データベース１１１は、窓口業務に利用する業務データを記憶する。
ＳＱＬ定義情報記憶部１１２は、業務データの検索処理に用いる命令であるＳＱＬを定義したＳＱＬ定義情報を記憶する。
【００３８】
実績ログ記憶部１１３は、業務サーバ１００が運用時間中に実行した検索の履歴である実績ログを記憶する。
変換ルール記憶部１１４は、ＳＱＬ文の条件変換ルール（以下、単に変換ルールという）を記憶する。変換ルールは、ＳＱＬ文変換部１５０によってＳＱＬ文の変換に用いられる。
【００３９】
業務処理部１２０は、端末装置２１，２２，２３から受け付けた入力データに基づいて、窓口業務に必要な処理を実行する。業務処理部１２０は、データの操作を行う場合、データベース１１１に記憶された業務データの読み出し・追加・更新等を行うために、ＤＢ処理部１４０に対してＳＱＬ文を発行する。具体的には、データの読み出しを行う場合には、検索のためのＳｅｌｅｃｔ文を生成する。検索に利用する条件は、Ｓｅｌｅｃｔ文中のＷｈｅｒｅ句によって表すことができる。業務処理部１２０は、生成したＳｅｌｅｃｔ文をＳＱＬ文変換部１５０に出力する。また、業務処理部１２０は、検索結果を応答実績記録部１７０を介して取得する。また、業務処理部１２０は、データの編集（追加・更新等）を行う際には、そのためのＳＱＬ文（Ｉｎｓｅｒｔ、Ｕｐｄａｔｅ、Ｄｅｌｅｔｅ等）を同期処理部１３０に出力する。
【００４０】
同期処理部１３０は、業務処理部１２０からデータ編集用のＳＱＬ文を受け付けると、そのＳＱＬ文を業務サーバ２００に通知する。これにより、業務サーバ１００におけるデータの更新内容が業務サーバ２００のデータにも反映される。また、同期処理部１３０は、そのＳＱＬ文をＤＢ処理部１４０に出力する。
【００４１】
ＤＢ処理部１４０は、受け付けたＳＱＬ文を実行し、データベース１１１に記憶されたデータの読み出しや編集を実行する。ＤＢ処理部１４０は、Ｓｅｌｅｃｔ文によりデータの読み出しを行った場合、読み出し結果を応答実績記録部１７０に出力する。
【００４２】
ＳＱＬ文変換部１５０は、業務処理部１２０からＳｅｌｅｃｔ文を受け付けると、ＳＱＬ定義情報記憶部１１２および変換ルール記憶部１１４を参照して、Ｓｅｌｅｃｔ文の変換処理を行う。ＳＱＬ文変換部１５０は、変換後のＳｅｌｅｃｔ文をＳＱＬ文通知部１６０に出力する。
【００４３】
ＳＱＬ文通知部１６０は、ＳＱＬ文変換部１５０から受け付けたＳｅｌｅｃｔ文を業務サーバ２００に通知する。これにより、業務サーバ２００は、業務サーバ１００で実行されたＳｅｌｅｃｔ文を取得できる。ＳＱＬ文通知部１６０は、受け付けたＳｅｌｅｃｔ文を応答実績記録部１７０に出力する。
【００４４】
応答実績記録部１７０は、ＳＱＬ文通知部１６０から受け付けたＳｅｌｅｃｔ文をＤＢ処理部１４０に出力する。なお、応答実績記録部１７０は、ＤＢ処理部１４０に出力した（処理依頼中である）Ｓｅｌｅｃｔ文の数（以下、多重実行数という）を計数する。すなわち、応答実績記録部１７０は、ＤＢ処理部１４０にＳｅｌｅｃｔ文を出力すると多重実行数を“＋１”する。また、ＤＢ処理部１４０から検索結果の応答を受け付けると、多重実行数を“−１”する。そして、検索結果を業務処理部１２０に出力する。更に、応答実績記録部１７０は、Ｓｅｌｅｃｔ文をＤＢ処理部１４０に出力して、応答を受け付けるまでの時間と多重実行数とを実績ログとして取得し、実績ログ記憶部１１３に格納する。
【００４５】
ログ通信部１８０は、実績ログ記憶部１１３に記憶された実績ログの内容を業務サーバ２００に送信する。そして、ログ通信部１８０は、実績ログ等に基づいて生成されたＳｅｌｅｃｔ文の変換ルールを業務サーバ２００から受信する。ログ通信部１８０は、受信した変換ルールを変換ルール記憶部１１４に格納する。
【００４６】
業務サーバ２００は、データベース２１１、ＳＱＬ定義情報記憶部２１２、検索履歴記憶部２１３、測定ログ記憶部２１４、集計情報記憶部２１５、同期処理部２２０、ＤＢ処理部２３０、ＳＱＬ文受信部２４０、検索パターン生成部２５０、ログ通信部２７０および変換ルール生成部２８０を有する。これらの機能は、業務サーバ２００が備えるＣＰＵが所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアにより実現してもよい。
【００４７】
データベース２１１は、データベース１１１に対応する。データベース２１１は、データベース１１１と同期される。
ＳＱＬ定義情報記憶部２１２は、ＳＱＬ定義情報記憶部１１２に対応する。
【００４８】
検索履歴記憶部２１３は、ＳＱＬ文受信部２４０が受信したＳｅｌｅｃｔ文の履歴である検索履歴を記憶する。
測定ログ記憶部２１４は、測定記録部２６０が測定した検索処理時間の記録である測定ログを記憶する。
【００４９】
集計情報記憶部２１５は、変換ルール生成部２８０が実績ログと測定ログとの集計処理のために生成する集計情報等を記憶する。
同期処理部２２０は、同期処理部１３０から受け付けたＳＱＬ文をＤＢ処理部２３０に出力する。これにより、データベース２１１に対してデータベース１１１に行われる編集と同一の編集がなされる。
【００５０】
ＤＢ処理部２３０は、受け付けたＳＱＬ文を実行し、データベース２１１に記憶されたデータの読み出しや編集を実行する。ＤＢ処理部２３０は、Ｓｅｌｅｃｔ文によりデータの読み出しを行った場合、読み出し結果を測定記録部２６０に出力する。
【００５１】
ＳＱＬ文受信部２４０は、ＳＱＬ文通知部１６０から受け付けたＳｅｌｅｃｔ文を検索履歴記憶部２１３に検索履歴として格納する。
検索パターン生成部２５０は、検索履歴記憶部２１３に新たな検索履歴が格納されると、該当のＳｅｌｅｃｔ文に含まれる条件による絞込の順序を変更した検索パターンによるＳｅｌｅｃｔ文を生成する。検索パターン生成部２５０は、生成したＳｅｌｅｃｔ文を測定記録部２６０に出力する。また、検索パターン生成部２５０は、検索履歴記憶部２１３を参照して、そのＳｅｌｅｃｔ文と共に実行されていた他のＳｅｌｅｃｔ文を測定記録部２６０に出力する。検索パターン生成部２５０は、測定記録部２６０において、ある検索パターンのＳｅｌｅｃｔ文の測定が完了すると、次の検索パターンのＳｅｌｅｃｔ文を生成して測定記録部２６０に出力する。
【００５２】
測定記録部２６０は、検索パターン生成部２５０から取得したＳｅｌｅｃｔ文をＤＢ処理部２３０に出力する。測定記録部２６０は、応答実績記録部１７０と同様にして、多重実行数と共に、チューニング対象のＳｅｌｅｃｔ文について複数の検索パターンでの処理時間を測定ログとして記録し、測定ログ記憶部２１４に格納する。
【００５３】
ログ通信部２７０は、ログ通信部１８０を介して実績ログ記憶部１１３に記憶された実績ログを受信する。ログ通信部２７０は、受信した実績ログを変換ルール生成部２８０に出力する。また、ログ通信部２７０は、変換ルール生成部２８０が生成した変換ルールをログ通信部２７０に出力する。
【００５４】
変換ルール生成部２８０は、ログ通信部２７０から取得した実績ログと、測定ログ記憶部２１４に記憶された測定ログと、に基づいてチューニング対象のＳｅｌｅｃｔ文についての各絞込順序での処理時間を集計し、集計情報を生成する。変換ルール生成部２８０は、生成した集計情報に基づいて、該当のＳｅｌｅｃｔ文の変換ルールを取得し、ログ通信部２７０に出力する。
【００５５】
図５は、Ｓｅｌｅｃｔ文定義テーブルのデータ構造例を示す図である。Ｓｅｌｅｃｔ文定義テーブル１１２ａは、ＳＱＬ定義情報記憶部１１２に予め格納される。Ｓｅｌｅｃｔ文定義テーブル１１２ａには、識別番号を示す項目およびＷｈｅｒｅ句内容を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つのＳｅｌｅｃｔ文の定義情報を示す。
【００５６】
識別番号を示す項目には、Ｓｅｌｅｃｔ文を識別するための識別番号が設定される。Ｗｈｅｒｅ句内容を示す項目には、Ｗｈｅｒｅ句に含まれる条件が設定される。Ｗｈｅｒｅ句内容には、各条件が絞込に用いられる順序で条件１，２，３と複数設定される。ただし、条件は４つ以上設定されていてもよい。
【００５７】
Ｓｅｌｅｃｔ文定義テーブル１１２ａには、例えば、識別番号が“Ｐ０１”、Ｗｈｅｒｅ句内容（条件１）が“年月日＝‘ｙｙｍｍｄｄ’”、Ｗｈｅｒｅ句内容（条件２）が“都道府件＝‘ｃｃｃ’”、Ｗｈｅｒｅ句内容（条件３）が“市区町村＝‘ｃｃｃ’”という情報が設定される。ここで、“ｃｃｃ”は文字列であることを示す。これは、ある業務処理で用いられるＳｅｌｅｃｔ文として、これら各条件を含むものが識別番号“Ｐ０１”に対応付けて定義されていることを示している。また、通常、このＳｅｌｅｃｔ文では、まず“年月日＝‘ｙｙｍｍｄｄ’”の条件によって絞込を行うことを示している。次いで、“都道府県＝‘ｃｃｃ’”、“市区町村＝‘ｃｃｃ’”の条件によって順次絞込を行うことを示している。なお、この順序はあくまでもデフォルトの設定である。すなわち、該当の条件式からなり、順序が変更したものも“Ｐ０１”に対応付けることができる。
【００５８】
図６は、検索ログの例を示す図である。検索ログ２１３ａは、ＳＱＬ文受信部２４０により検索履歴記億部２１３に格納される。検索ログ２１３ａには、業務サーバ１００で実行されたＳｅｌｅｃｔ文のログが記録されている。ログには、例えば、該当のＳｅｌｅｃｔ文が実行された年月日、時分秒（タイムスタンプ）およびそのＳｅｌｅｃｔ文の内容が記録される。時間は、例えばミリ秒で取得できる。あるいは、マイクロ秒単位等としてもよい。
【００５９】
なお、該当のＳｅｌｅｃｔ文が実行された時間は、ＳＱＬ文受信部２４０が業務サーバ１００から該当のＳｅｌｅｃｔ文を受信した時間として取得してもよい。
検索ログ２１３ａには、検索処理Ｔ１，Ｔ２，Ｔ３，Ｔ４が記録されている。検索パターン生成部２５０は、例えば検索処理Ｔ４についての測定を行う場合、検索処理Ｔ４よりも前の期間に実行された検索処理を取得する。より具体的には、検索処理Ｔ４の実行時にＤＢ処理部１４０で実行中であったと考えられる期間分（例えば、０．５秒）だけ検索処理を取得する。すなわち、検索ログ２１３ａの例では、検索処理Ｔ１，Ｔ２，Ｔ３を取得する。検索パターン生成部２５０は、検索処理Ｔ４につき検索パターンを変更したＳｅｌｅｃｔ文（Ｔ４’とする）を出力するに伴って、検索ログ２１３ａにおける時間差を再現しつつ検索処理Ｔ１，Ｔ２，Ｔ３，Ｔ４’を測定記録部２６０に出力する。これにより、業務サーバ１００での実行状況を適切に再現して処理時間の測定が行える。
【００６０】
図７は、検索実績テーブルのデータ構造例を示す図である。検索実績テーブル１１３ａ，１１３ｂ，１１３ｃ，・・・は、応答実績記録部１７０により生成され、実績ログ記憶部１１３に格納される。検索実績テーブル１１３ａは、識別番号“Ｐ０１”に対応するＳｅｌｅｃｔ文の実績ログである。検索実績テーブル１１３ｂは、識別番号“Ｐ０２”に対応するＳｅｌｅｃｔ文の実績ログである。検索実績テーブル１１３ｃは、識別番号“Ｐ０３”に対応するＳｅｌｅｃｔ文の実績ログである。以下では、検索実績テーブル１１３ａの構造について説明するが、検索実績テーブル１１３ｂ，１１３ｃ，・・・に関しても同様である。
【００６１】
検索実績テーブル１１３ａには、項番を示す項目、検索条件を示す項目、多重実行数を示す項目、依頼時刻を示す項目、応答時刻を示す項目および処理時間を示す項目が設けられている。各項目の横方向に並べられた情報同士が関連付けられて、“Ｐ０１”に対応するＳｅｌｅｃｔ文を用いて検索を実行した際の実績を示す。
【００６２】
項番を示す項目には、レコードを示す番号が設定される。検索条件を示す項目には、Ｓｅｌｅｃｔ文に含まれる具体的な条件が設定される。多重実行数を示す項目には、多重実行数が設定される。依頼時刻を示す項目には、応答実績記録部１７０がＤＢ処理部１４０にＳｅｌｅｃｔ文を出力した時間が設定される。応答時刻を示す項目には、出力したＳｅｌｅｃｔ文に対して応答を受けた時間が設定される。なお、図７の例では年月日の図示を省略している。処理時間を示す項目には、依頼時刻から応答時刻までに要した時間が設定される。
【００６３】
検索実績テーブル１１３ａには、例えば、項番が“１”、検索条件（１番目）が“年月日＝‘１００１１５’”、検索条件（２番目）が“都道府県＝‘東京都’”、検索条件（３番目）が“市区町村＝‘港区’”、多重実行数が“５”、依頼時刻が“９：１０：００．１００”、応答時刻が“９：１０：００．９１５”、処理時間が“０．８１５”という情報が設定される。
【００６４】
これは、業務サーバ１００において、識別番号“Ｐ０１”に対応するＳｅｌｅｃｔ文が“年月日＝‘１００１１５’”、“都道府県＝‘東京都’”、“市区町村＝‘港区’”の順に絞込を行って実行されたことを示している。また、そのときの多重実行数（すなわち、現在実行中の他の検索処理の数）が“５”であることを示している。更に、依頼時刻と応答時刻との差から、該当の処理に要した処理時間が“０．８１５”秒であることを示している。
【００６５】
ここで、以下の説明では応答実績記録部１７０は、多重実行数をＤＢ処理部１４０に対して該当のＳｅｌｅｃｔ文による処理を依頼した時点の値として取得するものとする。また、多重実行数にはチューニング対象とするＳｅｌｅｃｔ文による実行数も含まれる。
【００６６】
図８は、測定実績テーブルのデータ構造例を示す図である。測定実績テーブル２１４ａ，２１４ｂ，２１４ｃ，・・・は、測定記録部２６０により生成され、測定ログ記憶部２１４に格納される。測定実績テーブル２１４ａは、識別番号“Ｐ０１”に対応するＳｅｌｅｃｔ文の測定ログである。測定実績テーブル２１４ｂは、識別番号“Ｐ０２”に対応するＳｅｌｅｃｔ文の測定ログである。測定実績テーブル２１４ｃは、識別番号“Ｐ０３”に対応するＳｅｌｅｃｔ文の測定ログである。以下では、測定実績テーブル２１４ａの構造について説明するが、測定実績テーブル２１４ｂ，２１４ｃ，・・・に関しても同様である。
【００６７】
測定実績テーブル２１４ａには、項番を示す項目、検索条件を示す項目、多重実行数を示す項目、依頼時刻を示す項目、応答時刻を示す項目および処理時間を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、Ｓｅｌｅｃｔ文“Ｐ０１”を用いて検索を実行した際の測定結果を示す。
【００６８】
項番を示す項目、検索条件を示す項目、多重実行数を示す項目、依頼時刻を示す項目、応答時刻を示す項目および処理時間を示す項目は、図７で示した検索実績テーブル１１３ａの各項目に対応する。
【００６９】
測定実績テーブル２１４ａには、例えば、項番が“１”、検索条件（１番目）が“都道府県＝‘東京都’”、検索条件（２番目）が“年月日＝‘１００１１５’”、検索条件（３番目）が“市区町村＝‘港区’”、多重実行数が“５”、依頼時刻が“９：１０：０１．５１０”、応答時刻が“９：１０：０２．０２５”、処理時間が“０．５１５”という情報が設定される。
【００７０】
このレコードは、検索実績テーブル１１３ａの項番“１”で示されるＳｅｌｅｃｔ文に対応付けて生成されたＳｅｌｅｃｔ文を示すものである。本例では、検索条件が合計３つ存在するため、その順列組み合わせの数“６”から、実績ログで取得済みのレコード“１”を引いた５個のＳｅｌｅｃｔ文を生成することができる。測定実績テーブル２１４ａの項番“２”〜“５”で示されるＳｅｌｅｃｔ文も検索実績テーブル１１３ａの項番“１”で示されるＳｅｌｅｃｔ文に対応付けて生成されたＳｅｌｅｃｔ文を示すものである。
【００７１】
なお、測定記録部２６０で、実績ログとして取得済みのＳｅｌｅｃｔ文も含めて全て測定を行ってもよい。ただし、チューニング対象とするＳｅｌｅｃｔ文が多く存在する場合には、実績ログで取得済みのものを省略する方が、測定による処理負荷の軽減の観点からは望ましい。
【００７２】
図９は、ログ集計テーブルのデータ構造例を示す図である。ログ集計テーブル２１５−１ａ，２１５−１ｂ，２１５−１ｃ，・・・は、変換ルール生成部２８０により生成され、集計情報記憶部２１５に格納される。ログ集計テーブル２１５−１ａは、識別番号“Ｐ０１”に対応するＳｅｌｅｃｔ文の実績ログと測定ログとの集計情報である。ログ集計テーブル２１５−１ｂは、識別番号“Ｐ０２”に対応するＳｅｌｅｃｔ文の実績ログと測定ログとの集計情報である。ログ集計テーブル２１５−１ｃは、識別番号“Ｐ０３”に対応するＳｅｌｅｃｔ文の実績ログと測定ログとの集計情報である。以下では、ログ集計テーブル２１５−１ａの構造について説明するが、ログ集計テーブル２１５−１ｂ，２１５−１ｃ，・・・に関しても同様である。
【００７３】
ログ集計テーブル２１５−１ａには、項番を示す項目、検索条件を示す項目、多重実行数を示す項目、処理時間を示す項目が設けられている。各項目の横方向に並べられた情報同士が関連付けられて、検索実績テーブル１１３ａと測定実績テーブル２１４ａとの集計結果を示す。
【００７４】
項番を示す項目、検索条件を示す項目および多重実行数を示す項目は、図７で示した検索実績テーブル１１３ａの各項目に対応する。ただし、検索条件を示す項目には一般的な（具体的な値が入力されていない）条件式が設定される。処理時間を示す項目には、業務時間中の各時間帯における処理時間の集計結果が設定される。処理時間は、最小処理時間（最小を示す項目）、平均処理時間（平均を示す項目）および最大処理時間（最大を示す項目）に区分して集計される。最小処理時間には、該当の時間帯における該当の検索条件および多重度での処理時間の最小値が設定される。平均処理時間には、該当の時間帯における該当の検索条件および多重度での処理時間の平均値が設定される。最大処理時間には、該当の時間帯における該当の検索条件および多重度での処理時間の最大値が設定される。
【００７５】
ログ集計テーブル２１５−１ａには、例えば、項番が“１”、検索条件（１番目）が“年月日＝‘ｙｙｍｍｄｄ’”、検索条件（２番目）が“都道府県＝‘ｃｃｃ’”、検索条件（３番目）が“市区町村＝‘ｃｃｃ’”、多重実行数が“１”、処理時間（９時台）での最小処理時間が“０．３０１”秒、平均処理時間が“０．３６７”秒、最大処理時間が“０．３９５”という情報が設定される。
【００７６】
これは、識別番号“Ｐ０１”に対応するＳｅｌｅｃｔ文について検索条件が“年月日＝‘ｙｙｍｍｄｄ’”、“都道府県＝‘ｃｃｃ’”、“市区町村＝‘ｃｃｃ’”の順で実行され、その際の多重実行数が“１”、かつ、９時台の時間帯での最小処理時間が“０．３０１”、平均処理時間が“０．３６７”、最大処理時間が“０．３９５”であったことを示している。
【００７７】
なお、１０時台以降の時間帯についても９時台の場合と同様にして設定される。
このように、ログ集計テーブル２１５−１ａには、各検索条件につき各多重度、各時間帯の処理時間を集計した情報が設定される。
【００７８】
図１０は、優先度テーブルのデータ構造例を示す図である。優先度テーブル２１５−２ａ，２１５−２ｂ，２１５−２ｃ，・・・は、変換ルール生成部２８０により生成され、集計情報記憶部２１５に格納される。優先度テーブル２１５−２ａは、識別番号“Ｐ０１”に対応するＳｅｌｅｃｔ文における“９時台”の各検索条件の優先度を示す。優先度テーブル２１５−２ｂは、識別番号“Ｐ０１”に対応するＳｅｌｅｃｔ文における“１０時台”の各検索条件の優先度を示す。優先度テーブル２１５−２ｃは、識別番号“Ｐ０１”に対応するＳｅｌｅｃｔ文における“１１時台”の各検索条件の優先度を示す。以下では、優先度テーブル２１５−２ａの構造について説明するが、優先度テーブル２１５−２ｂ，２１５−２ｃ，・・・に関しても同様である。
【００７９】
優先度テーブル２１５−２ａには、項番を示す項目、検索条件を示す項目、多重実行数ごとの優先度を示す項目および合成優先度を示す項目が設けられている。各項目の横方向に並べられた情報同士が関連付けられて、１つの検索条件の多重実行数ごとの優先度を示す。
【００８０】
項番を示す項目および検索条件を示す項目は、図７で示した検索実績テーブル１１３ａの各項目に対応する。ただし、検索条件を示す項目には一般的な条件式が設定される。多重実行数ごとの優先度を示す項目には、該当の検索条件の優先度が多重実行数ごとに設定される。優先度は数値で表すことができる。例えば、本例では３つの条件式の順列で６通りの検索条件を生成することができるので、優位なものから昇順に１〜６の優先度が設定されるものとする。合成優先度を示す項目には、検索条件ごとの優先度の平均値が設定される。ただし、合成優先度は、検索条件ごとの優先度の総和等、他の方法によって表すこともできる。
【００８１】
ここで、変換ルール生成部２８０は、ログ集計テーブル２１５−１ａを参照して、次のように優先度を特定できる。
（判定１）ログ集計テーブル２１５−１ａに含まれる多重実行数が同一の検索条件のうち、平均処理時間が小さいものほど優位とする。
【００８２】
（判定２）（判定１）において平均処理時間が同一のものがある場合、それらのうち最小処理時間が小さいものほど優位とする。
（判定３）（判定２）において最小処理時間も同一のものがある場合、それらのうち最大処理時間が小さいものほど優位とする。
【００８３】
なお、上記（判定２）、（判定３）の条件は逆であってもよい。すなわち、平均処理時間が同一である場合に、最大処理時間の大小の比較を行った後、最大処理時間が同一である場合に、最小処理時間の大小の比較を行ってもよい。
【００８４】
優先度テーブル２１５−２ａには、例えば、項番が“１”、検索条件（１番目）が“年月日＝‘ｙｙｍｍｄｄ’”、検索条件（２番目）が“都道府県＝‘ｃｃｃ’”、検索条件（３番目）が“市区町村＝‘ｃｃｃ’”、多重実行数ごとの優先度が、多重実行数１に対して“４”、多重実行数２に対して“５”、多重実行数３に対して“６”，・・・，多重実行数ｎに対して“６”、合成優先度が“４．５”という情報が設定される。
【００８５】
これは、条件式が該当の順序で検索に用いられる場合の多重実行数“１”〜“ｎ”の場合における優先度を示している。合成優先度は多重実行数“１”〜“ｎ”の優先度の総和を“ｎ”で除した商である。合成優先度は他の検索条件に対して、多重実行数を加味した総合的な優先度を示す。
【００８６】
優先度テーブル２１５−２ａでは、項番“２”のレコードで示される検索条件の合成優先度が“２”と最も高い。一方、項番“５”のレコードで示される検索条件の合成優先度が“５”と最も低い。変換ルール生成部２８０は、合成優先度が最も高い検索条件を識別番号“Ｐ０１”に対応するＳｅｌｅｃｔ文における“９時台”の変換ルールと特定できる。
【００８７】
図１１は、変換テーブルのデータ構造例を示す図である。変換テーブル１１４ａには、変換ルール生成部２８０により生成された変換ルールが設定される。変換テーブル１１４ａは、変換ルール記憶部１１４に格納される。変換テーブル１１４ａには、識別番号を示す項目、変換ルールを示す項目および切替フラグを示す項目が設けられている。各項目の横方向に並べられた情報同士が関連付けられて、１つのＳｅｌｅｃｔ文に関する変換ルールを示す。
【００８８】
識別情報を示す項目は、図５で示したＳｅｌｅｃｔ文定義テーブル１１２ａの同一名称の項目に対応する。変換ルールを示す項目には、変換ルールが設定される。切替フラグを示す項目には、時間帯ごとに対応する変換ルールによる変換を行うか否かを示すフラグが設定される。フラグは、“１”が変換を行う旨を示し、“０”が変換を行わない旨を示す。
【００８９】
変換テーブル１１４ａには、例えば、識別番号が“Ｐ０１”、変換ルール（１番目）が“都道府県＝‘ｃｃｃ’”、変換ルール（２番目）が“年月日＝‘ｙｙｍｍｄｄ’”、変換ルール（３番目）が“市区町村＝‘ｃｃｃ’”、切替フラグ（９時台）が“１”、切替フラグ（１０時台）が“１”、切替フラグ（１１時台）が“０”、・・・という情報が設定される。
【００９０】
これは、識別番号“Ｐ０１”に対応するＳｅｌｅｃｔ文について、絞込を行う順序を９時台、１０時台では、“都道府県＝‘ｃｃｃ’”、“年月日＝‘ｙｙｍｍｄｄ’”、“市区町村＝‘ｃｃｃ’”に変換することを示している。一方、１１時台には、当変換ルールによる変換は行わないことを示している。
【００９１】
また、変換テーブル１１４ａには、識別番号“Ｐ０１”のＳｅｌｅｃｔ文に対する変換ルールとして、“都道府県＝‘ｃｃｃ’”、“市区町村＝‘ｃｃｃ’”、“年月日＝‘ｙｙｍｍｄｄ’”の順とし、切替フラグが９時台、１０時台、１１時台それぞれについて、“０”、“０”、“１”である変換ルールが設定されている。これは、当変換ルールが９時台、１０時代には適用されず、１１時台には適用されることを示している。
【００９２】
ＳＱＬ文変換部１５０は、変換ルール記憶部１１４に記憶された変換テーブル１１４ａを参照して、各時間帯につき最短の処理時間で検索を行うことが可能な変換ルールを取得することができる。
【００９３】
なお、変換ルールの取得対象（すなわち、チューニング対象）とする検索処理は、例えばシステムの管理者によって予め業務サーバ１００，２００に設定される。この場合、業務サーバ２００は、設定された検索処理に対してのみ検索パターンを生成して、検索パターンによる測定記録を行えばよい。ただし、全ての検索処理に対して、変換ルールを取得してもよい。
【００９４】
次に、以上のような構成を備える業務サーバ１００，２００の処理手順を説明する。
まず、業務サーバ１００による実績処理時間計測処理の手順を説明する。
図１２は、実績処理時間計測処理を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
【００９５】
［ステップＳ１１］業務処理部１２０は、端末装置２１，２２，２３から業務処理を受け付ける。業務処理部１２０は、該当の業務処理に含まれる検索処理に対してデータベース１１１に記憶されたデータを検索するためのＳＱＬ文（Ｓｅｌｅｃｔ文）を生成し、ＳＱＬ文変換部１５０に出力する。
【００９６】
［ステップＳ１２］ＳＱＬ文変換部１５０は、業務処理部１２０から取得したＳｅｌｅｃｔ文の変換処理を実行する。ＳＱＬ文変換部１５０は、変換後のＳｅｌｅｃｔ文をＳＱＬ文通知部１６０に出力する。
【００９７】
［ステップＳ１３］ＳＱＬ文通知部１６０は、ＳＱＬ文変換部１５０から取得したＳｅｌｅｃｔ文を業務サーバ２００に送信する。また、ＳＱＬ文通知部１６０は、Ｓｅｌｅｃｔ文を応答実績記録部１７０に出力する。
【００９８】
［ステップＳ１４］応答実績記録部１７０は、ＳＱＬ文通知部１６０からＳｅｌｅｃｔ文を取得すると、ＤＢ処理部１４０による多重実行数を“＋１”する。また、応答実績記録部１７０は、取得したＳｅｌｅｃｔ文をＤＢ処理部１４０に出力する。このとき、応答実績記録部１７０は、実績ログ記憶部１１３の検索実績テーブル１１３ａ，１１３ｂ，１１３ｃ，・・・に、取得したＳｅｌｅｃｔ文に対する検索実績レコードを登録する。その際、応答実績記録部１７０は、多重実行数やＤＢ処理部１４０への依頼時刻を該当の検索実績レコードに設定しておく。
【００９９】
［ステップＳ１５］応答実績記録部１７０は、ＤＢ処理部１４０からＳｅｌｅｃｔ文による検索結果を取得する。すると、応答実績記録部１７０は、ＤＢ処理部１４０による多重実行数を“−１”する。応答実績記録部１７０は、取得した応答結果を業務処理部１２０に出力する。
【０１００】
［ステップＳ１６］応答実績記録部１７０は、応答結果を受け付けた時間を検索実績テーブル１１３ａ，１１３ｂ，１１３ｃ，・・・のステップＳ１４で登録したレコードの応答時刻を示す項目に設定する。更に、応答実績記録部１７０は、応答時刻と依頼時刻との差をとることで、処理時間を算出し、該当の検索実績レコードに設定する。
【０１０１】
このように、業務処理部１２０は、業務処理を受け付けるとその業務処理に対応する検索用のＳｅｌｅｃｔ文を生成する。そして、ＳＱＬ文変換部１５０は検索用のＳｅｌｅｃｔ文の変換処理を行う。ＳＱＬ文通知部１６０は、変換後のＳｅｌｅｃｔ文を業務サーバ２００に通知する。また、応答実績記録部１７０はそのＳｅｌｅｃｔ文をＤＢ処理部１４０に出力し、その処理応答等に基づいて実績ログを取得する。
【０１０２】
次に、業務サーバ２００による処理時間計測処理の手順を説明する。
図１３は、処理時間計測処理を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１０３】
［ステップＳ２１］ＳＱＬ文受信部２４０は、ＳＱＬ文通知部１６０からＳｅｌｅｃｔ文を受信する。
［ステップＳ２２］ＳＱＬ文受信部２４０は、受信したＳｅｌｅｃｔ文を検索履歴記憶部２１３に記憶された検索ログ２１３ａに登録する。
【０１０４】
［ステップＳ２３］検索パターン生成部２５０は、検索履歴記憶部２１３を参照して、検索ログ２１３ａに新たなＳｅｌｅｃｔ文が追加されたことを検知すると、該当のＳｅｌｅｃｔ文の内容を取得する。検索パターン生成部２５０は、そのＳｅｌｅｃｔ文がチューニング対象であると検知する。ここで、チューニング対象とするＳｅｌｅｃｔ文は、そのＳｅｌｅｃｔ文に含まれる条件と共に予め検索パターン生成部２５０に設定される。検索パターン生成部２５０は、検索ログ２１３ａに追加されたＳｅｌｅｃｔ文に含まれる条件を参照して、そのＳｅｌｅｃｔ文がチューニング対象であるか否かを検知できる。ここでは、検索ログ２１３ａから検索処理Ｔ４を検知したとする。
【０１０５】
［ステップＳ２４］検索パターン生成部２５０は、検索ログ２１３ａに基づいて、ステップＳ２３で取得したＳｅｌｅｃｔ文が記録された時間よりも前の所定期間（例えば、０．５秒間）に実行された他のＳｅｌｅｃｔ文を取得する。所定期間を０．５秒間とすると、検索ログ２１３ａの例では、検索処理Ｔ１〜Ｔ３を取得できる。
【０１０６】
［ステップＳ２５］検索パターン生成部２５０は、ステップＳ２３で取得した新たなＳｅｌｅｃｔ文に含まれるＷｈｅｒｅ句を抽出する。
［ステップＳ２６］検索パターン生成部２５０は、ステップＳ２５で抽出したＷｈｅｒｅ句以外の全パターン（検索条件の順序のパターン）のＷｈｅｒｅ句について以下のステップＳ２７〜Ｓ２９を繰り返し実行する。
【０１０７】
［ステップＳ２７］検索パターン生成部２５０は、検索ログ２１３ａを参照して、検索ログ２１３ａに記録された時間差を再現して、測定対象のＳｅｌｅｃｔ文とその他のＳｅｌｅｃｔ文とを測定記録部２６０に順次出力する。
【０１０８】
検索ログ２１３ａの例では、検索処理Ｔ４に対して検索パターンの変更を行う（変更後のものをＴ４’で表す）場合、まず、検索処理Ｔ１に対応するＳｅｌｅｃｔ文を出力する。次いで、検索処理Ｔ１，Ｔ２の時間差分の時間（０．２８９秒）が経過した後に、検索処理Ｔ２に対応するＳｅｌｅｃｔ文を出力する。次いで、検索処理Ｔ２，Ｔ３の時間差分の時間（０．０３２秒）が経過した後に、検索処理Ｔ３に対応するＳｅｌｅｃｔ文を出力する。そして、検索処理Ｔ３，Ｔ４の時間差分の時間（０．１７９秒）が経過した後に、検索処理Ｔ４’に対応するＳｅｌｅｃｔ文を出力する。
【０１０９】
測定記録部２６０は、検索パターン生成部２５０からＳｅｌｅｃｔ文を取得すると、ＤＢ処理部２３０による多重実行数を“＋１”する。また、測定記録部２６０は、取得したＳｅｌｅｃｔ文をＤＢ処理部２３０に出力する。このとき、測定記録部２６０は、測定ログ記憶部２１４に記憶された測定実績テーブル２１４ａ，２１４ｂ，２１４ｃ，・・・に、取得したＳｅｌｅｃｔ文に対する測定実績レコードを登録する。その際、測定記録部２６０は、多重実行数やＤＢ処理部２３０への依頼時刻を該当の測定実績レコードに設定しておく。
【０１１０】
［ステップＳ２８］測定記録部２６０は、ＤＢ処理部２３０からＳｅｌｅｃｔ文による検索結果を取得する。すると、測定記録部２６０は、ＤＢ処理部２３０による多重実行数を“−１”する。
【０１１１】
［ステップＳ２９］測定記録部２６０は、応答結果を受け付けた時間を測定実績テーブル２１４ａ，２１４ｂ，２１４ｃ，・・・のステップＳ２７で登録したレコードの応答時刻を示す項目に設定する。更に、測定記録部２６０は、応答時刻と依頼時刻との差をとることで、処理時間を算出し、該当の測定実績レコードに設定する。
【０１１２】
［ステップＳ３０］検索パターン生成部２５０は、測定対象のＳｅｌｅｃｔ文について、全ての検索パターンを測定済みであるか否かを判定する。測定済みである場合、処理をステップＳ３１に進める。未測定のものがある場合、処理をステップＳ２６に進める。
【０１１３】
［ステップＳ３１］検索パターン生成部２５０は、検索ログ２１３ａを参照して、測定中に新たに追加されたログに測定を行うべきＳｅｌｅｃｔ文が存在するか否かを判定する。存在する場合、処理をステップＳ２３に進める。存在しない場合、処理を完了する。
【０１１４】
このようにして、検索パターン生成部２５０は、検索ログ２１３ａに基づいて測定対象とするＳｅｌｅｃｔ文につき検索パターンを変更したＳｅｌｅｃｔ文を生成する。そして、検索パターン生成部２５０は、検索ログ２１３ａにおける実行状況を再現するように他のＳｅｌｅｃｔ文および生成したＳｅｌｅｃｔ文を測定記録部２６０に順次出力する。測定記録部２６０は、検索パターン生成部２５０から取得したＳｅｌｅｃｔ文をＤＢ処理部２３０に順次出力して、多重度を再現しつつ、処理時間の測定を行う。
【０１１５】
なお、上記の例では、予め設定されたチューニング対象のＳｅｌｅｃｔ文についての測定を行う場合を示したが、全てのＳｅｌｅｃｔ文をチューニング対象としてもよい。
次に、業務サーバ２００による変換情報生成処理の手順を説明する。上述の実績処理時間計測処理および処理時間計測処理は、業務時間中に逐次実行される処理であるが、以下の変換情報生成処理は、例えば１日の業務完了後に実行することができる。
【０１１６】
図１４は、変換情報生成処理を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
［ステップＳ４１］変換ルール生成部２８０は、チューニング対象とする検索処理について、実績ログ記憶部１１３に記憶された検索実績テーブル１１３ａ，１１３ｂ，１１３ｃ，・・・の内容をログ通信部２７０等を介して取得する。同様に、変換ルール生成部２８０は、測定ログ記憶部２１４に記憶された測定実績テーブル２１４ａ，２１４ｂ，２１４ｃ，・・・の内容を取得する。
【０１１７】
［ステップＳ４２］変換ルール生成部２８０は、ステップＳ４１で取得した内容に基づいて、ログ集計テーブル２１５−１ａ，２１５−１ｂ，２１５−１ｃ，・・・を生成し、集計情報記憶部２１５に格納する。例えば、検索実績テーブル１１３ａおよび測定実績テーブル２１４ａにおいて、条件式が“年月日＝‘ｙｙｍｍｄｄ’”、“都道府県＝‘ｃｃｃ’”、“市区町村＝‘ｃｃｃ’”の順序となっており、かつ、多重実行数が“１”である検索条件を時間帯ごと（１時間区切り）に集計することで、ログ集計テーブル２１５−１ａの項番“１”に対応するレコードを得ることができる。
【０１１８】
［ステップＳ４３］変換ルール生成部２８０は、ログ集計テーブル２１５−１ａ，２１５−１ｂ，２１５−１ｃ，・・・に基づいて、優先度テーブル２１５−２ａ，２１５−２ｂ，２１５−２ｃ，・・・を生成し、集計情報記憶部２１５に格納する。具体的な優先度の判定方法は、図１０で説明した通りである。
【０１１９】
［ステップＳ４４］変換ルール生成部２８０は、時間帯ごと、Ｓｅｌｅｃｔ文ごとに変換ルールを特定する。具体的には、優先度テーブル２１５−２ａ，２１５−２ｂ，２１５−２ｃ，・・・を参照して、各テーブルから合成優先度が最も高いものを対応する時間帯、Ｓｅｌｅｃｔ文の変換ルールと特定する。
【０１２０】
このようにして、変換ルール生成部２８０は優先度テーブル２１５−２ａ，２１５−２ｂ，２１５−２ｃ，・・・に基づいて、変換ルールを特定する。
その後、ログ通信部２７０は、変換ルール生成部２８０が特定した変換ルールを業務サーバ１００に送信する。ログ通信部１８０は、ログ通信部２７０から受信した変換ルールを各Ｓｅｌｅｃｔ文に対応付けて変換ルール記憶部１１４に変換テーブル１１４ａとして格納する。
【０１２１】
ここで、変換テーブル１１４ａにつき既存の変換ルールがある場合を考慮して、次のような更新を行うことが考えられる。
すなわち、同一のＳｅｌｅｃｔ文、同一の時間帯の既存の変換ルールに対して新たな変換ルールを設定する場合、既存の変換ルールの切替フラグを“１”から“０”に設定する。なお、切替フラグが全て“０”となった変換テーブル１１４ａ上のレコードは削除することができる。
【０１２２】
また、あるＳｅｌｅｃｔ文、時間帯で、既存の変換ルールのみが存在する場合には、その設定（切替フラグ“１”）を維持する。
また、あるＳｅｌｅｃｔ文につき既存の変換ルールが存在しておらず、新たな変換ルールを登録する場合には、該当の変換ルールに対応するレコードを変換テーブル１１４ａ上に登録する。
【０１２３】
業務完了後の時間帯に変換情報生成処理を行っておけば、翌日の各業務時間帯において対応する変換ルールを用いて検索処理を実行できる。
次に、業務サーバ１００によるＳｅｌｅｃｔ文変換処理の手順を説明する。当変換処理は、図１２のステップＳ１２で示した処理に相当するものである。
【０１２４】
図１５は、Ｓｅｌｅｃｔ文変換処理を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］ＳＱＬ文変換部１５０は、業務処理部１２０から取得したＳｅｌｅｃｔ文に含まれるＷｈｅｒｅ句を抽出する。ＳＱＬ文変換部１５０は、ＳＱＬ定義情報記憶部１１２に記憶されたＳｅｌｅｃｔ文定義テーブル１１２ａを参照して、抽出したＷｈｅｒｅ句を含むＳｅｌｅｃｔ文の識別番号を特定する。
【０１２５】
［ステップＳ５２］ＳＱＬ文変換部１５０は、現在時刻を特定する。現在時刻は、例えば、ＯＳで管理されているシステム時間から特定できる。
［ステップＳ５３］ＳＱＬ文変換部１５０は、変換ルール記憶部１１４に記憶された変換テーブル１１４ａを参照して、該当のＳｅｌｅｃｔ文で現在時刻が属する時間帯につき切替フラグ“１”の変換ルールが存在するか否かを判定する。存在する場合、処理をステップＳ５４に進める。存在しない場合、処理をステップＳ５６に進める。
【０１２６】
［ステップＳ５４］ＳＱＬ文変換部１５０は、変換テーブル１１４ａに登録された変換ルールに基づいて、Ｗｈｅｒｅ句による検索順序を変換し、新たなＳｅｌｅｃｔ文を生成する。
【０１２７】
［ステップＳ５５］ＳＱＬ文変換部１５０は、生成したＳｅｌｅｃｔ文をＳＱＬ文通知部１６０に出力する。そして、処理を完了する。
［ステップＳ５６］ＳＱＬ文変換部１５０は、デフォルトのＷｈｅｒｅ句のＳｅｌｅｃｔ文（Ｓｅｌｅｃｔ文定義テーブル１１２ａに設定された順序のＳｅｌｅｃｔ文）をＳＱＬ文通知部１６０に出力する。そして、処理を完了する。
【０１２８】
このようにして、ＳＱＬ文変換部１５０は、Ｓｅｌｅｃｔ文による検索の絞込順序を変更する。
これにより、実際に実行された検索履歴に基づいて絞込の順序を決定することができる。このため、現実の業務により実行される検索の処理状況に即したより効率的な検索処理が可能となる。
【０１２９】
例えば、ある業務処理について複数の検索処理を伴う場合、そのうちの１つの検索処理のチューニングを行う際には、他の検索処理の実行による影響も考慮することが望ましい。そこで、上述のように、現実に実行された検索処理のログに基づいて処理時間を測定することで、そのような影響を考慮して、変換ルールを適切に特定することができる。
【０１３０】
更に、運用時間中に測定期間を複数設けて、時間帯ごとに最適な変換ルールを特定する。このため、時々刻々と変化し得るデータの量やデータの種別に応じた適切な変換ルールを取得することができる。
【０１３１】
また、処理時間を測定するに当たって、検索履歴を取得すればよいので、各検索処理間の同時実行関係や、時間帯ごとの業務処理の傾向等を事前に調査する必要がない。このため、適切な変換ルールを容易に取得することができる。
【０１３２】
なお、業務サーバ１００，２００の運用系・待機系の役割が切り替わった際には、上記各処理の実行主体も切り替えることができる。すなわち、業務サーバ２００が運用系となった場合には、業務サーバ１００が処理時間の計測を行い、変換ルールを生成することができる。
【０１３３】
［第３の実施の形態］
次に、第３の実施の形態について説明する。前述の第２の実施の形態との相違点を主に説明し、同様の事項に関しては説明を省略する。
【０１３４】
第２の実施の形態では、業務サーバ１００，２００のうち、待機系となるサーバで異なる検索パターンで処理時間の計測を行って変換ルールを生成する場合を例示した。
一方、第３の実施の形態では、サーバ単体で第２の実施の形態と同様の機能を実現するための構成について説明する。
【０１３５】
図１６は、第３の実施の形態に係る業務サーバの機能構成を示す図である。業務サーバ１００ａは、データベース１１１、ＳＱＬ定義情報記憶部１１２、実績ログ記憶部１１３、変換ルール記憶部１１４、検索履歴記憶部１１５、測定ログ記憶部１１６、集計情報記憶部１１７、業務処理部１２０、ＤＢ処理部１４０、ＳＱＬ文変換部１５０、ＳＱＬ文記録部１６０ａ、応答実績記録部１７０、検索パターン生成部１７０ａ、測定記録部１８０ａおよび変換ルール生成部１９０を有する。これらの機能は、ＣＰＵ１０１が所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアにより実現してもよい。
【０１３６】
ここで、データベース１１１、ＳＱＬ定義情報記憶部１１２、実績ログ記憶部１１３、変換ルール記憶部１１４、業務処理部１２０、ＤＢ処理部１４０、ＳＱＬ文変換部１５０および応答実績記録部１７０については、図４で同一の符号を付して説明した構成と同一であるため説明を省略する。
【０１３７】
検索履歴記憶部１１５は、検索履歴記憶部２１３に対応する。検索履歴記憶部１１５は、ＳＱＬ文記録部１６０ａが取得したＳｅｌｅｃｔ文の履歴を記憶する。この履歴は、検索ログ２１３ａに相当するものである。
【０１３８】
測定ログ記憶部１１６は、測定ログ記憶部２１４に対応する。測定ログ記憶部１１６は、測定記録部１８０ａが測定した検索処理時間の記録である測定ログを記憶する。測定ログは、測定実績テーブル２１４ａ，２１４ｂ，２１４ｃ，・・・に相当するものである。
【０１３９】
集計情報記憶部１１７は、集計情報記憶部２１５に対応する。集計情報記憶部１１７は、変換ルール生成部１９０が実績ログと測定ログとの集計処理のために生成する集計情報等を記憶する。集計情報等とは、ログ集計テーブル２１５−１ａ，２１５−１ｂ，２１５−１ｃ，・・・および優先度テーブル２１５−２ａ，２１５−２ｂ，２１５−２ｃ，・・・に相当するものである。
【０１４０】
ＳＱＬ文記録部１６０ａは、ＳＱＬ文通知部１６０に対応する。ただし、ＳＱＬ文記録部１６０ａは、ＳＱＬ文変換部１５０から取得したＳｅｌｅｃｔ文を検索履歴記憶部１１５に格納する。
【０１４１】
検索パターン生成部１７０ａは、検索パターン生成部２５０に対応する。検索パターン生成部１７０ａは、検索履歴記憶部１１５に新たな検索履歴が格納されると、該当のＳｅｌｅｃｔ文に含まれる条件による絞込の順序を変更した検索パターンによるＳｅｌｅｃｔ文を生成する。検索パターン生成部１７０ａは、生成したＳｅｌｅｃｔ文を測定記録部１８０ａに出力する。また、検索パターン生成部１７０ａは、検索履歴記憶部１１５を参照して、そのＳｅｌｅｃｔ文と共に実行されていた他のＳｅｌｅｃｔ文を測定記録部１８０ａに出力する。検索パターン生成部１７０ａは、測定記録部１８０ａにおいて、ある検索パターンのＳｅｌｅｃｔ文の測定が完了すると、次の検索パターンのＳｅｌｅｃｔ文を生成して測定記録部１８０ａに出力する。
【０１４２】
測定記録部１８０ａは、測定記録部２６０に対応する。測定記録部１８０ａは、検索パターン生成部１７０ａから取得したＳｅｌｅｃｔ文をＤＢ処理部１４０に出力する。測定記録部１８０ａは、多重実行数と共に、チューニング対象のＳｅｌｅｃｔ文について複数の検索パターンでの処理時間を測定ログとして記録し、測定ログ記憶部１１６に格納する。
【０１４３】
変換ルール生成部１９０は、変換ルール生成部２８０に対応する。変換ルール生成部１９０は、実績ログ記憶部１１３に記憶された実績ログと、測定ログ記憶部１１６に記憶された測定ログと、に基づいてチューニング対象のＳｅｌｅｃｔ文についての各絞込順序での処理時間を集計し、集計情報を生成する。変換ルール生成部１９０は、生成した集計情報に基づいて、該当のＳｅｌｅｃｔ文の変換ルールを取得し、変換ルール記憶部１１４に格納する。
【０１４４】
このような構成とすることで、業務サーバ１００ａで変換ルールを取得することが可能である。処理の手順に関しては、第２の実施の形態で示した各処理と同様であるため説明を省略する。
【０１４５】
これにより、第２の実施の形態と同様の効果を得ることができる。
また、当機能の実現のために複数台のサーバの連携による環境構築が不要であるので、第２の実施の形態の構成に比べて導入を容易とすることができる。
【０１４６】
以上、本発明の検索支援プログラム、検索支援装置および検索支援方法を図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１４７】
１  コンピュータ
１ａ  検索手段
１ｂ  検索履歴取得手段
１ｃ  検索履歴記憶手段
１ｄ  測定手段
１ｅ  測定結果記憶手段
１ｆ  変換ルール出力手段
１ｇ  変換ルール記憶手段
１ｈ  検索条件変換手段
２  データベース
３  検索履歴
３ａ  再実行部
【図１】
2011159015.tif 000003
【図２】
2011159015.tif 000004
【図３】
2011159015.tif 000005
【図４】
2011159015.tif 000006
【図５】
2011159015.tif 000007
【図６】
2011159015.tif 000008
【図７】
2011159015.tif 000009
【図８】
2011159015.tif 000010
【図９】
2011159015.tif 000011
【図１０】
2011159015.tif 000012
【図１１】
2011159015.tif 000013
【図１２】
2011159015.tif 000014
【図１３】
2011159015.tif 000015
【図１４】
2011159015.tif 000016
【図１５】
2011159015.tif 000017
【図１６】
2011159015.tif 000018