JP2011159015A - 検索支援プログラム、検索支援装置および検索支援方法 - Google Patents

検索支援プログラム、検索支援装置および検索支援方法 Download PDF

Info

Publication number
JP2011159015A
JP2011159015A JP2010018701A JP2010018701A JP2011159015A JP 2011159015 A JP2011159015 A JP 2011159015A JP 2010018701 A JP2010018701 A JP 2010018701A JP 2010018701 A JP2010018701 A JP 2010018701A JP 2011159015 A JP2011159015 A JP 2011159015A
Authority
JP
Japan
Prior art keywords
search
unit
history
conversion rule
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010018701A
Other languages
English (en)
Inventor
Yoshiaki Miyoshi
義明 三好
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Frontech Ltd
Original Assignee
Fujitsu Frontech Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Frontech Ltd filed Critical Fujitsu Frontech Ltd
Priority to JP2010018701A priority Critical patent/JP2011159015A/ja
Publication of JP2011159015A publication Critical patent/JP2011159015A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】現実の運用状況に即した効率的な検索処理を可能とすること。
【解決手段】検索履歴取得手段1bは、検索手段1aによる検索履歴を取得し、検索履歴記憶手段1cに格納する。測定手段1dは、検索履歴に複数の検索条件を含む第1の検索処理の内容が追加されると、その検索処理につき絞込の順序を変更した複数の第2の検索処理を生成する。そして、検索履歴に基づいて、第2の検索処理それぞれと、第1の検索処理が実行された際に実行中であった他の検索処理と、を実行し、第2の検索処理それぞれに要した処理時間を測定結果として取得し、測定結果記憶手段1eに格納する。変換ルール出力手段1fは、その測定結果に基づいて、第2の検索処理それぞれのうち処理時間が最小であるものを特定し、特定した第2の検索処理に含まれる絞込の順序を、検索手段1aによる第1の検索処理による絞込の順序を変換するための条件変換ルールとして出力する。
【選択図】図1

Description

