(57)【特許請求の範囲】
【請求項１】
コンピュータに、
情報処理システムで実行される処理に対する解析処理で取得される解析情報を記憶部に記憶するか否かについて、前記処理が逐次処理である場合には前記逐次処理のレスポンス時間のうち前記情報処理システムによる前記処理の実行時間が所定の時間閾値を超えているかどうかに基づいて判定する、
処理を実行させ、
前記情報処理システムで実行される前記処理が開始された時刻から前記情報処理システムで実行される前記処理が中断された時刻までの時間をアクセス時間として、該アクセス時間に対して統計処理された時間を前記時間閾値とする、
ことを特徴とする解析処理プログラム。
【請求項２】
前記コンピュータに、
前記レスポンス時間のうち前記アクセス時間が占める割合が所定の割合未満の場合、該アクセス時間を前記統計処理の対象から除外する、
処理を実行させることを特徴とする請求項１記載の解析処理プログラム。
【請求項３】
前記コンピュータに、
前記情報処理システムで実行される前記処理が終了するまでに、前記情報処理システムが再ログイン操作を受け付けた場合、該再ログイン操作を受け付けた時刻を、前記中断された時刻とする、
処理を実行させることを特徴とする請求項１または２記載の解析処理プログラム。
【請求項４】
コンピュータに、
情報処理システムで実行される処理に対する解析処理で取得される解析情報を記憶部に記憶するか否かについて、前記処理が一括処理である場合には前記一括処理の処理速度が所定の速度閾値を下回ったかどうかに基づいて判定する、
処理を実行させ、さらに
前記情報処理システムで実行される前記処理が一括処理である場合であって前記処理速度が前記速度閾値以上の場合、前記一括処理が前記情報処理システムで動作する何れかの逐次処理に影響を及ぼすと判定されたときに、前記解析情報を前記記憶部に記憶する、
処理を実行させることを特徴とする解析処理プログラム。
【請求項５】
前記コンピュータに、
前記一括処理と前記逐次処理との動作時間帯が重複し、同じ資源に対するアクセスであり、且つ前記逐次処理に待ちが発生している場合、前記一括処理が前記逐次処理に影響を及ぼすと判定する、
処理を実行させることを特徴とする請求項４記載の解析処理プログラム。
【請求項６】
コンピュータが、
情報処理システムで実行される処理に対する解析処理で取得される解析情報を記憶部に記憶するか否かについて、前記処理が逐次処理である場合には前記逐次処理のレスポンス時間のうち前記情報処理システムによる前記処理の実行時間が所定の時間閾値を超えているかどうかに基づいて判定する、
処理を実行し、
前記情報処理システムで実行される前記処理が開始された時刻から前記情報処理システムで実行される前記処理が中断された時刻までの時間をアクセス時間として、該アクセス時間に対して統計処理された時間を前記時間閾値とする、
ことを特徴とする解析処理方法。
【請求項７】
コンピュータが、
情報処理システムで実行される処理に対する解析処理で取得される解析情報を記憶部に記憶するか否かについて、前記処理が一括処理である場合には前記一括処理の処理速度が所定の速度閾値を下回ったかどうかに基づいて判定する、
処理を実行し、さらに
前記情報処理システムで実行される前記処理が一括処理である場合であって前記処理速度が前記速度閾値以上の場合、前記一括処理が前記情報処理システムで動作する何れかの逐次処理に影響を及ぼすと判定されたときに、前記解析情報を前記記憶部に記憶する、
処理を実行することを特徴とする解析処理方法。
【請求項８】
情報処理システムで実行される処理に対する解析処理で取得される解析情報を記憶部に記憶するか否かについて、前記処理が逐次処理である場合には前記逐次処理のレスポンス時間のうち前記情報処理システムによる前記処理の実行時間が所定の時間閾値を超えているかどうかに基づいて判定する処理を行う判定部、
を備え、
前記情報処理システムで実行される前記処理が開始された時刻から前記情報処理システムで実行される前記処理が中断された時刻までの時間をアクセス時間として、該アクセス時間に対して統計処理された時間を前記時間閾値とする、
ことを特徴とする解析処理装置。
【請求項９】
情報処理システムで実行される処理に対する解析処理で取得される解析情報を記憶部に記憶するか否かについて、前記処理が一括処理である場合には前記一括処理の処理速度が所定の速度閾値を下回ったかどうかに基づいて判定する処理を行う判定部と、
前記情報処理システムで実行される前記処理が一括処理である場合であって前記処理速度が前記速度閾値以上の場合、前記一括処理が前記情報処理システムで動作する何れかの逐次処理に影響を及ぼすと判定されたときに、前記解析情報を前記記憶部に記憶する処理を行う制御部と、
を備えることを特徴とする解析処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、解析処理プログラム、解析処理方法および解析処理装置に関する。
【背景技術】
【０００２】
例えば、所定の業務（処理）を行う情報処理システムで動作するアプリケーションプログラム（以下、アプリケーションと称する）に何らかの性能低下が発生した場合、性能低下の原因を調査するための解析処理が行われる。
【０００３】
関連する技術として、コンピュータシステムの障害解析を自動的に行う技術に関し、ユーザシステムの運用中に関し装置がログ情報を取得し、運用履歴データベースに蓄積する技術が提案されている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３０４３１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アプリケーションの性能低下の原因の解析は、解析情報に基づいて行われる。解析情報は、情報処理システムの所定の記憶装置に記憶される。該記憶装置の容量は有限であり、解析情報が常時取得されて、記憶装置に記憶されると、短時間で、記憶装置に記憶できる容量が少なくなる。
【０００６】
１つの側面として、本発明は、解析処理を行うための解析情報を効率的に記憶させることを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、解析処理プログラムは、コンピュータに、情報処理システムで実行される処理に対する解析処理で取得される解析情報を記憶部に記憶するか否かについて、前記処理が逐次処理である場合には前記逐次処理のレスポンス時間のうち前記情報処理システムによる前記処理の実行時間が所定の時間閾値を超えているかどうかに基づいて判定する、処理を実行させ、前記情報処理システムで実行される前記処理が開始された時刻から前記情報処理システムで実行される前記処理が中断された時刻までの時間をアクセス時間として、該アクセス時間に対して統計処理された時間を前記時間閾値とする、ことを特徴とする。
【発明の効果】
【０００８】
１つの側面によれば、解析処理を行うための解析情報を効率的に記憶させることができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理システムおよびクライアントの一例を示す図である。
【図２】解析処理装置の一例を示す図である。
【図３】アプリケーションの種別に応じた閾値の一例を示す図である。
【図４】アプリログの一例を示す図である。
【図５】レスポンス時間とアクセス時間との関係の一例を示す図である。
【図６】クライアントに表示される画面例を示す図（その１）である。
【図７】クライアントに表示される画面例を示す図（その２）である。
【図８】セッションと再ログインとの関係の一例を示す図である。
【図９】図８に対応するアクセスログおよびアプリログの一例を示す図である。
【図１０】コネクション強制切断時のアクセスログおよびアプリログの一例を示す図である。
【図１１】ＳＱＬ文の一例を示す図である。
【図１２】アクセスプランおよび性能情報の一例を示す図である。
【図１３】ＳＱＬ処理を時系列で示す表の一例である。
【図１４】オンライン業務アプリケーションおよびバッチ業務アプリケーションのＳＱＬトレースの一例を示す図である。
【図１５】ＳＱＬトレースの選択的保存の一例を説明する図である。
【図１６】バッチ業務アプリケーションにおける、アクセス時間および処理時間のグラフの一例を示す図である。
【図１７】オンライン業務アプリケーションにおけるアクセス時間のグラフの一例を示す図である。
【図１８】時間閾値の生成および更新の一例を示す図である。
【図１９】速度閾値の生成および更新の一例を示す図である。
【図２０】実施形態の処理の流れの一例を示すフローチャート（その１）である。
【図２１】実施形態の処理の流れの一例を示すフローチャート（その２）である。
【図２２】実施形態の処理の流れの一例を示すフローチャート（その３）である。
【図２３】実施形態の処理の流れの一例を示すフローチャート（その４）である。
【図２４】実施形態の処理の流れの一例を示すフローチャート（その５）である。
【図２５】実施形態の処理の流れの一例を示すフローチャート（その６）である。
【図２６】実施形態の処理の流れの一例を示すフローチャート（その７）である。
【図２７】解析処理装置のハードウェア構成の一例を示す図である。
【図２８】クライアントのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
＜情報処理システムおよびクライアントの一例＞
以下、図面を参照して、実施形態について説明する。図１は、情報処理システム１およびクライアント２の一例を示す。情報処理システム１は、所定の業務（処理）を行うためのコンピュータシステムであり、例えば、クラウドサービスをクライアント２に提供する。
【００１１】
クライアント２は、情報処理システム１を利用する利用者により操作される端末である。クライアント２は、情報処理システム１にアクセスすることで、情報処理システム１が提供する各種サービスを利用する。図１の例では、クライアント２は１台の例を示しているが、クライアント２は複数であってもよい。
【００１２】
図１の例では、情報処理システム１は、Ｗｅｂサーバ３とアプリサーバ４とＤＢサーバ５とデータベース６と解析処理装置７とを含む。Ｗｅｂサーバ３は、クライアント２との間で通信を行う。図１の例では、データベースを「ＤＢ」と表記している。
【００１３】
Ｗｅｂサーバ３は、アクセスログ記憶部３Ａを含む。アクセスログ記憶部３Ａは、情報処理システム１とクライアント２との間で行われる通信のアクセスログを記憶する。例えば、クライアント２が情報処理システム１にログインした場合、アクセスログには、該ログインの情報が記録される。
【００１４】
アプリサーバ４は、所定のアプリケーションを実行する。実施形態では、アプリケーションは、オンライン業務アプリケーションとバッチ業務アプリケーションとに大別されるものとする。
【００１５】
オンライン業務アプリケーションは、クライアント２からのリクエストに応じて、所定の処理を実行し、レスポンスをクライアント２に返信する動作を行うアプリケーションである。オンライン業務アプリケーションは、逐次処理（オンライン処理）を行うアプリケーションである。
【００１６】
バッチ業務アプリケーションは、所定の処理を一括して行うアプリケーションである。バッチ業務は、オンラインバッチ業務とオフラインバッチ業務とに大別される。オンラインバッチ業務は、情報処理システム１が稼動している間に行われる。オフラインバッチ業務は、情報処理システム１が稼動していない間に行われる。
【００１７】
アプリサーバ４は、アプリログ記憶部４Ａとシステムログ記憶部４Ｂとを含む。アプリログ記憶部４Ａは、アプリケーションのログ（ログデータ）を記憶する。アプリログは、アプリサーバ４で実行されるアプリケーションに関するログである。以下、アプリケーションを「アプリ」と略して表記することがある。
【００１８】
システムログ記憶部４Ｂは、アプリサーバ４で実行されるアプリケーションのシステムに関するシステムログを記憶する。システムログは、例えば、アプリケーションに発生したイベントに関するログを含んでもよい。
【００１９】
ＤＢサーバ５は、データベース６を管理するサーバである。ＤＢサーバ５はＳＱＬトレース記憶部５Ａを含む。Structured Query Language(SQL)は、データベース６を操作するための文字情報である。
【００２０】
実施形態では、情報処理システム１が実行する処理はＳＱＬ処理であり、該ＳＱＬ処理の解析（トレース）が行われることにより、ＤＢサーバ５の性能低下の原因の調査が行われる。
【００２１】
ＳＱＬトレースは、ＳＱＬ処理ごとの実行計画（アクセスプランとも称される）や実行時間、実行情報等を表す情報である。ＳＱＬトレースは、ＳＱＬトレース記憶部５Ａに記憶される。ＳＱＬトレースは、解析情報の一例である。
【００２２】
解析処理装置７は、所定の記憶装置にＳＱＬトレースを記憶し、記憶されたＳＱＬトレースに基づいて、ＤＢサーバ５に障害が生じた場合における原因を解析する。解析処理装置７は、ＳＱＬトレースを記憶するための記憶装置を含んでおり、該記憶装置にＳＱＬトレースが記憶される。
【００２３】
Ｗｅｂサーバ３とアプリサーバ４とはＤＢサーバ５とは、物理的に異なるサーバであってもよいし、１台のサーバが、Ｗｅｂサーバ３とアプリサーバ４とはＤＢサーバ５との機能を有してもよい。
【００２４】
解析処理装置７は、Ｗｅｂサーバ３、アプリサーバ４およびＤＢサーバ５から独立したコンピュータであってもよいし、解析処理装置７の機能はＤＢサーバ５に含まれてもよい。この場合、ＤＢサーバ５を実現するコンピュータが解析処理装置７になる。
【００２５】
＜解析処理装置の一例＞
次に、図２を参照して、解析処理装置７の一例について説明する。解析処理装置７は、処理部１０と記憶部２０とを含む。
【００２６】
処理部１０は、主制御部１１と演算部１２と閾値処理部１３と推定部１４と判定部１５と記憶制御部１６と入出力部１７とを含む。記憶部２０は、アクセス時間記憶部２１と処理速度記憶部２２と時間閾値記憶部２３と速度閾値記憶部２４と保存対象記憶部２５とを含む。
【００２７】
処理部１０の主制御部１１は、各種の処理を行う。演算部１２は、各種の演算を行う。閾値処理部１３は、閾値に関する処理を行う。推定部１４は、時間の推定を行う。判定部１５は、各種の判定を行う。例えば、判定部１５は、ＤＢサーバ５から取得されたＳＱＬトレースを保存対象記憶部２５に保存するか否かを判定する。
【００２８】
記憶制御部１６は、判定部１５の判定結果に基づいて、取得されたＳＱＬトレースを保存対象記憶部２５に保存するか否かを制御する。入出力部１７は、各種サーバとの間でデータの入出力を行う。例えば、主制御部１１の制御により、入出力部１７は、ＤＢサーバ５からＳＱＬトレースを取得する。
【００２９】
次に、記憶部２０のアクセス時間記憶部２１について説明する。アプリサーバ４は、ＤＢサーバ５にアクセスして、ＤＢサーバ５は、データベース６に対して所定の処理を行う。アプリサーバ４は、ＤＢサーバ５との間でコネクションを確立して、コネクションの確立を終了する。
【００３０】
実施形態では、アプリサーバ４とＤＢサーバ５との間のコネクションが確立してから、コネクションが終了するまでの時間をアクセス時間と称する。アクセス時間は、オンライン業務アプリケーションに関する時間である。アクセス時間記憶部２１は、コネクションを特定するコネクションIdentification(ID)ごとにアクセス時間を記憶する。
【００３１】
処理速度記憶部２２は、１回のトランザクションに含まれるＳＱＬ処理のうち、コネクションＩＤごとに、ＳＱＬ処理により処理されるデータベース６のレコード数の合計をＳＱＬ処理の処理時間の合計で除算した処理速度を記憶する。処理速度は、バッチ業務アプリケーションに関する速度である。
【００３２】
時間閾値記憶部２３は、時間閾値を記憶する。時間閾値は、アクセス時間に基づいて、ＳＱＬトレースを保存対象記憶部２５に保存するか否かを判定するための指標である。判定部１５は、アクセス時間が時間閾値よりも長い場合に、ＳＱＬトレースを保存対象記憶部２５に保存する。
【００３３】
速度閾値記憶部２４は、速度閾値を記憶する。速度閾値は、処理速度に基づいて、ＳＱＬトレースを保存対象記憶部２５に保存するか否かを判定するための指標である。判定部１５は、処理速度が速度閾値よりも低い場合に、ＳＱＬトレースを保存対象記憶部２５に保存する。
【００３４】
保存対象記憶部２５は、判定部１５により保存対象と判定されたＳＱＬトレースを記憶する記憶装置であり、ＳＱＬトレースが保存される。保存対象記憶部２５に保存されたＳＱＬトレースは、ＤＢサーバ５に性能低下が生じている場合における解析処理に利用される。保存対象記憶部２５は、保存部の一例である。
【００３５】
ＤＢサーバ５は、多くのＳＱＬ処理を行うため、解析処理装置７は、ＤＢサーバ５から多くのＳＱＬトレースを取得する。このため、取得されるＳＱＬトレースの情報量は多くなり、全てのＳＱＬトレースの情報量が保存対象記憶部２５に保存されると、短時間で、保存対象記憶部２５にＳＱＬトレースを保存することができなくなる。
【００３６】
そこで、保存対象記憶部２５は、判定部１５により保存対象として判定されたＳＱＬトレースを記憶し、判定部１５により保存対象として判定されないＳＱＬトレースは記憶しない。実施形態では、判定部１５により保存対象として判定されないＳＱＬトレースは、保存されることなく、破棄される。
【００３７】
＜アプリケーションの種別に応じた閾値の一例＞
次に、図３の例を用いて、アプリケーションの種別に応じた閾値の一例について説明する。上述したように、実施形態の閾値には、時間閾値および速度閾値の２種類の閾値がある。これら２種類の閾値は、アプリケーションの種別によって、使い分けがされる。
【００３８】
オンライン業務アプリケーションに関するＳＱＬトレースが保存されるか否かは、時間閾値に基づいて判定される。バッチ業務アプリケーションに関するＳＱＬトレースが保存されるか否かは、速度閾値に基づいて判定される。
【００３９】
以下、オンライン業務アプリケーションによる処理をオンライン処理と称することがあり、バッチ業務アプリケーションによる処理をバッチ処理と称することがある。
【００４０】
オンライン処理は、情報処理システム１にアクセスしたクライアント２により行われる逐次処理である。バッチ処理は、情報処理システム１が１回のトランザクションのＳＱＬ処理を一括して行う一括処理である。
【００４１】
オンライン処理の場合、ＳＱＬ処理は、逐次的に処理されるため、処理されるレコード数（処理レコード数）は少ない。バッチ処理は、一括的に処理が行われるため、処理されるレコード数は多くなる。
【００４２】
オンライン処理の場合、処理レコード数は少なく、１つのオンライン処理が他のオンライン処理に与える影響は少ない。このため、オンライン処理が他のオンライン処理に与える影響を確認する必要はない。
【００４３】
バッチ処理は、オフラインとオンラインとに大別される。オフラインのバッチ処理は、他のオンライン業務アプリケーションが稼動していない間に行われる。このため、オフラインのバッチ処理が、他のオンライン業務アプリケーションに影響を与えないため、該影響は確認されなくてもよい。
【００４４】
オンラインのバッチ処理は、他のオンライン業務アプリケーションが稼動している間に行われる。このため、オンラインのバッチ処理は、他のオンライン業務アプリケーションに影響を与える可能性があるため、該影響の確認が行われる。
【００４５】
次に、ＳＱＬトレース保存の判断指標および閾値について説明する。ＤＢサーバ５から取得されたＳＱＬトレースは、判定部１５の判定結果に基づいて、保存対象記憶部２５に記憶される。判断指標は、判定部１５による判定が行われる際の指標である。
【００４６】
オンライン処理の場合、指標は、アプリケーションのアクセス時間である。このアクセス時間は、アプリサーバ４とＤＢサーバ５との間のコネクションが確立して、コネクションが終了するまでの時間である。この場合の閾値（時間閾値）は、レスポンスに基づくアクセス時間に対して統計処理がされた値に設定される。
【００４７】
バッチ処理の場合、指標は、上述した１回のトランザクションの処理速度である。この場合、指標は、上述した処理速度である。また、オンラインバッチ処理の場合、他のオンライン業務への影響の有無も指標として使用される。オンラインバッチ処理の場合、重複した時間帯に実行している他のオンライン業務のＳＱＬトレースにロックやその他の待ちが発生しているか否かも指標として使用される。
【００４８】
＜アクセス時間の一例＞
次に、アクセス時間の一例について説明する。図４は、アプリサーバ４のアプリログ記憶部４Ａが記憶するアプリログの一例を示す。解析処理装置７の主制御部１１は、アプリログ記憶部４Ａから、例えば図４の例のアプリログを取得する。
【００４９】
例えば、図４の例で示すアプリログには、「connection ID=20141203102355acdc」に対応する「disconnection ID=20141203102355acdc」が記録されている。２つのＩＤは同じである。前者は、コネクションＩＤが確立されたことを示し、後者は、同じコネクションＩＤの確立が終了したことを示す。
【００５０】
アプリログにおいて、両者のコネクションＩＤにはそれぞれ対応する時刻が記録されている。演算部１２は、両者のコネクションＩＤの時刻の差分を算出する。算出された差分が、アクセス時間である。図４の例では、該アクセス時間は「Ａ」で示される。同様に、別のコネクションＩＤのアクセス時間は「Ｂ」で示される。アクセス時間は、アクセス所要時間とも称される。
【００５１】
＜オンライン業務アプリケーションのＳＱＬトレースの選択的保存の一例＞
オンライン業務におけるＳＱＬトレースの選択的保存の一例について説明する。オンライン業務の場合、クライアント２が情報処理システム１に対して、リクエストを送信し、情報処理システム１では逐次的な処理を行い、処理結果をレスポンスとしてクライアント２に送信する。
【００５２】
クライアント２が情報処理システム１にリクエストを送信してからレスポンスを受信するまでの時間が長くなると、ユーザは、処理を中断する操作をことが考えられる。例えば、ユーザは、上記の時間が長いと感じた場合、処理を中断する操作を行うことがある。
【００５３】
図５は、レスポンス時間とアクセス時間との関係の一例を示す。図５の例において、情報処理システム１がクライアント２からリクエストに基づいて、アプリケーションを開始した時刻をアプリ開始時刻とする。
【００５４】
アプリサーバ４とＤＢサーバ５との間のコネクションが確立した時刻をコネクション開始時刻とする。また、クライアント２が処理を中断する操作を受け付けた時刻を処理中断時刻とする。
【００５５】
処理中断時刻は、クライアント２が受け付ける操作である。そこで、解析処理装置７の推定部１４は、処理中断時刻を推定する。また、操作開始時刻からコネクション開始時刻までの時間を他の処理時間とする。他の処理時間は、例えば、Ｗｅｂサーバ３やアプリサーバ４が行う処理時間である。
【００５６】
レスポンス時間のうちアクセス時間が占める割合が大きくなると、レスポンス時間が長くなった原因は、ＤＢサーバ５に性能低下が生じていることに起因していることが考えられる。
【００５７】
実施形態において、オンライン業務アプリケーションの場合、ＳＱＬトレースを保存対象記憶部２５に保存するか否かは、時間閾値を基準として判定される。時間閾値は、演算部１２がアクセス時間に対して統計処理を行うことにより得られる。
【００５８】
レスポンス時間のうちアクセス時間が占める割合が小さい場合、レスポンス時間が長くなった原因は、ＤＢサーバ５に性能低下が生じていることに起因している可能性は低い。従って、レスポンス時間のうちアクセス時間が占める割合が所定の割合（例えば、５０％）未満の場合、該アクセス時間は、統計処理から除外される。
【００５９】
一方、レスポンス時間のうちアクセス時間が占める割合が大きい場合、レスポンス時間が長くなった原因は、ＤＢサーバ５に性能低下が生じていることに起因している可能性がある。従って、レスポンス時間のうちアクセス時間が占める割合が所定の割合以上の場合、該アクセス時間は、統計処理の対象（サンプル）になる。
【００６０】
次に、図６および図７を参照して、処理の中断について説明する。図６は、クライアント２の画面部３０に表示される画面例を示す。図６の例において、アプリケーションは、クライアント２が実行するブラウザで動作するものとする。アプリケーションの動作例は、この例には限定されない。
【００６１】
図６の画面例には、ブラウザ終了ボタン３０Ａが含まれる。また、画面部３０には、マウスポインタ３０Ｐが含まれる。マウスポインタ３０Ｐは、不図示のマウスに対する操作を反映する。
【００６２】
例えば、ユーザがマウスを用いて、ブラウザ終了ボタン３０Ａを押下する操作を行ったとする。クライアント２は、この操作を受け付けて、ブラウザを終了する。ブラウザが終了すると、ブラウザで動作していたアプリケーションも強制終了する。これにより、処理が中断する。
【００６３】
図７は、クライアント２の画面部３０に表示される他の画面例を示す。図７の画面例において、アプリケーションは、情報処理システム１と連携しているものとする。図７の画面例には、中止ボタン３０Ｂが含まれる。
【００６４】
例えば、ユーザがマウスを用いて、中止ボタン３０Ｂを押下する操作を行ったとする。該操作が行われると、アプリケーションは中断する。アプリケーションは、情報処理システム１と連携しているため、アプリケーションの中断操作を情報処理システム１は認識する。
【００６５】
図６の画面例の場合、情報処理システム１は、クライアント２のブラウザが閉じられた時刻を認識しない。つまり、解析処理装置７は、コネクション中断の操作時刻を認識しない。なお、図６において、コネクション開始時刻は、ＳＱＬ処理の開始時刻としてもよい。
【００６６】
図８（Ａ）は、１つのセッションにおける全セッション時間の途中でコネクション中断の操作が行われた例を示す。この場合、ＳＱＬ処理が実行中に、該アプリケーション処理が中断されたことが考えられる。
【００６７】
クライアント２のブラウザが閉じられた時刻を、解析処理装置７は認識しない。そこで、解析処理装置７の推定部１４は、中断を行ったユーザと同じユーザが情報処理システム１に再ログインした時刻を、コネクション中断の操作時刻と推定する。
【００６８】
Ｗｅｂサーバ３は、ユーザのログインを認識するため、解析処理装置７は、同一ユーザが再ログインした時刻を認識することができる。推定部１４は、セッションが終了するまでに、同一ユーザによる再ログインがあった場合、再ログインした時刻をコネクション中断の時刻と推定する。
【００６９】
例えば、ユーザがレスポンス時間の遅さに起因して、クライアント２のブラウザを閉じる操作を行った場合、該ユーザは、すぐに、ブラウザを再起動してアプリケーションを再開する操作を行うことが考えられる。
【００７０】
図８（Ｂ）は、１つのセッションが終了した後に、情報処理システム１が、同一ユーザによる再ログインを認識した場合の例を示す。この場合、再ログインによるコネクション開始時刻は、全セッション時間の終了時刻よりも後になる。
【００７１】
図８（Ｂ）の例の場合、コネクション中断の操作時刻と再ログインによるコネクション開始時刻との間の時間が長いため、推定部１４は、再ログインした時刻をコネクション中断の時刻と推定しない。この場合、同一ユーザによる再ログインの時刻は、統計処理の対象から除外される。
【００７２】
図９（Ａ）は、図８（Ａ）に対応するアクセスログおよびアプリログの一例を示す。アプリログは、アプリサーバ４のアプリログ記憶部４Ａに記憶される。システムログは、アプリサーバ４のシステムログ記憶部４Ｂに記憶される。
【００７３】
この例において、ユーザ「ｕｓｅｒ１」のログインによりセッション「ＡＡＡ」が確立される。その後、このセッションが終了する前に、再び同一ユーザ「ｕｓｅｒ１」のログインによりセッション「ＢＢＢ」が確立される。
【００７４】
この場合、コネクション中断の操作が行われてから、短時間で、再ログインの操作が行われたことをＷｅｂサーバ３は認識する。解析処理装置７の推定部１４は、再ログインによるコネクション開始時刻をコネクション中断の操作時刻と推定する。
【００７５】
Ｗｅｂサーバ３は、アクセスログに基づいて、セッション「ＢＢＢ」が確立された後、セッション「ＡＡＡ」がエラー（エラーコネクション）であることを認識する。
【００７６】
図９（Ｂ）は、図８（Ｂ）対応するＷｅｂサーバ３のアクセスログおよびアプリサーバ４のアプリログの一例を示す。この例において、ユーザ「ｕｓｅｒ１」のログインによりセッション「ＡＡＡ」が確立されて、このセッションが終了した後に、再び同一ユーザ「ｕｓｅｒ１」のログインによりセッション「ＢＢＢ」が確立される。
【００７７】
この場合、コネクション中断の操作が行われてから、再ログインの操作が行われるまでの時間が長いことから、解析処理装置７の推定部１４は、再ログインによるコネクション開始時刻をコネクション中断の操作時刻と推定しない。従って、同一ユーザによる再ログインの時刻は、統計処理の対象から除外される。
【００７８】
演算部１２は、図８（Ａ）および図９（Ａ）の場合、コネクションが確立されてから再ログインによるコネクション開始時刻までの時間をアクセス時間として算出する。一方、図８（Ｂ）および図９（Ｂ）の場合、アクセス時間は算出されない。
【００７９】
図１０は、アプリケーションの画面に中止ボタン３０Ｂが含まれている場合におけるアプリログおよびシステムログの一例を示す。中止ボタン３０Ｂが押下されると、コネクションが強制切断されたことをアプリサーバ４が認識する。システムログには、コネクションが強制切断されたことを示す情報が記録される。
【００８０】
推定部１４は、コネクションが強制切断された時刻をコネクション中断時刻と推定する。アプリサーバ４は、中止ボタン３０Ｂの押下を認識するため、コネクションが強制切断された時刻はコネクション中断時刻とほぼ同じ時刻である。
【００８１】
演算部１２は、アプリサーバのアプリログのうちコネクションが開始された時刻から、コネクション中断時刻までの時間をアクセス時間として算出する。
【００８２】
以上のように算出されたアクセス時間は、コネクションＩＤごとに、アクセス時間記憶部２１に記憶される。演算部１２は、統計処理の対象となるアクセス時間をアクセス時間記憶部２１から取得して、取得されたアクセス時間に対して統計処理を行う。
【００８３】
実施形態では、演算部１２は、取得されたアクセス時間の平均値および標準偏差を算出する。また、演算部１２は、平均値を基準として標準偏差の範囲内にあるアクセス時間の平均値を算出し、算出された平均値に所定の係数を乗じた値を時間閾値とする。係数は、任意の値（例えば、０．８）であってよい。
【００８４】
判定部１５は、演算部１２により算出されたアクセス時間を時間閾値と比較し、アクセス時間が時間閾値以上の場合、ＳＱＬトレースを保存対象記憶部２５に記憶すると判定する。この場合、記憶制御部１６は、ＳＱＬトレースを保存対象記憶部２５に保存する。
【００８５】
オンライン業務アプリケーションにおいてアクセス時間が時間閾値を超えている場合、ＤＢサーバ５に性能問題が生じている可能性があるため、後の解析のために、ＳＱＬトレースは、保存対象記憶部２５に保存される。
【００８６】
一方、アクセス時間が時間閾値以下の場合、ＳＱＬトレースは、保存対象記憶部２５に保存されず、破棄される。これにより、ＳＱＬトレース（解析情報）を選択的に保存することができ、解析情報の効率的な保存が実現される。
【００８７】
＜オフラインバッチ業務アプリケーションにおけるＳＱＬトレースの選択的保存の一例＞
次に、オフラインバッチ業務アプリケーションにおけるＳＱＬトレースの選択的保存の一例について説明する。入出力部１７は、ＳＱＬトレース記憶部５ＡからＳＱＬトレースを取得する。演算部１２は、１つのトランザクションに含まれる同一コネクションのＳＱＬ処理により処理されたレコード数を合計し、ＳＱＬ処理の処理時間を合計する。
【００８８】
演算部１２は、ＳＱＬ処理の合計レコード数を合計処理時間で除算して、処理速度を算出する。上述したように、ＳＱＬ処理は、ＳＱＬ文により実現される。図１１は、ＳＱＬ文の一例を示す。
【００８９】
例えば、ＳＱＬ処理が「SELECT」であれば、ＳＱＬトレースのうち「record number」からレコード数を抽出する。ＳＱＬ文によって、レコード数の抽出箇所が異なる。ＳＱＬ処理は、図１１の例には限定されない。
【００９０】
図１２は、ＳＱＬ処理が「SELECT」の場合のレコード数および処理時間の一例を示す。図１２の例に示すように、入出力部１７がＤＢサーバ５から入力するＳＱＬトレースは、実行計画を示すアクセスプランおよび性能情報を含む。
【００９１】
主制御部１１は、アクセスプランの「Start time」と同じ時刻が記録されている性能情報のうち、「Total Time」の箇所から処理時間を抽出し、上記の「record number」からレコード数を抽出する。
【００９２】
図１３は、１つのトランザクションについて、実行されたＳＱＬ処理を時系列で示す表である。破線で囲まれているコネクションＩＤは、全て同一のコネクションＩＤである。演算部１２は、同一のコネクションＩＤに対応する処理時間およびレコード数を合計する。また、演算部１２は、合計レコード数を合計処理時間で演算して、処理速度を算出する。
【００９３】
以上のように算出された処理速度は、コネクションＩＤごとに、処理速度記憶部２２に記憶される。演算部１２は、記憶された処理速度をアクセス時間記憶部２１から取得して、取得された処理速度に対して統計処理を行う。
【００９４】
実施形態では、演算部１２は、取得された処理速度の平均値および標準偏差を算出する。また、演算部１２は、平均値を基準として標準偏差の範囲内にある処理速度の平均値を算出し、算出された平均値に所定の係数を乗じた値を速度閾値とする。係数は、任意の値（例えば、０．８）であってよい。
【００９５】
判定部１５は、演算部１２により算出された処理速度を速度閾値と比較し、処理速度が速度閾値より低い場合、ＳＱＬトレースを保存対象記憶部２５に記憶すると判定する。この場合、記憶制御部１６は、ＳＱＬトレースを保存対象記憶部２５に保存する。
【００９６】
バッチ業務アプリケーションにおいて、処理速度が速度閾値より低い場合、ＤＢサーバ５に性能問題が生じている可能性が高いため、後の解析のために、ＳＱＬトレースは、保存対象記憶部２５に保存される。
【００９７】
一方、処理速度が速度閾値以上の場合、ＳＱＬトレースは、保存対象記憶部２５に保存されない。これにより、ＳＱＬトレース（解析情報）を選択的に保存することができ、解析情報の効率的な保存が実現される。
【００９８】
＜オンラインバッチ業務アプリケーションにおけるＳＱＬトレースの選択的保存の一例＞
次に、オンラインバッチ業務アプリケーションにおけるＳＱＬトレースの選択的保存の一例について説明する。
【００９９】
オンラインバッチ業務アプリケーションの場合、上述したオフラインバッチ業務アプリケーションの判定方法だけでなく、該オンラインバッチ業務アプリケーションと重複した時間帯に動作している他のオンライン業務アプリケーションに対する影響も加味して、ＳＱＬトレース保存要否が判定される。
【０１００】
判定部１５により処理速度が速度閾値以上であると判定された場合、オンラインバッチ業務アプリケーションは正常に動作していると判定される。ただし、オンラインバッチ業務アプリケーションの場合、重複した時間帯に動作している他のオンライン業務アプリケーションの動作に影響を与える可能性がある。この場合、ＳＱＬトレースは、保存対象記憶部２５に保存される。
【０１０１】
オンラインバッチ業務アプリケーションが他のオンライン業務アプリケーションに影響を与えるか否かは、以下の３つの条件に基づいて判定される。第１条件は「重複した時間帯であるか」であり、第２条件は「同じデータベース資源に対するアクセスであるか」であり、第３条件は「待ちが発生しているか」である。
【０１０２】
まず、第１条件について説明する。入出力部１７は、ＳＱＬトレース記憶部５Ａからオンライン業務アプリケーションのＳＱＬトレースおよびオンラインバッチ業務アプリケーションのＳＱＬトレースを取得する。
【０１０３】
判定部１５は、オンライン業務アプリケーションのＳＱＬトレースの開始時刻（Start time）および終了時刻（End time）と、オンラインバッチ業務アプリケーションのＳＱＬトレースの開始時刻および終了時刻とを比較する。
【０１０４】
例えば、判定部１５は、２つのアプリケーションの開始時刻から終了時刻までの時間帯のうち一部でも重複している場合、２つのアプリケーションが動作している時間帯は同じであると判定してもよい。
【０１０５】
次に、第２条件について説明する。判定部１５は、２つのアプリケーションが同じデータベース資源にアクセスするか否かを判定する。同じデータベース資源に対するアクセスであるか否かは、テーブルおよびオブジェクトに基づいて、判定されてもよい。
【０１０６】
例えば、判定部１５は、２つのアプリケーションが、同じテーブルおよび同じオブジェクトをアクセス対象としている場合に、２つのアプリケーションが同じデータベース資源にアクセスすると判定してもよい。
【０１０７】
図１４の例において、「table name」はテーブル名を示し、「dso name」はオブジェクト名を示す。判定部１５は、２つのアプリケーションのＳＱＬトレースに含まれるテーブル名が同じであり、且つオブジェクト名も同じである場合、２つのアプリケーションは同じデータベース資源にアクセスすると判定する。
【０１０８】
次に、第３条件について説明する。第１条件および第２条件を満たしている場合であっても、オンライン業務アプリケーションに待ちが発生していなければ、判定部１５は、該オンライン業務アプリケーションに影響が与えられていないと判定する。
【０１０９】
実施形態では、待ちは、ロックによる排他待ち（図１４の例で「LOCK」）、またはキャッシュアウトや入出力競合によるページのリード・ライト待ち（図１４の例で「WAITING」）であるものとする。
【０１１０】
判定部１５は、オンライン業務アプリケーションのＳＱＬトレースのうち点線で囲まれた「LOCK」および「WAITING」の値がゼロの場合に、待ちは発生していないと判定する。一方、何れか一方の値が「１」以上の場合、待ちが発生していると判定する。
【０１１１】
以上の第１条件、第２条件および第３条件の全ての条件が満たされている場合、判定部１５は、ＳＱＬ処理の処理速度が速度閾値以上であっても、バッチ業務アプリケーションがオンライン業務アプリケーションに影響を与えていると判定する。
【０１１２】
＜２つの業務におけるＳＱＬトレースの選択的保存の比較＞
次に、図１５の例のグラフを参照して、２つの業務（オンライン業務アプリケーションおよびバッチ業務アプリケーション）における、ＳＱＬトレースの選択的保存の一例を説明する。図１５の例の２つのグラフにおいて、横軸は時間軸を示す。
【０１１３】
図１５（Ａ）は、オンライン業務アプリケーションにおける、アクセス時間のグラフの一例を示す。アクセス時間は経時的に変化する。図１５（Ａ）における破線は、時間閾値を示す。
【０１１４】
アクセス時間が時間閾値を超えたと判定部１５が判定した場合、記憶制御部１６は、ＤＢサーバ５から取得するＳＱＬトレースを保存対象記憶部２５に保存する。図１５（Ａ）に示されるように、アクセス時間が時間閾値を越えている間は、ＳＱＬトレースが保存対象記憶部２５に保存される。
【０１１５】
一方、アクセス時間が時間閾値以下であると判定部１５が判定した場合、記憶制御部１６は、ＤＢサーバ５から取得するＳＱＬトレースを保存対象記憶部２５に保存することなく、破棄する。
【０１１６】
図１５（Ａ）に示されるように、アクセス時間が時間閾値以下の間は、ＳＱＬトレースが保存対象記憶部２５に保存されない。解析処理装置７は、ＤＢサーバ５から定期的にＳＱＬトレースを取得しているが、アクセス時間が時間閾値以下の間は、取得されたＳＱＬトレースは破棄される。
【０１１７】
図１５（Ａ）において、点線の楕円で示される時間帯のＳＱＬトレースが保存対象記憶部２５に記憶される。つまり、アクセス時間が時間閾値を超えた場合にのみ、ＳＱＬトレースが保存対象記憶部２５に記憶される。
【０１１８】
図１５（Ｂ）は、バッチ業務アプリケーションにおける、処理速度のグラフの一例を示す。処理速度も経時的に変化する。図１５（Ｂ）における破線は、速度閾値を示す。なお、図１５（Ｂ）のバッチ業務アプリケーションは、オフラインのバッチ業務のアプリケーションであることを想定する。バッチ業務は、バッチ業務時間帯に行われる。
【０１１９】
処理速度が速度閾値より低くなったと判定部１５が判定した場合、記憶制御部１６は、ＤＢサーバ５にＳＱＬトレースを保存対象記憶部２５に保存する。処理速度が速度閾値より低い間は、ＳＱＬトレースが保存対象記憶部２５に保存される。
【０１２０】
一方、処理速度が速度閾値以上であると判定部１５が判定した場合、記憶制御部１６は、ＤＢサーバ５から取得するＳＱＬトレースを保存対象記憶部２５に保存することなく、破棄する。
【０１２１】
図１５（Ｂ）に示されるように、処理速度が速度閾値以上の間は、ＳＱＬトレースが保存対象記憶部２５に保存されない。この場合、上述したように、取得されたＳＱＬトレースは破棄される。
【０１２２】
従って、オンライン業務アプリケーションの場合も、バッチ業務アプリケーションの場合も、ＳＱＬトレースを保存する対象となる時間帯は全時間帯のうち一部の時間帯になるため、保存対象記憶部２５に記憶されるＳＱＬトレースの情報が少なくなる。このため、ＳＱＬトレースが選択的に保存され、効率的なＳＱＬトレースの保存が図られる。
【０１２３】
オンライン業務アプリケーションの場合、処理の種別は逐次処理になる。逐次処理の場合、ＤＢサーバ５のアクセス時間を指標として、ＳＱＬトレースの保存要否が判定されることが好ましい。上述した例では、保存対象の情報はＳＱＬトレースであったが、保存対象の情報はＳＱＬトレース以外であってもよい。
【０１２４】
例えば、情報処理システム１のうち、何らかの装置や機能に性能低下が生じた場合、装置や機能の解析情報（例えば、ログ等）を保存して、保存された解析情報に基づいて、性能低下の原因が解析される。
【０１２５】
処理の種別が逐次処理の場合、クライアント２が情報処理システム１にリクエストを送信してから、レスポンスを受信するまでのレスポンス時間に基づいて、解析情報の保存要否が判定されることが好ましい。つまり、逐次処理の場合、解析情報の保存要否の指標は、レスポンス時間になる。
【０１２６】
ＳＱＬトレースの場合、該ＳＱＬトレースの保存要否は、アクセス時間に基づいて判定される。アクセス時間はレスポンス時間に含まれるため、逐次処理の場合、レスポンス時間に基づいて、ＳＱＬトレースの保存要否が判定されることになる。
【０１２７】
一方、処理の種別が一括処理の場合、処理速度に基づいて、解析情報の保存要否が判定されることが好ましい。つまり、一括処理の場合、解析情報の保存要否の指標は、処理速度になる。
【０１２８】
従って、実施形態の解析処理装置７は、処理の種別が、逐次処理であるか、または一括処理であるかに応じて、異なる指標により、解析情報の保存要否を判定する。これにより、処理の種別に応じて、解析情報の保存要否を適切に判定することができ、解析情報が効率的に保存される。
【０１２９】
図１６は、バッチ業務アプリケーションにおける、アクセス時間および処理時間のグラフの一例を示す。図１６の例のうち、棒グラフは、アクセス時間を示し、折れ線グラフは、処理速度を示す。
【０１３０】
バッチ業務アプリケーション（一括処理）の場合、ＳＱＬ処理により処理される情報量のばらつきが大きい。このため、処理時間のばらつきも大きくなる。従って、一括処理の場合、ＳＱＬトレースの保存要否は、処理速度を指標として判定されることが好ましい。
【０１３１】
図１６の例において、アクセス時間に基づいてＳＱＬトレースの保存要否が判定されると、アクセス時間が閾値を超える時間が長くなる。このため、保存対象となるＳＱＬトレースの情報量が多くなる。
【０１３２】
一方、図１６の例で、バッチ業務アプリケーションに応じた適切な指標である処理速度によりＳＱＬトレースの保存要否が判定されると、処理速度が閾値より低い時間は短くなる。このため、保存対象となるＳＱＬトレースの情報量が少なくなり、ＳＱＬトレースの効率的な保存が実現される。
【０１３３】
次に、図１７の例を参照して、オンライン業務アプリケーションにおけるアクセス時間のグラフの一例について説明する。図１７の例のグラフには、２つの閾値（閾値Ａおよび閾値Ｂ）がある。棒グラフは、アクセス時間を示す。
【０１３４】
閾値Ａは、アクセス時間の全体の平均値である。閾値Ｂは、クライアント２による処理中断操作に基づくコネクション中断時刻を反映したアクセス時間に統計処理を行った閾値である。閾値Ａおよび閾値Ｂは、時間閾値である。
【０１３５】
アクセス時間の全体の平均値である閾値Ａよりも、コネクション中断時刻を反映したアクセス時間に統計処理を行った閾値Ｂを基準として、ＳＱＬトレースの保存要否を判定した方が、保存対象となるＳＱＬトレースの情報量が少なくなる。このため、より効率的な解析処理の保存が図られる。
【０１３６】
＜時間閾値の生成および更新の一例＞
次に、図１８を参照して、時間閾値の生成および更新について説明する。図１８（Ａ）は、アクセス時間記憶部２１に記憶されるアクセス時間テーブルの一例を示す。
【０１３７】
アクセス時間テーブルは、ＰＩＤとプロセス名とセッションＩＤとコネクションＩＤとコネクション開始時刻コネクション終了時刻とアクセス総時間と中断フラグと時間閾値サンプルとの項目を含む。
【０１３８】
ＰＩＤは、プロセスＩＤを示す。プロセス名は、プロセスの名称を示す。ＰＩＤおよびプロセス名は、アプリケーションを特定する情報でもある。
【０１３９】
時間閾値サンプルは、時間閾値を算出する際に、使用されるサンプルであり、アクセス時間である。中断フラグは、オンライン業務アプリケーションが中断されたか否か、および中断された原因を表す。
【０１４０】
中断フラグが「０」の場合、オンライン業務アプリケーションは、中断されていないことを表す。
【０１４１】
中断フラグが「１」の場合、中止ボタン３０Ｂが押下されたことを原因（コネクション強制切断）として、オンライン業務アプリケーションが中断されたことを表す。中断フラグが「２」の場合、ブラウザが終了されたことを原因（エラーコネクション）として、オンライン業務アプリケーションが中断されたことを表す。
【０１４２】
中断フラグが「２」の場合、情報処理システム１は、オンライン業務アプリケーションが中断された時刻を認識しない。この場合、上述したように、セッション終了前に、同一ユーザから再ログインがあった場合には、推定部１４は、再ログインがあった時刻をコネクション中断時刻と推定する。
【０１４３】
図１８（Ａ）において、中断フラグが「２」の場合、アクセス総時間（コネクションＩＤのコネクションの処理にかかる総時間）は、コネクション開始時刻からコネクション終了時刻までの時間「７２秒」である。
【０１４４】
ただし、中断フラグが「２」であるコネクションは、エラーコネクションにより、コネクションが中断されている。推定部１４は、コネクション中断時刻を再ログイン時刻と推定し、演算部１２は、コネクション開始時刻から再ログインの時刻までの時間「３４秒」を算出する。閾値処理部１３は、時間閾値サンプルである「３４秒」を認識する。
【０１４５】
中断フラグが「０」のコネクションＩＤの時間は、時間閾値のサンプルには採用されない。中断フラグが「１」の場合、コネクション開始時刻からコネクション終了時刻までの時間が時間閾値サンプルとなる。図１８（Ａ）の場合、時間閾値サンプルは「２６秒」である。
【０１４６】
コネクションが確立されるごとに、アクセス時間テーブルの内容が更新される。閾値処理部１３は、アクセス時間テーブルの時間閾値サンプルに基づいて、時間閾値を生成し、生成した時間閾値を時間閾値記憶部２３に記憶する。
【０１４７】
閾値処理部１３が、時間閾値を生成する場合、アクセス時間テーブルのうち、中断フラグが「１」または「２」の時間閾値サンプルを取得し、時間閾値サンプルに基づく統計処理を演算部１２に実行させる。
【０１４８】
演算部１２は、時間閾値サンプルの平均値ＡＶＧおよび標準偏差σを算出する。図１８（Ｂ）の時間閾値サンプルの場合、平均値ＡＶＧは、「ＡＶＧ＝３７．８」であり、標準偏差σは、「σ＝１７．８９」である。
【０１４９】
演算部１２は、「ＡＶＧ−σ」から「ＡＶＧ＋σ」までの範囲の時間閾値サンプルを対象（図１８（Ｂ）で楕円の点線で囲まれた時間閾値サンプル）として、平均値を算出する。この場合、平均値は「３０秒」になる。閾値処理部１３は、この平均値を時間閾値として、時間閾値記憶部２３に記憶する。
【０１５０】
従って、コネクションが確立されるごとに、閾値処理部１３は、時間閾値サンプルに対して行われた統計処理の結果を時間閾値とすることで、時間閾値が自動的に生成され、且つ時間閾値が自動的に更新される。
【０１５１】
＜速度閾値の生成および更新の一例＞
次に、図１９を参照して、速度閾値の生成および更新について説明する。図１９（Ａ）は、処理速度記憶部２２に記憶される処理速度テーブルの一例を示す。
【０１５２】
処理速度テーブルは、ＰＩＤとプロセス名とコネクションＩＤとトランザクション開始時刻とトランザクション終了時刻と処理時間合計と処理レコード数合計と速度閾値サンプルとの項目を含む。
【０１５３】
速度閾値サンプルは、速度閾値を算出する際に、使用されるサンプルである。速度閾値サンプルは、処理レコード数合計を処理時間合計で除算した値である。
【０１５４】
コネクションが確立されるごとに、処理速度テーブルの内容が更新される。閾値処理部１３は、処理速度テーブルの速度閾値サンプルに基づいて、速度閾値を生成し、生成した速度閾値を速度閾値記憶部２４に記憶する。
【０１５５】
また、処理速度テーブルに変更があった場合には、閾値処理部１３は、速度閾値記憶部２４に記憶されている速度閾値を更新する。閾値処理部１３が、速度閾値を生成する場合、速度閾値サンプルに基づく統計処理を演算部１２に実行させる。
【０１５６】
演算部１２は、速度閾値サンプルの平均値ＡＶＧおよび標準偏差σを算出する。図１８（Ｂ）の時間閾値サンプルの場合、平均値ＡＶＧは、「ＡＶＧ＝１５．０３２」であり、標準偏差σは、「σ＝２．５０７」である。
【０１５７】
演算部１２は、「ＡＶＧ−σ」から「ＡＶＧ＋σ」までの範囲の速度閾値サンプルを対象（図１８（Ｂ）で楕円の点線で囲まれた速度閾値サンプル）として、平均値を算出する。この場合、平均値は１４．６０７秒になる。
【０１５８】
演算部１２は、算出した平均値に所定の係数（例えば、０．８）を乗じる。この場合、算出した平均値「１４．６０７秒」に「０．８」を乗じると、「１１．６８６秒」が算出される。閾値処理部１３は、この値を速度閾値とする。
【０１５９】
係数は、「１．０」未満であれば、任意の値であってよい。この係数が乗じられることにより、速度閾値は、上述した平均値よりも低くなる。これにより、ＳＱＬトレースの保存要否を判定するための速度閾値が低くなるため、算出された平均値よりも、余裕を持って、ＳＱＬトレースの保存要否の判定を行うことができる。
【０１６０】
＜実施形態の全体的な処理の流れを示すフローチャートの一例＞
次に、実施形態の処理の流れについて、フローチャートを参照して、説明する。図２０は、全体的な処理の流れの一例を示すフローチャートである。最初に、アプリケーションの種別の特定が行われる（ステップＳ１）。
【０１６１】
次に、オンライン業務アプリケーションのアクセス時間および時間閾値の算出処理が行われる（ステップＳ２）。また、バッチ業務アプリケーションの処理速度および速度閾値の算出処理が行われる（ステップＳ３）。
【０１６２】
以下、ステップＳ２の処理を第１の算出処理と称することもあり、ステップＳ３の処理を第２の算出処理と称することもある。
【０１６３】
次に、オンライン業務アプリケーションのＳＱＬトレースの記憶処理が行われる（ステップＳ４）。また、バッチ業務アプリケーションのＳＱＬトレースの記憶処理が行われる（ステップＳ５）。
【０１６４】
以下、ステップＳ４の処理を第１の記憶処理と称することもあり、ステップＳ５の処理を第２の記憶処理と称することもある。
【０１６５】
オンライン業務アプリケーションの場合、クライアント２は、情報処理システム１のＤＢサーバ５に所定のＳＱＬ処理を実行させるリクエストを発行する。一方、バッチ業務アプリケーションの場合、情報処理システム１の内部で、ＤＢサーバ５に所定のＳＱＬ処理を実行させるリクエストを発行する。
【０１６６】
解析処理装置７は、リクエストの発行元のInternet Protocol(IP)アドレスが情報処理システム１の外部であるか否かを判定する（ステップＳ１１）。
【０１６７】
リクエスト発行元のＩＰアドレスが情報処理システム１の外部の場合（ステップＳ１１でＹＥＳ）、判定部１５は、該リクエストは、外部のオンライン業務アプリケーションからのリクエストであると判定する。この場合、判定部１５は、アプリケーション種別がオンライン業務アプリケーションであると判定する（ステップＳ１２）。
【０１６８】
一方、リクエスト発行元のＩＰアドレスが情報処理システム１の内部の場合（ステップＳ１１でＮＯ）、判定部１５は、該リクエストは、情報処理システム１の内部からのリクエストであると判定する。この場合、判定部１５は、アプリケーション種別がバッチ業務アプリケーションであると判定する（ステップＳ１３）。
【０１６９】
＜第１の算出処理のフローチャートの一例＞
次に、図２２および図２３を参照して、第１の算出処理について説明する。主制御部１１は、アプリサーバ４のアプリログ記憶部４Ａからアプリログを取得し、コネクションＩＤに基づいて、コネクション開始時刻およびコネクション終了時刻を認識する。
【０１７０】
演算部１２は、コネクション開始時刻からコネクション終了時刻までの時間をアクセス時間として算出する（ステップＳ２１）。算出されたアクセス時間は、コネクションＩＤごとに、アクセス時間記憶部２１に記憶される（ステップＳ２２）。
【０１７１】
主制御部１１は、オンライン業務アプリケーションのセッションＩＤに基づいて、アプリログから、アプリケーションにログインしたユーザ名およびアプリ開始時刻を取得する（ステップＳ２３）。
【０１７２】
アプリログには、同一のユーザ名によるログインの情報が記録されている場合がある。主制御部１１は、アプリログから、同一ユーザ名の再ログインが記録されているか否かを判定する（ステップＳ２４）。
【０１７３】
アプリログに、同一ユーザ名による再ログインの記録がある場合（ステップＳ２４でＹＥＳ）、主制御部１１は、アプリログから、再ログインが行われた時刻を取得する（ステップＳ２５）。アプリログに、同一ユーザ名による再ログインの記録がない場合（ステップＳ２４でＮＯ）、ステップＳ２５の処理は行われない。
【０１７４】
判定部１５は、オンライン業務アプリケーションの中断操作が行われたか否かを判定する（ステップＳ２６）。
【０１７５】
例えば、システムログ記憶部４Ｂに記憶されているシステムログに、アプリログに記録されているコネクションＩＤと同一のコネクションＩＤにエラーコネクションやコネクション強制切断のメッセージが記録されている場合がある。この場合、判定部１５は、オンライン業務アプリケーションの中断操作が行われたと判定する。
【０１７６】
また、アクセスログ記憶部３Ａに記憶されているアクセスログに、アプリログに記録されているセッションＩＤと同一のセッションＩＤにエラーコネクションが記録されている場合がある。この場合、判定部１５は、オンライン業務アプリケーションの中断操作が行われたと判定する。
【０１７７】
オンライン業務アプリケーションの中断操作が行われたと判定部１５が判定した場合（ステップＳ２６でＹＥＳ）、処理は「Ａ」に進む。オンライン業務アプリケーションの中断操作が行われていないと判定部１５が判定した場合（ステップＳ２６でＮＯ）、処理は「Ｂ」に進む。
【０１７８】
「Ａ」以降の処理について、図２３のフローチャートを参照して、説明する。判定部１５は、オンライン業務アプリケーションの中断操作が行われた原因がエラーコネクションであるか否かを判定する（ステップＳ２７）。
【０１７９】
中断の原因が強制切断の場合（ステップＳ２７でＮＯ）、アプリ中断時刻はコネクション終了時刻に設定される（ステップＳ２８）。中断の原因がエラーコネクションの場合（ステップＳ２８でＹＥＳ）、アプリ中断時刻は上記の再ログインの時刻に設定される（ステップＳ２９）。
【０１８０】
演算部１２は、アプリ中断時刻からコネクション開始時刻までの時間をアクセス時間として算出する（ステップＳ３０）。ステップＳ２７でＹＥＳの場合、アプリ中断時刻は、再ログイン時刻になり、ステップＳ２７でＮＯの場合、アプリ中断時刻は、コネクション終了時刻になる。
【０１８１】
演算部１２は、アプリ開始時刻からアプリ中断時刻までの時間をレスポンス時間として算出する（ステップＳ３１）。そして、判定部１５は、レスポンス時間に占めるアクセス時間の割合が所定割合（例えば、５０％）以上であるか否かを判定する（ステップＳ３２）。
【０１８２】
実施形態では、レスポンス時間に占めるアクセス時間の割合が大きい場合、ＤＢサーバ５に性能低下が生じている可能性があると判定される。一方、レスポンス時間に占めるアクセス時間の割合が所定割合未満である場合（ステップＳ３２でＮＯ）、処理は「Ｂ」に進む。
【０１８３】
判定部１５は、同一ユーザによる再ログインがあったことがアクセスログに記録されている場合、再ログイン時刻がコネクション終了時刻より前であるか否かを判定する（ステップＳ３３）。
【０１８４】
再ログイン時刻がコネクション終了時刻より前である場合（ステップＳ３３でＹＥＳ）、閾値処理部１３は、コネクション開始時刻からコネクション中断時刻までのアクセス時間を時間閾値サンプルとして時間閾値記憶部２３に記憶する（ステップＳ３４）。
【０１８５】
そして、演算部１２は、時間閾値記憶部２３に記憶されている時間閾値サンプルに対して統計処理を行い、時間閾値を算出する。閾値処理部１３は、算出された時間閾値を時間閾値記憶部２３に記憶する（ステップＳ３５）。
【０１８６】
時間閾値記憶部２３に時間閾値が記憶されている場合、算出された時間閾値を時間閾値記憶部２３に記憶する。時間閾値記憶部２３に時間閾値が記憶されている場合、該時間閾値を、算出された時間閾値に更新する。
【０１８７】
そして、第１の算出処理が終了する。ステップＳ２６でＮＯの場合、処理は「Ｂ」に進み、第１の算出処理が終了する。この場合、ステップＳ２７乃至ステップＳ３５の処理は行われない。
【０１８８】
ステップＳ３２でＮＯの場合、処理は「Ｂ」に進み、第１の算出処理が終了する。この場合、ステップＳ３３乃至ステップＳ３５の処理は行われない。ステップＳ３３でＮＯの場合、ステップＳ３４およびステップＳ３５の処理は行われず、第１の算出処理が終了する。
【０１８９】
＜第２の算出処理のフローチャートの一例＞
次に、第２の算出処理の一例について、図２４のフローチャートを参照して、説明する。主制御部１１は、ＳＱＬトレースのアクセスプランから、トランザクションの開始時刻および終了時刻を取得する（ステップＳ４１）。
【０１９０】
主制御部１１は、ＳＱＬトレースのアクセスプランに基づいて、コネクションＩＤで特定されるコネクションの最初のＳＱＬ処理が実行された時刻をトランザクションの開始時刻と認識する。
【０１９１】
また、主制御部１１は、ＳＱＬトレースのアクセスプランに基づいて、上記コネクションＩＤと同一のコネクションＩＤのコネクションの「COMMIT」または「ROLLBACK」のＳＱＬ処理が実行された時刻をトランザクションの終了時刻と認識する。
【０１９２】
主制御部１１は、上記のコネクションＩＤのコネクションの開始時刻から終了時刻までの範囲内で、各ＳＱＬ処理の処理時間およびレコード数を取得する（ステップＳ４２）。
【０１９３】
演算部１２は、取得された各ＳＱＬ処理の処理時間を合計して、合計処理時間を算出する（ステップＳ４３）。また、演算部１２は、取得された各ＳＱＬ処理のレコード数を合計して、合計レコード数を算出する（ステップＳ４４）。
【０１９４】
演算部１２は、合計レコード数を合計処理時間で除算して、処理速度を算出する（ステップＳ４５）。閾値処理部１３は、算出された処理速度を処理速度サンプルとして、コネクションＩＤごとに、処理速度記憶部２２に記憶する（ステップＳ４５）。
【０１９５】
演算部１２は、処理速度記憶部２２に記憶された処理速度サンプルに対して統計処理を行い、速度閾値を算出する（ステップＳ４７）。閾値処理部１３は、算出された速度閾値を速度閾値記憶部２４に記憶する（ステップＳ４８）。既に、速度閾値記憶部２４に速度閾値が記憶されている場合には、閾値処理部１３は、速度閾値の更新を行う。
【０１９６】
＜第１の記憶処理のフローチャートの一例＞
次に、第１の記憶処理の一例について、図２５のフローチャートを参照して、説明する。判定部１５は、アクセス時間記憶部２１に記憶されているアクセス時間テーブルから、アプリケーションごとのアクセス時間を抽出する（ステップＳ５１）。
【０１９７】
判定部１５は、抽出されたアクセス時間が時間閾値を越えているか否かを判定する（ステップＳ５２）。抽出されたアクセス時間が時間閾値を越えている場合（ステップＳ５２でＹＥＳ）、記憶制御部１６は、ＳＱＬトレースのうち、以下の２つの条件を満たすＳＱＬ処理のトレース情報を抽出する（ステップＳ５３）。
【０１９８】
１つ目の条件は、ＳＱＬ処理の開始時刻から終了時刻までの時間が、アプリケーション（オンライン業務アプリケーション）の開始時刻から終了時刻までの範囲内である、という条件である。
【０１９９】
２つ目の条件は、上記のオンイラン業務アプリケーションのコネクションＩＤと同一のコネクションＩＤである、という条件である。
【０２００】
記憶制御部１６は、以上の２つの条件を満たすＳＱＬ処理のトレース情報を保存対象記憶部２５に記憶する（ステップＳ５４）。一方、ステップＳ５２でＮＯの場合、ステップＳ５３およびステップＳ５４の処理は行われない。
【０２０１】
＜第２の記憶処理のフローチャートの一例＞
次に、第２の記憶処理の一例について、図２６のフローチャートを参照して、説明する。判定部１５は、処理速度記憶部２２に記憶されている処理速度テーブルから、アプリケーションごとの処理速度を抽出する（ステップＳ６１）。
【０２０２】
判定部１５は、抽出されたアクセス時間が速度閾値を下回ったか否かを判定する（ステップＳ６２）。抽出された処理速度が速度閾値以上の場合（ステップＳ６２でＮＯ）、記憶制御部１６は、ＳＱＬトレースのうち、以下の３つの条件を満たすＳＱＬ処理のトレース情報を抽出する（ステップＳ６３）。
【０２０３】
１つ目の条件は、ＳＱＬ処理の開始時刻から終了時刻までの時間が、トランザクションの開始時刻から終了時刻までの範囲内である、という条件である。
【０２０４】
２つ目の条件は、重複した時間帯の他のオンライン業務アプリケーションに待ちが発生しているという条件である。上述した例の場合、他のオンライン業務アプリケーションの重複した時間帯のＳＱＬトレースに「WAITING」または「LOCK」のうち何れかの値が「１」以上である、という条件である。
【０２０５】
３つ目の条件は、上記の他のオンライン業務アプリケーションとバッチ業務アプリケーションとで、アクセスするデータベース資源が同一である、という条件である。上述した例の場合、両者のＳＱＬトレースが、同じテーブル名および同じオブジェクト名を示している場合、アクセスするデータベース資源が同一であることを示す。
【０２０６】
以上、３つの条件が満たされている場合、バッチ業務アプリケーションが、他のオンライン業務アプリケーションに影響を与えている可能性がある。判定部１５は、上記の３つの条件が満たされているか否かを判定する（ステップＳ６４）。
【０２０７】
上記３つの条件が満たされている場合（ステップＳ６４でＹＥＳ）、記憶制御部１６は、ＳＱＬトレースを保存対象記憶部２５に記憶する（ステップＳ６５）。バッチ業務アプリケーションが他のオンライン業務アプリケーションに影響を与えている可能性があるためである。
【０２０８】
一方、上記３つの条件の何れかが満たされていない場合（ステップＳ６４でＮＯ）、記憶制御部１６は、ＳＱＬトレースを保存対象記憶部２５に記憶しない。つまり、ステップＳ６４でＮＯの場合、ステップＳ６５の処理は行われない。
【０２０９】
ステップＳ６２でＹＥＳの場合、処理速度が速度閾値を下回ったため、処理はステップＳ６５に移り、記憶制御部１６は、ＳＱＬトレースを保存対象記憶部２５に記憶する。
【０２１０】
＜解析処理装置のハードウェア構成の一例＞
次に、図２７の例を参照して、解析処理装置７のハードウェア構成の一例を説明する。図２７の例に示すように、バス１００に対して、プロセッサ１１１とＲＡＭ１１２とＲＯＭ１１３と補助記憶装置１１４と媒体接続部１１５と通信インタフェース１１６と入出力インタフェース１１７とが接続されている。図１２において、インタフェースは「ＩＦ」と略して示されている。
【０２１１】
プロセッサ１１１は任意の処理回路である。プロセッサ１１１はＲＡＭ１１２に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態の処理を行うプログラムを適用してもよい。ＲＯＭ１１３はＲＡＭ１１２に展開されるプログラムを記憶する不揮発性の記憶装置である。
【０２１２】
補助記憶装置１１４は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置１１４に適用してもよい。媒体接続部１１５は、可搬型記録媒体１１９と接続可能に設けられている。通信インタフェース１１６は、外部との間で通信を行うインタフェースである。
【０２１３】
可搬型記録媒体１１９としては、可搬型のメモリや光学式ディスク（例えば、Compact Disc(CD)やDigital Versatile Disc(DVD)等）を適用してもよい。この可搬型記録媒体１１９に実施形態の処理を行うプログラムが記録されていてもよい。
【０２１４】
解析処理装置７のうち、処理部１０は、与えられたプログラムをプロセッサ１１１が実行することにより実現されてもよい。記憶部２０は、ＲＡＭ１１２や補助記憶装置１１４等により実現されてもよい。
【０２１５】
ＲＡＭ１１２、ＲＯＭ１１３、補助記憶装置１１４および可搬型記録媒体１１９は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【０２１６】
＜クライアントのハードウェア構成の一例＞
次に、図２８の例を参照して、クライアント２のハードウェア構成の一例を説明する。図２８の例に示すように、バス２００に対して、プロセッサ２１１とＲＡＭ２１２とＲＯＭ２１３と補助記憶装置２１４と媒体接続部２１５と通信インタフェース２１６と入出力インタフェース２１７とが接続されている。
【０２１７】
プロセッサ２１１は任意の処理回路である。プロセッサ２１１はＲＡＭ２１２に展開されたプログラムを実行する。ＲＯＭ２１３はＲＡＭ２１２に展開されるプログラムを記憶する不揮発性の記憶装置である。
【０２１８】
補助記憶装置２１４は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置２１４に適用してもよい。媒体接続部２１５は、可搬型記録媒体２１９と接続可能に設けられている。
【０２１９】
通信インタフェース２１６は、外部との間で通信を行うインタフェースである。入出力インタフェース２１７は、ディスプレイ２１７Ａやマウス２１７Ｂに接続される。例えば、画面部３０はディスプレイ２１７Ａにより実現されてもよい。
【０２２０】
可搬型記録媒体２１９としては、可搬型のメモリや光学式ディスク（例えば、Compact Disc(CD)やDigital Versatile Disc(DVD)等）を適用してもよい。この可搬型記録媒体１１９に実施形態の処理を行うプログラムが記録されていてもよい。
【０２２１】
ＲＡＭ２１２、ＲＯＭ２１３、補助記憶装置２１４および可搬型記録媒体２１９は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【０２２２】
＜その他＞
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０２２３】
１    情報処理システム
２    クライアント
３    Ｗｅｂサーバ
４    アプリサーバ
５    ＤＢサーバ
６    データベース
７    解析処理装置
１０    処理部
１１    主制御部
１２    演算部
１３    閾値処理部
１４    推定部
１５    判定部
１６    記憶制御部
１７    入出力部
２０    記憶部
２１    アクセス時間記憶部
２２    処理速度記憶部
２３    時間閾値記憶部
２４    速度閾値記憶部
２５    保存対象記憶部
１１１、２１１    プロセッサ
１１２、２１２    ＲＡＭ
１１３、２１３    ＲＯＭ
【図１】
0006531597.tif 000002
【図２】
0006531597.tif 000003
【図３】
0006531597.tif 000004
【図４】
0006531597.tif 000005
【図５】
0006531597.tif 000006
【図６】
0006531597.tif 000007
【図７】
0006531597.tif 000008
【図８】
0006531597.tif 000009
【図９】
0006531597.tif 000010
【図１０】
0006531597.tif 000011
【図１１】
0006531597.tif 000012
【図１２】
0006531597.tif 000013
【図１３】
0006531597.tif 000014
【図１４】
0006531597.tif 000015
【図１５】
0006531597.tif 000016
【図１６】
0006531597.tif 000017
【図１７】
0006531597.tif 000018
【図１８】
0006531597.tif 000019
【図１９】
0006531597.tif 000020
【図２０】
0006531597.tif 000021
【図２１】
0006531597.tif 000022
【図２２】
0006531597.tif 000023
【図２３】
0006531597.tif 000024
【図２４】
0006531597.tif 000025
【図２５】
0006531597.tif 000026
【図２６】
0006531597.tif 000027
【図２７】
0006531597.tif 000028
【図２８】
0006531597.tif 000029