本発明はデータテーブルの検索処理を支援する検索支援プログラム、検索支援装置および検索支援方法に関する。
従来、様々な業務処理システムにおいて多数のデータが取り扱われている。データは、例えば、データベース(DB:DataBase)に格納される。情報処理システムは、データベースにアクセスし、業務処理に応じたデータの読み出しや書き込みを行う。
データベースへのアクセスに際し、所望のデータの検索性能は処理効率の観点から重要である。すなわち、データベースでは指定された条件に合致するデータをより高速に特定することが望まれる。
ここで、データベースでは複数の条件に基づいて、データの検索が行われる。その場合、検索条件を用いる順序によってデータベースの応答性能を改善することが考えられる。例えば、検索条件を入れ替えて生成した複数の実行手順から実行コストの小さい手順を選択する技術がある(例えば、特許文献1,2参照)。
特開平11−003257号公報 特開2001−155018号公報
ところで、業務処理によっては、ある検索処理を実行する際に他の検索処理の実行を伴う場合も多い。その場合、実行中の他の検索処理の実行がチューニング対象の検索処理の実行に影響を及ぼすことがある。
このため、チューニング対象の検索処理を単体で実行して、その応答時間を取得し、検索手順を決定したとしても、現実の業務運用において、その検索手順が必ずしも最適であるとは限らないという問題があった。
本発明はこのような点に鑑みてなされたものであり、現実の運用状況に即した効率的な検索処理を可能とする検索支援プログラム、検索支援装置および検索支援方法を提供することを目的とする。
本発明では上記課題を解決するために、複数の項目を含むデータテーブルから、複数の項目のうち2つ以上の項目に対して与えられた条件に基づき項目ごとに所定の順序で絞込を行って条件に合致するレコードの検索処理を行う検索手段による検索処理を支援する処理をコンピュータに実行させる検索支援プログラムが提供される。この検索支援プログラムを実行するコンピュータは、検索履歴取得手段、測定手段および変換ルール出力手段として機能する。検索履歴取得手段は、検索手段により実行された複数の検索処理の履歴である検索履歴を取得し、取得した検索履歴を検索履歴記憶手段に格納する。測定手段は、検索履歴記憶手段に記憶された検索履歴に複数の所定の検索条件を含む第1の検索処理の内容が追加されると、第1の検索処理につき絞込の順序を変更した複数の第2の検索処理の命令を生成し、検索履歴に基づいて、複数の第2の検索処理それぞれと、第1の検索処理が実行された際に実行中であった1つ以上の他の検索処理と、を実行して、複数の第2の検索処理それぞれに要した処理時間を測定結果として取得し、取得した測定結果を測定結果記憶手段に格納する。変換ルール出力手段は、測定結果記憶手段に記憶された測定結果に基づいて、複数の第2の検索処理それぞれのうち処理時間が最小であるものを特定し、特定した第2の検索処理に含まれる絞込の順序を、検索手段による第1の検索処理の実行の際に絞込の順序を変換するための条件変換ルールとして出力する。
また、上記検索支援プログラムを実行するコンピュータと同様の機能を有する検索支援装置が提供される。また、上記検索支援プログラムを実行するコンピュータと同様の処理を行う検索支援方法が提供される。
上記検索支援プログラム、検索支援装置および検索支援方法によれば、現実の運用状況に即した効率的な検索処理が可能となる。
第1の実施の形態に係るコンピュータを示す図である。 第2の実施の形態に係る業務システムの全体構成を示す図である。 業務サーバのハードウェア構成を示す図である。 業務サーバの機能構成を示す図である。 Select文定義テーブルのデータ構造例を示す図である。 検索ログの例を示す図である。 検索実績テーブルのデータ構造例を示す図である。 測定実績テーブルのデータ構造例を示す図である。 ログ集計テーブルのデータ構造例を示す図である。 優先度テーブルのデータ構造例を示す図である。 変換テーブルのデータ構造例を示す図である。 実績処理時間計測処理を示すフローチャートである。 処理時間計測処理を示すフローチャートである。 変換情報生成処理を示すフローチャートである。 Select文変換処理を示すフローチャートである。 第3の実施の形態に係る業務サーバの機能構成を示す図である。
以下、本実施の形態を図面を参照して詳細に説明する。
[第1の実施の形態]
図1は第1の実施の形態に係るコンピュータを示す図である。コンピュータ1は、データベース2と接続されている。コンピュータ1は、検索手段1a、検索履歴取得手段1b、検索履歴記憶手段1c、測定手段1d、測定結果記憶手段1e、変換ルール出力手段1f、変換ルール記憶手段1gおよび検索条件変換手段1hを有する。
検索手段1aは、データベース2に格納されたデータテーブルを検索し、検索条件に合致するレコードを抽出する。検索手段1aは、例えば所定の業務アプリケーションによって指示された条件に従って検索を実行する。業務アプリケーションを実行するコンピュータは、コンピュータ1であってもよいし、コンピュータ1とは別個の情報処理装置であってもよい。
検索履歴取得手段1bは、検索手段1aが実行した検索処理の内容を検索履歴3として取得し、検索履歴記憶手段1cに格納する。検索処理の内容は、例えばSQL文で記述される。
検索履歴記憶手段1cは、検索履歴取得手段1bが取得した検索履歴3を記憶する。
測定手段1dは、検索履歴記憶手段1cに記憶された検索履歴3に所定の第1の検索処理の内容が追加されると、第1の検索処理につき絞込の順序を変更した第2の検索処理と、第1の検索処理が実行された際に実行中であった1つ以上の他の検索処理を実行する。測定手段1dは、第2の検索処理に要した時間を測定結果として測定結果記憶手段1eに格納する。
例えば、検索履歴3に含まれる検索処理Dについてチューニングする場合を考える。ここで、検索処理Dは複数の検索条件を有する。より具体的には、検索処理Dは条件d1,d2,d3を有している。条件d1,d2,d3は、データテーブルの各レコードに含まれる複数の項目に対する条件である。検索手段1aは検索処理Dを実行する際に、条件d1,d2,d3の順でレコードの絞込を行ったとする。
測定手段1dは、検索履歴記憶手段1cを参照して検索履歴3に検索処理Dが追加されたことを検知すると、それ以前の所定期間に実行された他の検索処理を検索処理Dを実行した際に実行中であった検索処理として抽出する。所定期間は、個々の検索処理の実行時間に応じて決定することができる。例えば「検索処理Dの実行時以前の0.5秒間」として所定期間を決定できる。この場合、測定手段1dは、検索履歴3から検索処理B,Cを抽出する。ここで、検索履歴3のうち、検索処理Dの実行時以前の所定期間の履歴を再実行部3aとする。
次に、測定手段1dは、検索処理Dに含まれる条件DX,DY,DZの順序を変更する。例えば、条件DY,DZ,DXの順とした検索処理D(1)を生成する。そして、再実行部3aに含まれる検索処理Dを検索処理D(1)に置換した一連の検索処理をデータベース2に対して再実行する。再実行部3aの例では、まず、検索処理Bを実行する。その0.248(=0.789−0.541)秒後に検索処理Cを実行する。更に、その0.211(=1.000−0.789)秒後に検索処理D(1)を実行する。これを、検索処理Dの条件DX,DY,DZが取り得る全ての順列に対する検索処理D(1),D(2),・・・,D(6)について実行する。この例では、検索処理D(1)〜D(6)が第2の検索処理に対応する。ここで、第2の検索処理に第1の検索処理と絞込の順序が同一となるものが含まれていてもよい。
測定手段1dは、各実行結果について処理時間を記録し、測定結果として測定結果記憶手段1eに格納する。
測定結果記憶手段1eは、測定手段1dによって取得された処理時間の測定結果を記憶する。
変換ルール出力手段1fは、所定の測定期間中に測定結果記憶手段1eに格納された測定結果に基づいて、第1の検索処理と同じ結果を得るために必要な処理時間が最小となる絞込の順序を特定する。具体的には、検索処理Dが実行されるたびに取得した検索処理D(1)〜D(6)による測定結果を各処理ごとに集計する。そして、例えば測定期間中の平均処理時間が最小となる条件DX,DY,DZの順序を特定する。変換ルール出力手段1fは、この順序を検索手段1aによる第1の検索処理の実行の際の条件変換ルールとして出力する。ここで、例えば条件DY,DZ,DXの順序を条件変換ルールとして出力したとする。
変換ルール記憶手段1gは、変換ルール出力手段1fが出力した条件変換ルールを記憶する。
検索条件変換手段1hは、検索手段1aが第1の検索処理を実行する際に、変換ルール記憶手段1gを参照する。そして、第1の検索処理に対する条件変換ルールが存在する場合、第1の検索処理の条件を条件変換ルールに基づいて変換する。検索条件変換手段1hは、変換後の絞込順序で検索手段1aに検索処理を実行させる。
コンピュータ1によれば、検索履歴取得手段1bにより、検索手段1aが実行した複数の検索処理の履歴である検索履歴3が取得され、取得された検索履歴3が検索履歴記憶手段1cに格納される。検索履歴記憶手段1cに記憶された検索履歴に複数の所定の検索条件を含む第1の検索処理の内容が追加されると、測定手段1dにより、第1の検索処理につき絞込の順序を変更した複数の第2の検索処理の命令が生成される。そして、検索履歴に基づいて、複数の第2の検索処理それぞれと、第1の検索処理が実行された際に実行中であった1つ以上の他の検索処理と、が実行されて、複数の第2の検索処理それぞれに要した処理時間が測定結果として取得され、測定結果記憶手段1eに格納される。変換ルール出力手段1fにより、測定結果記憶手段1eに記憶された測定結果に基づいて、複数の第2の検索処理それぞれのうち処理時間が最小であるものが特定される。そして、特定された第2の検索処理に含まれる絞込の順序が、検索手段1aによる第1の検索処理の実行の際の絞込の順序を変更するための条件変換ルールとして出力される。
このように、実際に実行された検索履歴に基づいて絞込の順序を決定するので、現実の運用状況に即したより効率的な検索処理が可能となる。
更に、運用時間中に測定期間を複数設けて、時間帯ごとに最適な条件変換ルールを特定してもよい。このようにすれば、時々刻々と変化し得るデータの量やデータの種別に応じた適切な条件変換ルールを取得することができる。
以下の実施の形態では、コンピュータ1を金融機関の窓口における業務システムに適用する場合を例に採り、より具体的に説明する。
[第2の実施の形態]
図2は、第2の実施の形態に係る業務システムの全体構成を示す図である。この業務システムは、金融機関の窓口業務を行うためのものである。この業務システムでは、端末装置21,22,23および業務サーバ100,200がネットワーク20を介して接続されている。
端末装置21,22,23は、オペレータのデータ入力を受け付けるための情報処理装置である。オペレータは、例えば、顧客が記入した帳票の情報(振込や払出等)を端末装置21,22,23に入力する。端末装置21,22,23は、入力情報を業務サーバ100に送信する。
業務サーバ100,200は、端末装置21,22,23から受信する入力情報に基づいて、金融取引を行うための所定の処理を実行する情報処理装置である。業務サーバ100,200はクラスタ構成となっている。業務サーバ100は、運用系のサーバである。業務サーバ200は、待機系のサーバである。すなわち、通常時は業務サーバ100が業務処理を引き受ける。そして、業務サーバ100が障害等でダウンした場合に、業務サーバ200が処理を引き継ぐ。両サーバのデータの不整合を回避するため、業務サーバ200のデータは業務サーバ100のデータと同期される。相手側とのヘルスチェックやデータ同期のために業務サーバ100,200の間は専用のネットワークで接続される。
図3は、業務サーバのハードウェア構成を示す図である。業務サーバ100は、業務サーバ100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108を有する。
CPU101は、業務サーバ100全体を制御する。
ROM102は、業務サーバ100上のBIOS(Basic Input / Output System)のプログラムなどを記憶する。
RAM103は、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションソフトウェア(以下、アプリケーションという)のプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101による処理に必要な各種データを記憶する。
HDD104は、OSのプログラム、アプリケーションのプログラムを記憶する。また、HDD104はCPU101による処理に必要な各種データを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の記憶装置を用いてもよい。
グラフィック処理装置105は、モニタ11と接続される。グラフィック処理装置105は、CPU101からの命令に従って画像をモニタ11の画面に表示させる。
入力インタフェース106は、キーボード12とマウス13と接続される。入力インタフェース106は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。
記録媒体読取装置107は、記録媒体14に記憶されたデータを読み取る読取装置である。例えば、業務サーバ100が有すべき機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。そのようなプログラムは、コンピュータ読み取り可能な記録媒体14に記録して配布することができる。また、ネットワーク20に接続されたプログラム配信サーバ(図示せず)に、記録媒体14からそのプログラムを格納してもよい。この場合、業務サーバ100は、ネットワーク20を介してプログラム配信サーバからプログラムをダウンロードすることができる。
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD:Flexible Disk)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
通信インタフェース108は、ネットワーク20と接続される。通信インタフェース108は、ネットワーク20を介して他の情報処理装置とデータ通信する。
なお、端末装置21,22,23および業務サーバ200に関しても業務サーバ100と同様のハードウェア構成により実現できる。
図4は、業務サーバの機能構成を示す図である。業務サーバ100は、データベース111、SQL定義情報記憶部112、実績ログ記憶部113、変換ルール記憶部114、業務処理部120、同期処理部130、DB処理部140、SQL文変換部150、SQL文通知部160、応答実績記録部170およびログ通信部180を有する。これらの機能は、CPU101が所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアにより実現してもよい。
データベース111は、窓口業務に利用する業務データを記憶する。
SQL定義情報記憶部112は、業務データの検索処理に用いる命令であるSQLを定義したSQL定義情報を記憶する。
実績ログ記憶部113は、業務サーバ100が運用時間中に実行した検索の履歴である実績ログを記憶する。
変換ルール記憶部114は、SQL文の条件変換ルール(以下、単に変換ルールという)を記憶する。変換ルールは、SQL文変換部150によってSQL文の変換に用いられる。
業務処理部120は、端末装置21,22,23から受け付けた入力データに基づいて、窓口業務に必要な処理を実行する。業務処理部120は、データの操作を行う場合、データベース111に記憶された業務データの読み出し・追加・更新等を行うために、DB処理部140に対してSQL文を発行する。具体的には、データの読み出しを行う場合には、検索のためのSelect文を生成する。検索に利用する条件は、Select文中のWhere句によって表すことができる。業務処理部120は、生成したSelect文をSQL文変換部150に出力する。また、業務処理部120は、検索結果を応答実績記録部170を介して取得する。また、業務処理部120は、データの編集(追加・更新等)を行う際には、そのためのSQL文(Insert、Update、Delete等)を同期処理部130に出力する。
同期処理部130は、業務処理部120からデータ編集用のSQL文を受け付けると、そのSQL文を業務サーバ200に通知する。これにより、業務サーバ100におけるデータの更新内容が業務サーバ200のデータにも反映される。また、同期処理部130は、そのSQL文をDB処理部140に出力する。
DB処理部140は、受け付けたSQL文を実行し、データベース111に記憶されたデータの読み出しや編集を実行する。DB処理部140は、Select文によりデータの読み出しを行った場合、読み出し結果を応答実績記録部170に出力する。
SQL文変換部150は、業務処理部120からSelect文を受け付けると、SQL定義情報記憶部112および変換ルール記憶部114を参照して、Select文の変換処理を行う。SQL文変換部150は、変換後のSelect文をSQL文通知部160に出力する。
SQL文通知部160は、SQL文変換部150から受け付けたSelect文を業務サーバ200に通知する。これにより、業務サーバ200は、業務サーバ100で実行されたSelect文を取得できる。SQL文通知部160は、受け付けたSelect文を応答実績記録部170に出力する。
応答実績記録部170は、SQL文通知部160から受け付けたSelect文をDB処理部140に出力する。なお、応答実績記録部170は、DB処理部140に出力した(処理依頼中である)Select文の数(以下、多重実行数という)を計数する。すなわち、応答実績記録部170は、DB処理部140にSelect文を出力すると多重実行数を“+1”する。また、DB処理部140から検索結果の応答を受け付けると、多重実行数を“−1”する。そして、検索結果を業務処理部120に出力する。更に、応答実績記録部170は、Select文をDB処理部140に出力して、応答を受け付けるまでの時間と多重実行数とを実績ログとして取得し、実績ログ記憶部113に格納する。
ログ通信部180は、実績ログ記憶部113に記憶された実績ログの内容を業務サーバ200に送信する。そして、ログ通信部180は、実績ログ等に基づいて生成されたSelect文の変換ルールを業務サーバ200から受信する。ログ通信部180は、受信した変換ルールを変換ルール記憶部114に格納する。
業務サーバ200は、データベース211、SQL定義情報記憶部212、検索履歴記憶部213、測定ログ記憶部214、集計情報記憶部215、同期処理部220、DB処理部230、SQL文受信部240、検索パターン生成部250、ログ通信部270および変換ルール生成部280を有する。これらの機能は、業務サーバ200が備えるCPUが所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアにより実現してもよい。
データベース211は、データベース111に対応する。データベース211は、データベース111と同期される。
SQL定義情報記憶部212は、SQL定義情報記憶部112に対応する。
検索履歴記憶部213は、SQL文受信部240が受信したSelect文の履歴である検索履歴を記憶する。
測定ログ記憶部214は、測定記録部260が測定した検索処理時間の記録である測定ログを記憶する。
集計情報記憶部215は、変換ルール生成部280が実績ログと測定ログとの集計処理のために生成する集計情報等を記憶する。
同期処理部220は、同期処理部130から受け付けたSQL文をDB処理部230に出力する。これにより、データベース211に対してデータベース111に行われる編集と同一の編集がなされる。
DB処理部230は、受け付けたSQL文を実行し、データベース211に記憶されたデータの読み出しや編集を実行する。DB処理部230は、Select文によりデータの読み出しを行った場合、読み出し結果を測定記録部260に出力する。
SQL文受信部240は、SQL文通知部160から受け付けたSelect文を検索履歴記憶部213に検索履歴として格納する。
検索パターン生成部250は、検索履歴記憶部213に新たな検索履歴が格納されると、該当のSelect文に含まれる条件による絞込の順序を変更した検索パターンによるSelect文を生成する。検索パターン生成部250は、生成したSelect文を測定記録部260に出力する。また、検索パターン生成部250は、検索履歴記憶部213を参照して、そのSelect文と共に実行されていた他のSelect文を測定記録部260に出力する。検索パターン生成部250は、測定記録部260において、ある検索パターンのSelect文の測定が完了すると、次の検索パターンのSelect文を生成して測定記録部260に出力する。
測定記録部260は、検索パターン生成部250から取得したSelect文をDB処理部230に出力する。測定記録部260は、応答実績記録部170と同様にして、多重実行数と共に、チューニング対象のSelect文について複数の検索パターンでの処理時間を測定ログとして記録し、測定ログ記憶部214に格納する。
ログ通信部270は、ログ通信部180を介して実績ログ記憶部113に記憶された実績ログを受信する。ログ通信部270は、受信した実績ログを変換ルール生成部280に出力する。また、ログ通信部270は、変換ルール生成部280が生成した変換ルールをログ通信部270に出力する。
変換ルール生成部280は、ログ通信部270から取得した実績ログと、測定ログ記憶部214に記憶された測定ログと、に基づいてチューニング対象のSelect文についての各絞込順序での処理時間を集計し、集計情報を生成する。変換ルール生成部280は、生成した集計情報に基づいて、該当のSelect文の変換ルールを取得し、ログ通信部270に出力する。
図5は、Select文定義テーブルのデータ構造例を示す図である。Select文定義テーブル112aは、SQL定義情報記憶部112に予め格納される。Select文定義テーブル112aには、識別番号を示す項目およびWhere句内容を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのSelect文の定義情報を示す。
識別番号を示す項目には、Select文を識別するための識別番号が設定される。Where句内容を示す項目には、Where句に含まれる条件が設定される。Where句内容には、各条件が絞込に用いられる順序で条件1,2,3と複数設定される。ただし、条件は4つ以上設定されていてもよい。
Select文定義テーブル112aには、例えば、識別番号が“P01”、Where句内容(条件1)が“年月日=‘yymmdd’”、Where句内容(条件2)が“都道府件=‘ccc’”、Where句内容(条件3)が“市区町村=‘ccc’”という情報が設定される。ここで、“ccc”は文字列であることを示す。これは、ある業務処理で用いられるSelect文として、これら各条件を含むものが識別番号“P01”に対応付けて定義されていることを示している。また、通常、このSelect文では、まず“年月日=‘yymmdd’”の条件によって絞込を行うことを示している。次いで、“都道府県=‘ccc’”、“市区町村=‘ccc’”の条件によって順次絞込を行うことを示している。なお、この順序はあくまでもデフォルトの設定である。すなわち、該当の条件式からなり、順序が変更したものも“P01”に対応付けることができる。
図6は、検索ログの例を示す図である。検索ログ213aは、SQL文受信部240により検索履歴記億部213に格納される。検索ログ213aには、業務サーバ100で実行されたSelect文のログが記録されている。ログには、例えば、該当のSelect文が実行された年月日、時分秒(タイムスタンプ)およびそのSelect文の内容が記録される。時間は、例えばミリ秒で取得できる。あるいは、マイクロ秒単位等としてもよい。
なお、該当のSelect文が実行された時間は、SQL文受信部240が業務サーバ100から該当のSelect文を受信した時間として取得してもよい。
検索ログ213aには、検索処理T1,T2,T3,T4が記録されている。検索パターン生成部250は、例えば検索処理T4についての測定を行う場合、検索処理T4よりも前の期間に実行された検索処理を取得する。より具体的には、検索処理T4の実行時にDB処理部140で実行中であったと考えられる期間分(例えば、0.5秒)だけ検索処理を取得する。すなわち、検索ログ213aの例では、検索処理T1,T2,T3を取得する。検索パターン生成部250は、検索処理T4につき検索パターンを変更したSelect文(T4’とする)を出力するに伴って、検索ログ213aにおける時間差を再現しつつ検索処理T1,T2,T3,T4’を測定記録部260に出力する。これにより、業務サーバ100での実行状況を適切に再現して処理時間の測定が行える。
図7は、検索実績テーブルのデータ構造例を示す図である。検索実績テーブル113a,113b,113c,・・・は、応答実績記録部170により生成され、実績ログ記憶部113に格納される。検索実績テーブル113aは、識別番号“P01”に対応するSelect文の実績ログである。検索実績テーブル113bは、識別番号“P02”に対応するSelect文の実績ログである。検索実績テーブル113cは、識別番号“P03”に対応するSelect文の実績ログである。以下では、検索実績テーブル113aの構造について説明するが、検索実績テーブル113b,113c,・・・に関しても同様である。
検索実績テーブル113aには、項番を示す項目、検索条件を示す項目、多重実行数を示す項目、依頼時刻を示す項目、応答時刻を示す項目および処理時間を示す項目が設けられている。各項目の横方向に並べられた情報同士が関連付けられて、“P01”に対応するSelect文を用いて検索を実行した際の実績を示す。
項番を示す項目には、レコードを示す番号が設定される。検索条件を示す項目には、Select文に含まれる具体的な条件が設定される。多重実行数を示す項目には、多重実行数が設定される。依頼時刻を示す項目には、応答実績記録部170がDB処理部140にSelect文を出力した時間が設定される。応答時刻を示す項目には、出力したSelect文に対して応答を受けた時間が設定される。なお、図7の例では年月日の図示を省略している。処理時間を示す項目には、依頼時刻から応答時刻までに要した時間が設定される。
検索実績テーブル113aには、例えば、項番が“1”、検索条件(1番目)が“年月日=‘100115’”、検索条件(2番目)が“都道府県=‘東京都’”、検索条件(3番目)が“市区町村=‘港区’”、多重実行数が“5”、依頼時刻が“9:10:00.100”、応答時刻が“9:10:00.915”、処理時間が“0.815”という情報が設定される。
これは、業務サーバ100において、識別番号“P01”に対応するSelect文が“年月日=‘100115’”、“都道府県=‘東京都’”、“市区町村=‘港区’”の順に絞込を行って実行されたことを示している。また、そのときの多重実行数(すなわち、現在実行中の他の検索処理の数)が“5”であることを示している。更に、依頼時刻と応答時刻との差から、該当の処理に要した処理時間が“0.815”秒であることを示している。
ここで、以下の説明では応答実績記録部170は、多重実行数をDB処理部140に対して該当のSelect文による処理を依頼した時点の値として取得するものとする。また、多重実行数にはチューニング対象とするSelect文による実行数も含まれる。
図8は、測定実績テーブルのデータ構造例を示す図である。測定実績テーブル214a,214b,214c,・・・は、測定記録部260により生成され、測定ログ記憶部214に格納される。測定実績テーブル214aは、識別番号“P01”に対応するSelect文の測定ログである。測定実績テーブル214bは、識別番号“P02”に対応するSelect文の測定ログである。測定実績テーブル214cは、識別番号“P03”に対応するSelect文の測定ログである。以下では、測定実績テーブル214aの構造について説明するが、測定実績テーブル214b,214c,・・・に関しても同様である。
測定実績テーブル214aには、項番を示す項目、検索条件を示す項目、多重実行数を示す項目、依頼時刻を示す項目、応答時刻を示す項目および処理時間を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、Select文“P01”を用いて検索を実行した際の測定結果を示す。
項番を示す項目、検索条件を示す項目、多重実行数を示す項目、依頼時刻を示す項目、応答時刻を示す項目および処理時間を示す項目は、図7で示した検索実績テーブル113aの各項目に対応する。
測定実績テーブル214aには、例えば、項番が“1”、検索条件(1番目)が“都道府県=‘東京都’”、検索条件(2番目)が“年月日=‘100115’”、検索条件(3番目)が“市区町村=‘港区’”、多重実行数が“5”、依頼時刻が“9:10:01.510”、応答時刻が“9:10:02.025”、処理時間が“0.515”という情報が設定される。
このレコードは、検索実績テーブル113aの項番“1”で示されるSelect文に対応付けて生成されたSelect文を示すものである。本例では、検索条件が合計3つ存在するため、その順列組み合わせの数“6”から、実績ログで取得済みのレコード“1”を引いた5個のSelect文を生成することができる。測定実績テーブル214aの項番“2”〜“5”で示されるSelect文も検索実績テーブル113aの項番“1”で示されるSelect文に対応付けて生成されたSelect文を示すものである。
なお、測定記録部260で、実績ログとして取得済みのSelect文も含めて全て測定を行ってもよい。ただし、チューニング対象とするSelect文が多く存在する場合には、実績ログで取得済みのものを省略する方が、測定による処理負荷の軽減の観点からは望ましい。
図9は、ログ集計テーブルのデータ構造例を示す図である。ログ集計テーブル215−1a,215−1b,215−1c,・・・は、変換ルール生成部280により生成され、集計情報記憶部215に格納される。ログ集計テーブル215−1aは、識別番号“P01”に対応するSelect文の実績ログと測定ログとの集計情報である。ログ集計テーブル215−1bは、識別番号“P02”に対応するSelect文の実績ログと測定ログとの集計情報である。ログ集計テーブル215−1cは、識別番号“P03”に対応するSelect文の実績ログと測定ログとの集計情報である。以下では、ログ集計テーブル215−1aの構造について説明するが、ログ集計テーブル215−1b,215−1c,・・・に関しても同様である。
ログ集計テーブル215−1aには、項番を示す項目、検索条件を示す項目、多重実行数を示す項目、処理時間を示す項目が設けられている。各項目の横方向に並べられた情報同士が関連付けられて、検索実績テーブル113aと測定実績テーブル214aとの集計結果を示す。
項番を示す項目、検索条件を示す項目および多重実行数を示す項目は、図7で示した検索実績テーブル113aの各項目に対応する。ただし、検索条件を示す項目には一般的な(具体的な値が入力されていない)条件式が設定される。処理時間を示す項目には、業務時間中の各時間帯における処理時間の集計結果が設定される。処理時間は、最小処理時間(最小を示す項目)、平均処理時間(平均を示す項目)および最大処理時間(最大を示す項目)に区分して集計される。最小処理時間には、該当の時間帯における該当の検索条件および多重度での処理時間の最小値が設定される。平均処理時間には、該当の時間帯における該当の検索条件および多重度での処理時間の平均値が設定される。最大処理時間には、該当の時間帯における該当の検索条件および多重度での処理時間の最大値が設定される。
ログ集計テーブル215−1aには、例えば、項番が“1”、検索条件(1番目)が“年月日=‘yymmdd’”、検索条件(2番目)が“都道府県=‘ccc’”、検索条件(3番目)が“市区町村=‘ccc’”、多重実行数が“1”、処理時間(9時台)での最小処理時間が“0.301”秒、平均処理時間が“0.367”秒、最大処理時間が“0.395”という情報が設定される。
これは、識別番号“P01”に対応するSelect文について検索条件が“年月日=‘yymmdd’”、“都道府県=‘ccc’”、“市区町村=‘ccc’”の順で実行され、その際の多重実行数が“1”、かつ、9時台の時間帯での最小処理時間が“0.301”、平均処理時間が“0.367”、最大処理時間が“0.395”であったことを示している。
なお、10時台以降の時間帯についても9時台の場合と同様にして設定される。
このように、ログ集計テーブル215−1aには、各検索条件につき各多重度、各時間帯の処理時間を集計した情報が設定される。
図10は、優先度テーブルのデータ構造例を示す図である。優先度テーブル215−2a,215−2b,215−2c,・・・は、変換ルール生成部280により生成され、集計情報記憶部215に格納される。優先度テーブル215−2aは、識別番号“P01”に対応するSelect文における“9時台”の各検索条件の優先度を示す。優先度テーブル215−2bは、識別番号“P01”に対応するSelect文における“10時台”の各検索条件の優先度を示す。優先度テーブル215−2cは、識別番号“P01”に対応するSelect文における“11時台”の各検索条件の優先度を示す。以下では、優先度テーブル215−2aの構造について説明するが、優先度テーブル215−2b,215−2c,・・・に関しても同様である。
優先度テーブル215−2aには、項番を示す項目、検索条件を示す項目、多重実行数ごとの優先度を示す項目および合成優先度を示す項目が設けられている。各項目の横方向に並べられた情報同士が関連付けられて、1つの検索条件の多重実行数ごとの優先度を示す。
項番を示す項目および検索条件を示す項目は、図7で示した検索実績テーブル113aの各項目に対応する。ただし、検索条件を示す項目には一般的な条件式が設定される。多重実行数ごとの優先度を示す項目には、該当の検索条件の優先度が多重実行数ごとに設定される。優先度は数値で表すことができる。例えば、本例では3つの条件式の順列で6通りの検索条件を生成することができるので、優位なものから昇順に1〜6の優先度が設定されるものとする。合成優先度を示す項目には、検索条件ごとの優先度の平均値が設定される。ただし、合成優先度は、検索条件ごとの優先度の総和等、他の方法によって表すこともできる。
ここで、変換ルール生成部280は、ログ集計テーブル215−1aを参照して、次のように優先度を特定できる。
(判定1)ログ集計テーブル215−1aに含まれる多重実行数が同一の検索条件のうち、平均処理時間が小さいものほど優位とする。
(判定2)(判定1)において平均処理時間が同一のものがある場合、それらのうち最小処理時間が小さいものほど優位とする。
(判定3)(判定2)において最小処理時間も同一のものがある場合、それらのうち最大処理時間が小さいものほど優位とする。
なお、上記(判定2)、(判定3)の条件は逆であってもよい。すなわち、平均処理時間が同一である場合に、最大処理時間の大小の比較を行った後、最大処理時間が同一である場合に、最小処理時間の大小の比較を行ってもよい。
優先度テーブル215−2aには、例えば、項番が“1”、検索条件(1番目)が“年月日=‘yymmdd’”、検索条件(2番目)が“都道府県=‘ccc’”、検索条件(3番目)が“市区町村=‘ccc’”、多重実行数ごとの優先度が、多重実行数1に対して“4”、多重実行数2に対して“5”、多重実行数3に対して“6”,・・・,多重実行数nに対して“6”、合成優先度が“4.5”という情報が設定される。
これは、条件式が該当の順序で検索に用いられる場合の多重実行数“1”〜“n”の場合における優先度を示している。合成優先度は多重実行数“1”〜“n”の優先度の総和を“n”で除した商である。合成優先度は他の検索条件に対して、多重実行数を加味した総合的な優先度を示す。
優先度テーブル215−2aでは、項番“2”のレコードで示される検索条件の合成優先度が“2”と最も高い。一方、項番“5”のレコードで示される検索条件の合成優先度が“5”と最も低い。変換ルール生成部280は、合成優先度が最も高い検索条件を識別番号“P01”に対応するSelect文における“9時台”の変換ルールと特定できる。
図11は、変換テーブルのデータ構造例を示す図である。変換テーブル114aには、変換ルール生成部280により生成された変換ルールが設定される。変換テーブル114aは、変換ルール記憶部114に格納される。変換テーブル114aには、識別番号を示す項目、変換ルールを示す項目および切替フラグを示す項目が設けられている。各項目の横方向に並べられた情報同士が関連付けられて、1つのSelect文に関する変換ルールを示す。
識別情報を示す項目は、図5で示したSelect文定義テーブル112aの同一名称の項目に対応する。変換ルールを示す項目には、変換ルールが設定される。切替フラグを示す項目には、時間帯ごとに対応する変換ルールによる変換を行うか否かを示すフラグが設定される。フラグは、“1”が変換を行う旨を示し、“0”が変換を行わない旨を示す。
変換テーブル114aには、例えば、識別番号が“P01”、変換ルール(1番目)が“都道府県=‘ccc’”、変換ルール(2番目)が“年月日=‘yymmdd’”、変換ルール(3番目)が“市区町村=‘ccc’”、切替フラグ(9時台)が“1”、切替フラグ(10時台)が“1”、切替フラグ(11時台)が“0”、・・・という情報が設定される。
これは、識別番号“P01”に対応するSelect文について、絞込を行う順序を9時台、10時台では、“都道府県=‘ccc’”、“年月日=‘yymmdd’”、“市区町村=‘ccc’”に変換することを示している。一方、11時台には、当変換ルールによる変換は行わないことを示している。
また、変換テーブル114aには、識別番号“P01”のSelect文に対する変換ルールとして、“都道府県=‘ccc’”、“市区町村=‘ccc’”、“年月日=‘yymmdd’”の順とし、切替フラグが9時台、10時台、11時台それぞれについて、“0”、“0”、“1”である変換ルールが設定されている。これは、当変換ルールが9時台、10時代には適用されず、11時台には適用されることを示している。
SQL文変換部150は、変換ルール記憶部114に記憶された変換テーブル114aを参照して、各時間帯につき最短の処理時間で検索を行うことが可能な変換ルールを取得することができる。
なお、変換ルールの取得対象(すなわち、チューニング対象)とする検索処理は、例えばシステムの管理者によって予め業務サーバ100,200に設定される。この場合、業務サーバ200は、設定された検索処理に対してのみ検索パターンを生成して、検索パターンによる測定記録を行えばよい。ただし、全ての検索処理に対して、変換ルールを取得してもよい。
次に、以上のような構成を備える業務サーバ100,200の処理手順を説明する。
まず、業務サーバ100による実績処理時間計測処理の手順を説明する。
図12は、実績処理時間計測処理を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS11]業務処理部120は、端末装置21,22,23から業務処理を受け付ける。業務処理部120は、該当の業務処理に含まれる検索処理に対してデータベース111に記憶されたデータを検索するためのSQL文(Select文)を生成し、SQL文変換部150に出力する。
[ステップS12]SQL文変換部150は、業務処理部120から取得したSelect文の変換処理を実行する。SQL文変換部150は、変換後のSelect文をSQL文通知部160に出力する。
[ステップS13]SQL文通知部160は、SQL文変換部150から取得したSelect文を業務サーバ200に送信する。また、SQL文通知部160は、Select文を応答実績記録部170に出力する。
[ステップS14]応答実績記録部170は、SQL文通知部160からSelect文を取得すると、DB処理部140による多重実行数を“+1”する。また、応答実績記録部170は、取得したSelect文をDB処理部140に出力する。このとき、応答実績記録部170は、実績ログ記憶部113の検索実績テーブル113a,113b,113c,・・・に、取得したSelect文に対する検索実績レコードを登録する。その際、応答実績記録部170は、多重実行数やDB処理部140への依頼時刻を該当の検索実績レコードに設定しておく。
[ステップS15]応答実績記録部170は、DB処理部140からSelect文による検索結果を取得する。すると、応答実績記録部170は、DB処理部140による多重実行数を“−1”する。応答実績記録部170は、取得した応答結果を業務処理部120に出力する。
[ステップS16]応答実績記録部170は、応答結果を受け付けた時間を検索実績テーブル113a,113b,113c,・・・のステップS14で登録したレコードの応答時刻を示す項目に設定する。更に、応答実績記録部170は、応答時刻と依頼時刻との差をとることで、処理時間を算出し、該当の検索実績レコードに設定する。
このように、業務処理部120は、業務処理を受け付けるとその業務処理に対応する検索用のSelect文を生成する。そして、SQL文変換部150は検索用のSelect文の変換処理を行う。SQL文通知部160は、変換後のSelect文を業務サーバ200に通知する。また、応答実績記録部170はそのSelect文をDB処理部140に出力し、その処理応答等に基づいて実績ログを取得する。
次に、業務サーバ200による処理時間計測処理の手順を説明する。
図13は、処理時間計測処理を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS21]SQL文受信部240は、SQL文通知部160からSelect文を受信する。
[ステップS22]SQL文受信部240は、受信したSelect文を検索履歴記憶部213に記憶された検索ログ213aに登録する。
[ステップS23]検索パターン生成部250は、検索履歴記憶部213を参照して、検索ログ213aに新たなSelect文が追加されたことを検知すると、該当のSelect文の内容を取得する。検索パターン生成部250は、そのSelect文がチューニング対象であると検知する。ここで、チューニング対象とするSelect文は、そのSelect文に含まれる条件と共に予め検索パターン生成部250に設定される。検索パターン生成部250は、検索ログ213aに追加されたSelect文に含まれる条件を参照して、そのSelect文がチューニング対象であるか否かを検知できる。ここでは、検索ログ213aから検索処理T4を検知したとする。
[ステップS24]検索パターン生成部250は、検索ログ213aに基づいて、ステップS23で取得したSelect文が記録された時間よりも前の所定期間(例えば、0.5秒間)に実行された他のSelect文を取得する。所定期間を0.5秒間とすると、検索ログ213aの例では、検索処理T1〜T3を取得できる。
[ステップS25]検索パターン生成部250は、ステップS23で取得した新たなSelect文に含まれるWhere句を抽出する。
[ステップS26]検索パターン生成部250は、ステップS25で抽出したWhere句以外の全パターン(検索条件の順序のパターン)のWhere句について以下のステップS27〜S29を繰り返し実行する。
[ステップS27]検索パターン生成部250は、検索ログ213aを参照して、検索ログ213aに記録された時間差を再現して、測定対象のSelect文とその他のSelect文とを測定記録部260に順次出力する。
検索ログ213aの例では、検索処理T4に対して検索パターンの変更を行う(変更後のものをT4’で表す)場合、まず、検索処理T1に対応するSelect文を出力する。次いで、検索処理T1,T2の時間差分の時間(0.289秒)が経過した後に、検索処理T2に対応するSelect文を出力する。次いで、検索処理T2,T3の時間差分の時間(0.032秒)が経過した後に、検索処理T3に対応するSelect文を出力する。そして、検索処理T3,T4の時間差分の時間(0.179秒)が経過した後に、検索処理T4’に対応するSelect文を出力する。
測定記録部260は、検索パターン生成部250からSelect文を取得すると、DB処理部230による多重実行数を“+1”する。また、測定記録部260は、取得したSelect文をDB処理部230に出力する。このとき、測定記録部260は、測定ログ記憶部214に記憶された測定実績テーブル214a,214b,214c,・・・に、取得したSelect文に対する測定実績レコードを登録する。その際、測定記録部260は、多重実行数やDB処理部230への依頼時刻を該当の測定実績レコードに設定しておく。
[ステップS28]測定記録部260は、DB処理部230からSelect文による検索結果を取得する。すると、測定記録部260は、DB処理部230による多重実行数を“−1”する。
[ステップS29]測定記録部260は、応答結果を受け付けた時間を測定実績テーブル214a,214b,214c,・・・のステップS27で登録したレコードの応答時刻を示す項目に設定する。更に、測定記録部260は、応答時刻と依頼時刻との差をとることで、処理時間を算出し、該当の測定実績レコードに設定する。
[ステップS30]検索パターン生成部250は、測定対象のSelect文について、全ての検索パターンを測定済みであるか否かを判定する。測定済みである場合、処理をステップS31に進める。未測定のものがある場合、処理をステップS26に進める。
[ステップS31]検索パターン生成部250は、検索ログ213aを参照して、測定中に新たに追加されたログに測定を行うべきSelect文が存在するか否かを判定する。存在する場合、処理をステップS23に進める。存在しない場合、処理を完了する。
このようにして、検索パターン生成部250は、検索ログ213aに基づいて測定対象とするSelect文につき検索パターンを変更したSelect文を生成する。そして、検索パターン生成部250は、検索ログ213aにおける実行状況を再現するように他のSelect文および生成したSelect文を測定記録部260に順次出力する。測定記録部260は、検索パターン生成部250から取得したSelect文をDB処理部230に順次出力して、多重度を再現しつつ、処理時間の測定を行う。
なお、上記の例では、予め設定されたチューニング対象のSelect文についての測定を行う場合を示したが、全てのSelect文をチューニング対象としてもよい。
次に、業務サーバ200による変換情報生成処理の手順を説明する。上述の実績処理時間計測処理および処理時間計測処理は、業務時間中に逐次実行される処理であるが、以下の変換情報生成処理は、例えば1日の業務完了後に実行することができる。
図14は、変換情報生成処理を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS41]変換ルール生成部280は、チューニング対象とする検索処理について、実績ログ記憶部113に記憶された検索実績テーブル113a,113b,113c,・・・の内容をログ通信部270等を介して取得する。同様に、変換ルール生成部280は、測定ログ記憶部214に記憶された測定実績テーブル214a,214b,214c,・・・の内容を取得する。
[ステップS42]変換ルール生成部280は、ステップS41で取得した内容に基づいて、ログ集計テーブル215−1a,215−1b,215−1c,・・・を生成し、集計情報記憶部215に格納する。例えば、検索実績テーブル113aおよび測定実績テーブル214aにおいて、条件式が“年月日=‘yymmdd’”、“都道府県=‘ccc’”、“市区町村=‘ccc’”の順序となっており、かつ、多重実行数が“1”である検索条件を時間帯ごと(1時間区切り)に集計することで、ログ集計テーブル215−1aの項番“1”に対応するレコードを得ることができる。
[ステップS43]変換ルール生成部280は、ログ集計テーブル215−1a,215−1b,215−1c,・・・に基づいて、優先度テーブル215−2a,215−2b,215−2c,・・・を生成し、集計情報記憶部215に格納する。具体的な優先度の判定方法は、図10で説明した通りである。
[ステップS44]変換ルール生成部280は、時間帯ごと、Select文ごとに変換ルールを特定する。具体的には、優先度テーブル215−2a,215−2b,215−2c,・・・を参照して、各テーブルから合成優先度が最も高いものを対応する時間帯、Select文の変換ルールと特定する。
このようにして、変換ルール生成部280は優先度テーブル215−2a,215−2b,215−2c,・・・に基づいて、変換ルールを特定する。
その後、ログ通信部270は、変換ルール生成部280が特定した変換ルールを業務サーバ100に送信する。ログ通信部180は、ログ通信部270から受信した変換ルールを各Select文に対応付けて変換ルール記憶部114に変換テーブル114aとして格納する。
ここで、変換テーブル114aにつき既存の変換ルールがある場合を考慮して、次のような更新を行うことが考えられる。
すなわち、同一のSelect文、同一の時間帯の既存の変換ルールに対して新たな変換ルールを設定する場合、既存の変換ルールの切替フラグを“1”から“0”に設定する。なお、切替フラグが全て“0”となった変換テーブル114a上のレコードは削除することができる。
また、あるSelect文、時間帯で、既存の変換ルールのみが存在する場合には、その設定(切替フラグ“1”)を維持する。
また、あるSelect文につき既存の変換ルールが存在しておらず、新たな変換ルールを登録する場合には、該当の変換ルールに対応するレコードを変換テーブル114a上に登録する。
業務完了後の時間帯に変換情報生成処理を行っておけば、翌日の各業務時間帯において対応する変換ルールを用いて検索処理を実行できる。
次に、業務サーバ100によるSelect文変換処理の手順を説明する。当変換処理は、図12のステップS12で示した処理に相当するものである。
図15は、Select文変換処理を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS51]SQL文変換部150は、業務処理部120から取得したSelect文に含まれるWhere句を抽出する。SQL文変換部150は、SQL定義情報記憶部112に記憶されたSelect文定義テーブル112aを参照して、抽出したWhere句を含むSelect文の識別番号を特定する。
[ステップS52]SQL文変換部150は、現在時刻を特定する。現在時刻は、例えば、OSで管理されているシステム時間から特定できる。
[ステップS53]SQL文変換部150は、変換ルール記憶部114に記憶された変換テーブル114aを参照して、該当のSelect文で現在時刻が属する時間帯につき切替フラグ“1”の変換ルールが存在するか否かを判定する。存在する場合、処理をステップS54に進める。存在しない場合、処理をステップS56に進める。
[ステップS54]SQL文変換部150は、変換テーブル114aに登録された変換ルールに基づいて、Where句による検索順序を変換し、新たなSelect文を生成する。
[ステップS55]SQL文変換部150は、生成したSelect文をSQL文通知部160に出力する。そして、処理を完了する。
[ステップS56]SQL文変換部150は、デフォルトのWhere句のSelect文(Select文定義テーブル112aに設定された順序のSelect文)をSQL文通知部160に出力する。そして、処理を完了する。
このようにして、SQL文変換部150は、Select文による検索の絞込順序を変更する。
これにより、実際に実行された検索履歴に基づいて絞込の順序を決定することができる。このため、現実の業務により実行される検索の処理状況に即したより効率的な検索処理が可能となる。
例えば、ある業務処理について複数の検索処理を伴う場合、そのうちの1つの検索処理のチューニングを行う際には、他の検索処理の実行による影響も考慮することが望ましい。そこで、上述のように、現実に実行された検索処理のログに基づいて処理時間を測定することで、そのような影響を考慮して、変換ルールを適切に特定することができる。
更に、運用時間中に測定期間を複数設けて、時間帯ごとに最適な変換ルールを特定する。このため、時々刻々と変化し得るデータの量やデータの種別に応じた適切な変換ルールを取得することができる。
また、処理時間を測定するに当たって、検索履歴を取得すればよいので、各検索処理間の同時実行関係や、時間帯ごとの業務処理の傾向等を事前に調査する必要がない。このため、適切な変換ルールを容易に取得することができる。
なお、業務サーバ100,200の運用系・待機系の役割が切り替わった際には、上記各処理の実行主体も切り替えることができる。すなわち、業務サーバ200が運用系となった場合には、業務サーバ100が処理時間の計測を行い、変換ルールを生成することができる。
[第3の実施の形態]
次に、第3の実施の形態について説明する。前述の第2の実施の形態との相違点を主に説明し、同様の事項に関しては説明を省略する。
第2の実施の形態では、業務サーバ100,200のうち、待機系となるサーバで異なる検索パターンで処理時間の計測を行って変換ルールを生成する場合を例示した。
一方、第3の実施の形態では、サーバ単体で第2の実施の形態と同様の機能を実現するための構成について説明する。
図16は、第3の実施の形態に係る業務サーバの機能構成を示す図である。業務サーバ100aは、データベース111、SQL定義情報記憶部112、実績ログ記憶部113、変換ルール記憶部114、検索履歴記憶部115、測定ログ記憶部116、集計情報記憶部117、業務処理部120、DB処理部140、SQL文変換部150、SQL文記録部160a、応答実績記録部170、検索パターン生成部170a、測定記録部180aおよび変換ルール生成部190を有する。これらの機能は、CPU101が所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアにより実現してもよい。
ここで、データベース111、SQL定義情報記憶部112、実績ログ記憶部113、変換ルール記憶部114、業務処理部120、DB処理部140、SQL文変換部150および応答実績記録部170については、図4で同一の符号を付して説明した構成と同一であるため説明を省略する。
検索履歴記憶部115は、検索履歴記憶部213に対応する。検索履歴記憶部115は、SQL文記録部160aが取得したSelect文の履歴を記憶する。この履歴は、検索ログ213aに相当するものである。
測定ログ記憶部116は、測定ログ記憶部214に対応する。測定ログ記憶部116は、測定記録部180aが測定した検索処理時間の記録である測定ログを記憶する。測定ログは、測定実績テーブル214a,214b,214c,・・・に相当するものである。
集計情報記憶部117は、集計情報記憶部215に対応する。集計情報記憶部117は、変換ルール生成部190が実績ログと測定ログとの集計処理のために生成する集計情報等を記憶する。集計情報等とは、ログ集計テーブル215−1a,215−1b,215−1c,・・・および優先度テーブル215−2a,215−2b,215−2c,・・・に相当するものである。
SQL文記録部160aは、SQL文通知部160に対応する。ただし、SQL文記録部160aは、SQL文変換部150から取得したSelect文を検索履歴記憶部115に格納する。
検索パターン生成部170aは、検索パターン生成部250に対応する。検索パターン生成部170aは、検索履歴記憶部115に新たな検索履歴が格納されると、該当のSelect文に含まれる条件による絞込の順序を変更した検索パターンによるSelect文を生成する。検索パターン生成部170aは、生成したSelect文を測定記録部180aに出力する。また、検索パターン生成部170aは、検索履歴記憶部115を参照して、そのSelect文と共に実行されていた他のSelect文を測定記録部180aに出力する。検索パターン生成部170aは、測定記録部180aにおいて、ある検索パターンのSelect文の測定が完了すると、次の検索パターンのSelect文を生成して測定記録部180aに出力する。
測定記録部180aは、測定記録部260に対応する。測定記録部180aは、検索パターン生成部170aから取得したSelect文をDB処理部140に出力する。測定記録部180aは、多重実行数と共に、チューニング対象のSelect文について複数の検索パターンでの処理時間を測定ログとして記録し、測定ログ記憶部116に格納する。
変換ルール生成部190は、変換ルール生成部280に対応する。変換ルール生成部190は、実績ログ記憶部113に記憶された実績ログと、測定ログ記憶部116に記憶された測定ログと、に基づいてチューニング対象のSelect文についての各絞込順序での処理時間を集計し、集計情報を生成する。変換ルール生成部190は、生成した集計情報に基づいて、該当のSelect文の変換ルールを取得し、変換ルール記憶部114に格納する。
このような構成とすることで、業務サーバ100aで変換ルールを取得することが可能である。処理の手順に関しては、第2の実施の形態で示した各処理と同様であるため説明を省略する。
これにより、第2の実施の形態と同様の効果を得ることができる。
また、当機能の実現のために複数台のサーバの連携による環境構築が不要であるので、第2の実施の形態の構成に比べて導入を容易とすることができる。
以上、本発明の検索支援プログラム、検索支援装置および検索支援方法を図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 コンピュータ
1a 検索手段
1b 検索履歴取得手段
1c 検索履歴記憶手段
1d 測定手段
1e 測定結果記憶手段
1f 変換ルール出力手段
1g 変換ルール記憶手段
1h 検索条件変換手段
2 データベース
3 検索履歴
3a 再実行部

Claims (7)

  1. 複数の項目を含むデータテーブルから、前記複数の項目のうち2つ以上の項目に対して与えられた条件に基づき前記項目ごとに所定の順序で絞込を行って前記条件に合致するレコードの検索処理を行う検索手段による前記検索処理を支援する処理をコンピュータに実行させる検索支援プログラムであって、
    前記コンピュータを、
    前記検索手段により実行された複数の検索処理の履歴である検索履歴を取得し、取得した前記検索履歴を検索履歴記憶手段に格納する検索履歴取得手段、
    前記検索履歴記憶手段に記憶された前記検索履歴に複数の所定の検索条件を含む第1の検索処理の内容が追加されると、前記第1の検索処理につき絞込の順序を変更した複数の第2の検索処理の命令を生成し、前記検索履歴に基づいて、当該複数の第2の検索処理それぞれと、前記第1の検索処理が実行された際に実行中であった1つ以上の他の検索処理と、を実行して、前記複数の第2の検索処理それぞれに要した処理時間を測定結果として取得し、取得した前記測定結果を測定結果記憶手段に格納する測定手段、
    前記測定結果記憶手段に記憶された前記測定結果に基づいて、前記複数の第2の検索処理それぞれのうち前記処理時間が最小であるものを特定し、特定した第2の検索処理に含まれる絞込の順序を、前記検索手段による前記第1の検索処理の実行の際に絞込の順序を変換するための条件変換ルールとして出力する変換ルール出力手段、
    として機能させることを特徴とする検索支援プログラム。
  2. 前記検索履歴取得手段は、複数の検索処理それぞれに対応付けて、前記複数の検索処理を取得した第1のタイムスタンプを前記検索履歴に記録し、
    前記測定手段は、前記検索履歴を参照して、前記第1のタイムスタンプに基づく時間差を再現して、前記複数の第2の検索処理それぞれと前記他の検索処理とを実行し、前記複数の第2の検索処理それぞれの実行時を示す第2のタイムスタンプを前記測定結果に記録し、
    前記変換ルール出力手段は、前記測定結果に含まれる前記第2のタイムスタンプに基づいて、時間帯ごとに前記条件変換ルールを出力する、
    ことを特徴とする請求項1記載の検索支援プログラム。
  3. 前記測定手段は、前記複数の第2の検索処理それぞれを実行する際に実行中であった検索処理の数を示す多重実行数を前記測定結果に記録し、
    前記変換ルール出力手段は、前記測定結果に基づいて、前記複数の第2の検索処理それぞれにつき前記時間帯における前記多重実行数ごとに最小処理時間、平均処理時間および最大処理時間を集計し、集計した前記最小処理時間、平均処理時間および最大処理時間に基づき前記複数の第2の検索処理それぞれの前記時間帯における前記多重実行数ごとの優先度を決定し、当該優先度に基づいて、前記時間帯の前記条件変換ルールを得るための第2の検索処理の特定を行う、
    ことを特徴とする請求項2記載の検索支援プログラム。
  4. 前記コンピュータを、更に、前記検索手段が前記第1の検索処理を実行する際に、前記変換ルール出力手段が出力した前記条件変換ルールを記憶する変換ルール記憶手段を参照して、当該第1の検索処理に含まれる前記所定の検索条件による絞込の順序を変換し、変換後の前記第1の検索処理の内容を前記検索手段に出力する変換手段として機能させることを特徴とする請求項1乃至3の何れか一項に記載の検索支援プログラム。
  5. 前記コンピュータとは異なる情報処理装置に前記検索手段が設けられており、
    前記検索履歴取得手段は、前記情報処理装置から受信した検索処理の内容に基づいて、前記検索履歴を取得する、
    ことを特徴とする請求項1乃至3の何れか一項に記載の検索支援プログラム。
  6. 複数の項目を含むデータテーブルから、前記複数の項目のうち2つ以上の項目に対して与えられた条件に基づき前記項目ごとに所定の順序で絞込を行って前記条件に合致するレコードの検索処理を行う検索部による前記検索処理を支援する検索支援装置であって、
    前記検索部により実行された複数の検索処理の履歴である検索履歴を取得し、取得した前記検索履歴を検索履歴記憶部に格納する検索履歴取得部と、
    前記検索履歴記憶部に記憶された前記検索履歴に複数の所定の検索条件を含む第1の検索処理の内容が追加されると、前記第1の検索処理につき絞込の順序を変更した複数の第2の検索処理の命令を生成し、前記検索履歴に基づいて、当該複数の第2の検索処理それぞれと、前記第1の検索処理が実行された際に実行中であった1つ以上の他の検索処理を実行して、前記複数の第2の検索処理それぞれに要した処理時間を測定結果として取得し、取得した前記測定結果を測定結果記憶部に格納する測定部と、
    前記測定結果記憶部に記憶された前記測定結果に基づいて、前記複数の第2の検索処理それぞれのうち前記処理時間が最小であるものを特定し、特定した第2の検索処理に含まれる絞込の順序を、前記検索部による前記第1の検索処理の実行の際の条件変換ルールとして出力する変換ルール出力部と、
    を有することを特徴とする検索支援装置。
  7. 複数の項目を含むデータテーブルから、前記複数の項目のうち2つ以上の項目に対して与えられた条件に基づき前記項目ごとに所定の順序で絞込を行って前記条件に合致するレコードの検索処理を行う検索部による前記検索処理を支援する検索支援装置の検索支援方法であって、
    検索履歴取得部が、前記検索部により実行された複数の検索処理の履歴である検索履歴を取得し、取得した前記検索履歴を検索履歴記憶部に格納し、
    測定部が、前記検索履歴記憶部に記憶された前記検索履歴に複数の所定の検索条件を含む第1の検索処理の内容が追加されると、前記第1の検索処理につき絞込の順序を変更した複数の第2の検索処理の命令を生成し、前記検索履歴に基づいて、当該複数の第2の検索処理それぞれと、前記第1の検索処理が実行された際に実行中であった1つ以上の他の検索処理を実行して、前記複数の第2の検索処理それぞれに要した処理時間を測定結果として取得し、取得した前記測定結果を測定結果記憶部に格納し、
    変換ルール出力部が、前記測定結果記憶部に記憶された前記測定結果に基づいて、前記複数の第2の検索処理それぞれのうち前記処理時間が最小であるものを特定し、特定した第2の検索処理に含まれる絞込の順序を、前記検索部による前記第1の検索処理の実行の際の条件変換ルールとして出力する、
    ことを特徴とする検索支援方法。
JP2010018701A 2010-01-29 2010-01-29 検索支援プログラム、検索支援装置および検索支援方法 Pending JP2011159015A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010018701A JP2011159015A (ja) 2010-01-29 2010-01-29 検索支援プログラム、検索支援装置および検索支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010018701A JP2011159015A (ja) 2010-01-29 2010-01-29 検索支援プログラム、検索支援装置および検索支援方法

Publications (1)

Publication Number Publication Date
JP2011159015A true JP2011159015A (ja) 2011-08-18

Family

ID=44590935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010018701A Pending JP2011159015A (ja) 2010-01-29 2010-01-29 検索支援プログラム、検索支援装置および検索支援方法

Country Status (1)

Country Link
JP (1) JP2011159015A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013152512A (ja) * 2012-01-24 2013-08-08 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2015087829A (ja) * 2013-10-28 2015-05-07 富士通株式会社 データ処理プログラム、データ処理方法、およびデータ処理装置
JP2019016042A (ja) * 2017-07-04 2019-01-31 富士通株式会社 データ取得プログラム、装置、及び方法
JP2019185323A (ja) * 2018-04-06 2019-10-24 富士通株式会社 検索プログラム、検索方法及び検索装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013152512A (ja) * 2012-01-24 2013-08-08 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2015087829A (ja) * 2013-10-28 2015-05-07 富士通株式会社 データ処理プログラム、データ処理方法、およびデータ処理装置
JP2019016042A (ja) * 2017-07-04 2019-01-31 富士通株式会社 データ取得プログラム、装置、及び方法
JP2019185323A (ja) * 2018-04-06 2019-10-24 富士通株式会社 検索プログラム、検索方法及び検索装置
JP7147231B2 (ja) 2018-04-06 2022-10-05 富士通株式会社 検索プログラム、検索方法及び検索装置

Similar Documents

Publication Publication Date Title
JP5423904B2 (ja) 情報処理装置、メッセージ抽出方法およびメッセージ抽出プログラム
JP4930153B2 (ja) 文書検索システム、文書番号部分列取得装置、および文書検索方法
US10423902B2 (en) Parallel processing apparatus and method of estimating power consumption of jobs
US8904234B2 (en) Determination of items to examine for monitoring
JP2007272548A (ja) 情報検索プログラム、情報検索方法および情報検索装置
JPWO2013094032A1 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2008242540A (ja) テスト仕様書生成プログラム、およびテスト仕様書生成装置
JP2009187414A (ja) 分析用属性項目抽出プログラム、分析用属性項目抽出方法、及び情報分析装置
JP2011258122A (ja) データ転送装置及びデータ転送方法及びデータ転送プログラム及びデータ連携システム
JP2012113706A (ja) データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム
CN103842973B (zh) 用于监视存储过程的方法和系统
WO2015008026A1 (en) Optimising data integration
JP2011159015A (ja) 検索支援プログラム、検索支援装置および検索支援方法
US20120011172A1 (en) Information management apparatus and computer product
US11036701B2 (en) Data sampling in a storage system
US20150332280A1 (en) Compliant auditing architecture
JP2012155634A (ja) 情報処理プログラム、情報処理装置および情報処理方法
US20170019462A1 (en) Management method and computer
JP2014229183A (ja) プログラム、ジョブ監視支援方法、情報処理装置およびシステム
JPWO2013145129A1 (ja) データベース管理方法、プログラム、および情報処理装置
JP2020087087A (ja) 修正候補特定プログラム
JP2011076389A (ja) 情報管理プログラム、情報管理方法、及び、情報管理装置
JP5970882B2 (ja) 構成情報管理装置,構成情報管理プログラム
JP2012212212A (ja) データ検索装置及びデータ検索方法及びプログラム
JP7001550B2 (ja) 画面分析支援装置、及び画面分析支援方法