Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
HIERARCHICAL LOAD ESTIMATION SYSTEM, METHOD, AND PROGRAM
Document Type and Number:
WIPO Patent Application WO/2009/044589
Kind Code:
A1
Abstract:
A hierarchical load estimation system (1) is provided with a storage device (2), a calling frequency calculation module (100), and an issuing frequency calculation module (200). In the storage device (2), hierarchy calling information (10) indicating the design of hierarchical processing called hierarchically in a multilayer system and issue information (20) regulating a database operation sentence issued by database operation processing out of the hierarchical processing are stored. The calling frequency calculation module (100) calculates the calling frequency of the database operation processing by referring to the hierarchy calling information (10). The issuing frequency calculation module (200) calculates the issuing frequency of the database operation sentence issued by the database operation processing by referring to the calculated calling frequencies and the issue information (20).

Inventors:
SASAKI SHIGERO (JP)
Application Number:
PCT/JP2008/064871
Publication Date:
April 09, 2009
Filing Date:
August 21, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NEC CORP (JP)
SASAKI SHIGERO (JP)
International Classes:
G06F11/36; G06F12/00
Foreign References:
JP2004220453A2004-08-05
JPH05151031A1993-06-18
JPS63259740A1988-10-26
JP2002183416A2002-06-28
JPH02219138A1990-08-31
JPH0438522A1992-02-07
JP2000207255A2000-07-28
JPH11265306A1999-09-28
JPH06139065A1994-05-20
JPH03108036A1991-05-08
JPS61245273A1986-10-31
Attorney, Agent or Firm:
KUDOH, Minoru (24-10 Minamiooi 6-chom, Shinagawa-ku Tokyo 13, JP)
Download PDF:
Claims:
 多層システムにおいて階層的に呼び出される階層処理の設計を示す階層呼出情報と、前記階層処理のうちデータベース操作処理によって発行されるデータベース操作文を規定する発行情報とが格納される記憶装置と、
 前記階層呼出情報を参照して、前記データベース操作処理の呼出回数を算出する呼出回数算出モジュールと、
 前記算出された呼出回数と前記発行情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の発行回数を算出する発行回数算出モジュールと
 を備える
 階層型負荷推定システム。
 請求の範囲1に記載の階層型負荷推定システムであって、
 更に、負荷算出モジュールを備え、
 前記記憶装置には更に、データベース操作文あたりの負荷を示す負荷情報が格納され、
 前記負荷算出モジュールは、前記算出された発行回数と前記負荷情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の負荷を算出する
 階層型負荷推定システム。
 請求の範囲2に記載の階層型負荷推定システムであって、
 前記発行情報は、データベース操作文の発行回数を前記データベース操作処理毎に示し、
 前記発行回数算出モジュールは、前記データベース操作処理によって発行されるデータベース操作文の発行回数の合計を算出し、
 前記負荷算出モジュールは、前記データベース操作処理によって発行されるデータベース操作文の負荷の合計を算出する
 階層型負荷推定システム。
 請求の範囲2に記載の階層型負荷推定システムであって、
 前記発行情報は、データベース操作文の分類を前記データベース操作処理毎に示し、
 前記発行回数算出モジュールは、前記発行回数を前記分類毎に算出し、
 前記負荷情報は、データベース操作文あたりの負荷を前記分類毎に示し、
 前記負荷算出モジュールは、前記負荷を前記分類毎に算出する
 階層型負荷推定システム。
 請求の範囲2乃至4のいずれか一項に記載の階層型負荷推定システムであって、
 前記多層システムは、データベース層を含み、前記負荷算出モジュールは、前記負荷を前記データベース層にかかる負荷として算出する
 階層型負荷推定システム。
 請求の範囲1乃至5のいずれか一項に記載の階層型負荷推定システムであって、
 前記階層呼出情報は、
 前記階層処理のうち外部から要求される最上位処理の呼出回数を示す第1情報と、
 前記階層処理における上位処理と下位処理との間の呼び出し関係を規定する第2情報と
 を含み、
 前記呼出回数算出モジュールは、前記第1情報と前記第2情報を用い、各層の処理の呼出回数を上位層から下位層に向けて順番に算出することによって、前記データベース操作処理の呼出回数を算出する
 階層型負荷推定システム。
 多層システムにおいて階層的に呼び出される階層処理の設計を示す階層呼出情報を記憶装置から読み出すことと、
 前記階層処理のうちデータベース操作処理によって発行されるデータベース操作文を規定する発行情報を前記記憶装置から読み出すことと、
 前記階層呼出情報を参照して、前記データベース操作処理の呼出回数を算出することと、
 前記算出された呼出回数と前記発行情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の発行回数を算出することと
 を含む
 階層型負荷推定方法。
 請求の範囲7に記載の階層型負荷推定方法であって、
 更に、
 データベース操作文あたりの負荷を示す負荷情報を前記記憶装置から読み出すことと、
 前記算出された発行回数と前記負荷情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の負荷を算出することと
 を含む
 階層型負荷推定方法。
 コンピュータ読み取り可能な記録媒体に記録された階層型負荷推定プログラムであって、
 多層システムにおいて階層的に呼び出される階層処理の設計を示す階層呼出情報を記憶装置から読み出すことと、
 前記階層処理のうちデータベース操作処理によって発行されるデータベース操作文を規定する発行情報を前記記憶装置から読み出すことと、
 前記階層呼出情報を参照して、前記データベース操作処理の呼出回数を算出することと、
 前記算出された呼出回数と前記発行情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の発行回数を算出することと
 をコンピュータに実行させる
 階層型負荷推定プログラム。
 請求の範囲9に記載の階層型負荷推定プログラムであって、
 更に、
 データベース操作文あたりの負荷を示す負荷情報を前記記憶装置から読み出すことと、
 前記算出された発行回数と前記負荷情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の負荷を算出することと
 をコンピュータに実行させる
 階層型負荷推定プログラム。
Description:
階層型負荷推定システム、方法 よびプログラム

 本発明は、システムにおける負荷を推定 るための技術に関する。特に、本発明は、 層システムにおける階層型負荷を推定する めの技術に関する。

 システムの構築は、設計フェーズ、開発 ェーズ、運用フェーズの三つのフェーズに けられる。一般に、設計フェーズでは機能 、開発フェーズでは実装が、運用フェーズ は性能が主要な問題となる。これらのフェ ズは、新規システムを構築するときだけで く、既存システムを変更するときにも現れ 。

 運用フェーズにおいてシステムが十分な 能を発揮するためには、支障なく機能を提 できるだけの十分な計算機資源が必要であ 。必要な計算機資源の量は、機能を提供す 際に発生する負荷の量に依存する。少ない 荷を発生させる機能は少ない計算機資源で 供でき、多くの負荷を発生させる機能は多 の計算機資源を必要とする。従って、シス ム性能を評価するためには、システム負荷 測定することが望ましい。

 運用フェーズにおいてシステム負荷を測 するための技術として、次のものが知られ いる。例えば、文献“gprof: A Call Graph Exec ution Profiler, by S. Graham, P. Kessler and M. Mck usick, Proceedings of the 1982 SIGPLAN Symposium on  Compiler Construction, Vol. 17, No. 6, pp. 120-126,  1982.”に開示されているプロファイリング技 を用いれば、プログラム中の個々の関数の 出回数をカウントすることができる。また 特開2005―190277号公報には、サーバープログ ラム間の通信を観測することで得られるIPア レスとポート番号から、サーバープログラ の呼出頻度をカウントする方法が記載され いる。

 運用フェーズにおいてシステム性能の不 が発覚したとき、十分な性能を達成するた に設計等を見直さなければならない場合が る。しかしながらこの場合、多大な手戻り 工数が発生し、システム構築コストが増大 る。逆に言えば、もし上流フェーズの段階 システム性能やシステム負荷を推定するこ ができれば、手戻り工数を抑制し、コスト 大を抑制することができる。特に、設計フ ーズの段階でシステム負荷を推定すること 、システム構築コストの削減に有効である

 しかしながら、設計フェーズにおいて従 使用できた技術は、主にシステムの機能設 に関する技術であった。例えば、文献“AllF usion(登録商標) ERwin(登録商標) Data Modeler r7. ”には、データベースの機能設計ツールとし ての「ERwin(登録商標)」が紹介されている。 のツールは、論理設計の物理設計への変換 個別処理の最適化、既存のデータベースの バースエンジニアリング等の機能を提供し いる。また、特開平8―202541号公報には、DFD( Data Flow Diagram)の変更とER(Entity Relationship)の 更を相互に反映させる方法が記載されてい 。しかし、これらのツールや方法では、設 フェーズにおいてシステム負荷を推定する とはできない。

 近年、階層構造を有する「多層システム が増加している。多層システムでは、処理 容の頻繁な変更に対応できるように、また 性能を容易に向上させられるように、サー ス要求は複数のサーバー層でパイプライン に処理される。典型的な多層システムとし は、ウェブ層で表示処理を、アプリケーシ ン層で演算処理を、データベース層でデー 処理を行う三層システムが知られている。 のような多層システムの性能は、複数のサ バー層のうちボトルネック層の性能によっ 主に決定される。例えば上記三層システム 場合、一般的にはデータベース層がボトル ックとなり、そのデータベース層の性能が 層システムの性能を決定する。従って、三 システムの性能を定量的に推定するために 、ボトルネック層となりがちなデータベー 層にかかる負荷を定量的に推定することが ましい。

 データベース層には、階層的な負荷(以下 、「階層型負荷」と参照される)がかかる。 層システムでは、上位層の処理が下位層の 理を呼び出す。つまり、サービス要求によ て呼び出される処理が他の処理を呼び出し 呼び出された処理が更に他の処理を呼び出 、というように処理が階層的に呼び出され 。そのような処理は、以下「階層処理」と 照される。階層型負荷とは、このように階 的に呼び出される階層処理によって生じる 荷である。データベース層は、通常は多層 ステムの最下位層である。従って、データ ース層には階層型負荷がかかる。

 また、データベース層への処理要求のほ んどは、「DML(Data Manipulation Language)文」で 行される。DML文は、データベースに対する い合わせに使用されるSQL(Structured Query Langu age)文の一部である。SQL文は大きくわけて、DM L文、DDL(Data Definition Language)文、DCL(Data Contro l Language)文の三種類に分類されるが、ほとん どの負荷はDML文の処理によって生じる。DML文 としては、データ抽出を指示する“select文” 、データ更新を指示する“update文”、データ 挿入を指示する“insert文”、データ削除を指 示する“delete文”などが挙げられる。これら DML文には、データが操作されるテーブル、つ まり、アクセス対象のデータセットが明記さ れる。尚、アクセスするデータ量が同じであ っても、DML文の種類に依って処理内容と処理 量は異なる。例えば、select文ではデータ読み 出し処理だけが発生するが、update文ではデー タ書き込みだけでなく、データロックやログ の書き込み等の処理が発生する。

 本発明の1つの目的は、多層システムにお ける階層型負荷を設計フェーズにおいて定量 的に推定することができる技術を提供するこ とにある。

 本発明の第1の観点において、階層型負荷 推定システムが提供される。その階層型負荷 推定システムは、記憶装置と、呼出回数算出 モジュールと、発行回数算出モジュールとを 備える。記憶装置には、多層システムにおい て階層的に呼び出される階層処理の設計を示 す階層呼出情報と、階層処理のうちデータベ ース操作処理によって発行されるデータベー ス操作文を規定する発行情報とが格納される 。呼出回数算出モジュールは、階層呼出情報 を参照して、データベース操作処理の呼出回 数を算出する。発行回数算出モジュールは、 算出された呼出回数と発行情報を参照して、 データベース操作処理によって発行されるデ ータベース操作文の発行回数を算出する。

 本発明の第2の観点において、階層型負荷 推定方法が提供される。その階層型負荷推定 方法は、多層システムにおいて階層的に呼び 出される階層処理の設計を示す階層呼出情報 を記憶装置から読み出すことと、階層処理の うちデータベース操作処理によって発行され るデータベース操作文を規定する発行情報を 記憶装置から読み出すことと、階層呼出情報 を参照して、データベース操作処理の呼出回 数を算出することと、算出された呼出回数と 発行情報を参照して、データベース操作処理 によって発行されるデータベース操作文の発 行回数を算出することと、を含む。

 本発明の第3の観点において、階層型負荷 推定プログラムが提供される。その階層型負 荷推定プログラムは、多層システムにおいて 階層的に呼び出される階層処理の設計を示す 階層呼出情報を記憶装置から読み出すことと 、階層処理のうちデータベース操作処理によ って発行されるデータベース操作文を規定す る発行情報を記憶装置から読み出すことと、 階層呼出情報を参照して、データベース操作 処理の呼出回数を算出することと、算出され た呼出回数と発行情報を参照して、データベ ース操作処理によって発行されるデータベー ス操作文の発行回数を算出することと、をコ ンピュータに実行させる。

 本発明によって算出されたデータベース 作文の発行回数から、データベース層にか る階層型負荷を見積もることができる。つ り、多層システムにおける階層型負荷を定 的に推定することができる。その階層型負 の推定において、実際にシステムを構築す ことは不要である。たとえ設計フェーズの 階であっても、階層型負荷を定量的に推定 ることが可能となる。これにより、運用フ ーズから設計フェーズへの戻りが防止され システム構築コストが削減される。

 上記及び他の目的、長所、特徴は、次の 面と共に説明される本発明の実施の形態に り明らかになるであろう。

図1は、多層システムにおける階層処理 及び本発明の実施の形態において用いられる 情報を説明するための概念図である。 図2は、本発明の実施の形態に係る階層 型負荷推定システムの構成例を示すブロック 図である。 図3は、外部呼出回数情報の一例を示す 概念図である。 図4Aは、プロシージャ呼出情報の一例 示す概念図である。 図4Bは、プロシージャ呼出情報の他の を示す概念図である。 図5は、DML発行情報の一例を示す概念図 である。 図6は、DML負荷情報の一例を示す概念図 である。 図7は、本発明の実施の形態に係る階層 型負荷システムによる処理フローを示すブロ ック図である。 図8は、本発明の実施の形態に係る階層 型負荷システムによる処理フローを示すフロ ーチャートである。 図9は、ステップS100を示すフローチャ トである。 図10は、ステップS140の一例を示すフロ ーチャートである。 図11は、ステップS200を示すフローチャ ートである。 図12は、第1及び第2の処理例における 部呼出回数情報を示す概念図である。 図13は、第1及び第2の処理例における ロシージャ呼出情報を示す概念図である。 図14は、第1の処理例におけるDML発行情 報を示す概念図である。 図15は、第1の処理例におけるDML負荷情 報を示す概念図である。 図16は、第1の処理例における最下位呼 出回数情報を示す概念図である。 図17は、第1の処理例における発行回数 情報を示す概念図である。 図18は、第1の処理例における推定負荷 情報を示す概念図である。 図19は、第2の処理例におけるDML発行情 報を示す概念図である。 図20は、第2の処理例におけるDML負荷情 報を示す概念図である。 図21は、第2の処理例における発行回数 情報を示す概念図である。 図22は、第2の処理例における推定負荷 情報を示す概念図である。

 添付図面を参照して、本発明の実施の形 を説明する。

 1.階層型負荷
 本発明の実施の形態では、階層型負荷を推 するための技術が提供される。階層型負荷 は、複数の処理層を経て呼び出される処理 よって生じる負荷である。例えば、処理a 1 ~a p のそれぞれは処理b 1 ~b q のいずれかを呼び出し、処理b 1 ~b q のそれぞれは処理c 1 ~c r のいずれかを呼び出すとする。このとき、処 理c 1 ~c r によって生じる負荷は階層型負荷である。な ぜなら、処理c 1 ~c r は、処理a 1 ~a p からなる処理層と処理b 1 ~b q からなる処理層を経て、つまり複数の処理層 を経て呼び出される処理だからである。

 多層システムでは、上位層の処理が下位 の処理を呼び出すため、階層型負荷が発生 る。図1は、多層システムにおいて階層的に 呼び出される階層処理を説明するための概念 図である。ユーザーが直接呼び出す処理、ま たは、システムの最上位で呼び出される処理 は、以下「サービス」と参照される。それ以 外の処理は、以下「プロシージャ」と参照さ れる。階層処理において、サービスはプロシ ージャを呼び出す。また、階層処理において 、プロシージャが他のプロシージャを呼び出 すことが許される。このとき、呼び出す側( 位層側)のプロシージャは「上位プロシージ 」と参照され、呼び出される側(下位層側) プロシージャは「下位プロシージャ」と参 される。

 図1に示されるように、サービス(SA,SB,SC・ ・・)の各々は、プロシージャ(P1A,P1B,P1C・・ )のうち少なくとも1つを呼び出す。このとき 、サービス(SA,SB,SC・・・)は最上位プロシー ャに相当し、プロシージャ(P1A,P1B,P1C・・・) 下位プロシージャに相当する。更に、プロ ージャ(P1A,P1B,P1C・・・)は、プロシージャ(P2 A,P2B,P2C・・・)のうち少なくとも1つを呼び出 てもよい。このとき、プロシージャ(P1A,P1B,P 1C・・・)が上位プロシージャに相当し、プロ シージャ(P2A,P2B,P2C・・・)が下位プロシージ に相当する。同様にして、プロシージャ(PnA, PnB,PnC・・・)まで呼び出され得る。ここで、n は1以上の整数である。階層処理における最 位のプロシージャ(PnA,PnB,PnC・・・)は、以下 最下位プロシージャ」と参照される。

 また、階層処理のうちある階層の処理(プ ロシージャ)は、データベース層を操作する めのデータベース操作文を発行する。例え 、データベース操作文は、DML文である。デ タベース層に対してDML文等のデータベース 作文を発行する処理は、データベース操作 理と参照される。本実施の形態において、 ータベース操作処理は、最下位プロシージ (PnA,PnB,PnC・・・)であるとする。

 階層処理の最下位プロシージャ(PnA,PnB,PnC ・・)は、それぞれ所定のDML文を発行する。 このDML文は、多層システムのうち最下位層で ある「データベース層」への処理要求として 発行される。最下位プロシージャは複数の処 理層を経て呼び出されるため、その最下位プ ロシージャによって発行されるDML文の負荷は 、階層型負荷である。すなわち、データベー ス層には、階層型負荷であるDML文の負荷がか かる。

 多層システムにおいて、データベース層 ボトルネック層となりがちであり、データ ース層にかかる階層型負荷を見積もること 重要である。本発明の実施の形態によれば 設計フェーズにおいても、データベース層 かかる階層型負荷を定量的に推定すること できる技術が提供される。そのためのシス ムが、次に説明される「階層型負荷推定シ テム」である。

 2.階層型負荷推定システム
 図2は、本実施の形態に係る階層型負荷推定 システム1の構成例を示すブロック図である 階層型負荷推定システム1は、記憶装置2、処 理装置3、入力装置4、出力装置5を備えるコン ピュータシステムである。記憶装置2は、RAM(R andom Access Memory)やHDD(Hard Disk Drive)等である 処理装置3は、CPU(Central Processing Unit)を有し 、プログラムを実行することによって様々な 機能を提供する。入力装置4は、キーボード マウス、メディアドライブ、入力インター ェース等である。出力装置5は、ディスプレ 、メディアドライブ、出力インターフェー 等である。

 記憶装置2には、階層呼出情報10、DML発行 報20、DML負荷情報30、推定負荷情報RESなどが 格納される。階層呼出情報10は、外部呼出回 情報11とプロシージャ呼出情報12とを含んで いる。これら階層呼出情報10、DML発行情報20 DML負荷情報30は、階層型負荷の算出に用いら れるデータであり、推定負荷情報RESは、その 算出結果を示す。つまり、階層型負荷推定シ ステム1は、階層呼出情報10、DML発行情報20、D ML負荷情報30を入力とし、推定負荷情報RESを 力とする。

 階層呼出情報10は、既出の図1で示される うな階層処理の設計を示す。より詳細には 階層呼出情報10は、外部呼出回数情報11とプ ロシージャ呼出情報12とを含んでいる。

 外部呼出回数情報11は、外部から要求さ るサービスに関連する情報であり、サービ の想定される呼出回数を示す。図3は、外部 出回数情報11の一例を示している。図3に示 れるように、外部呼出回数情報11は、複数 サービス(SA,SB,SC・・・)のそれぞれに関して サービス名と想定される呼出回数との対応 係を示している。

 一方、プロシージャ呼出情報12は、階層 理における上位プロシージャと下位プロシ ジャとの間の呼び出し関係を規定する情報 ある。既出の図1に示されるように、階層処 の設計に応じて、プロシージャ呼出情報12 、n種類のプロシージャ呼出情報12-1~12-nを含 得る(nは1以上の整数)。プロシージャ呼出情 報12-1は、サービス(SA,SB,SC・・・)と下位プロ ージャ(P1A,P1B,P1C・・・)との間の呼び出し関 係を規定する。プロシージャ呼出情報12-2は 上位プロシージャ(P1A,P1B,P1C・・・)と下位プ シージャ(P2A,P2B,P2C・・・)との間の呼び出し 関係を規定する。プロシージャ呼出情報12-n 、上位プロシージャと最下位プロシージャ(P nA,PnB,PnC・・・)との間の呼び出し関係を規定 る。

 図4Aは、プロシージャ呼出情報12の一例を 示している。例えばプロシージャ呼出情報12- 1は、「サービスSAがプロシージャP1Bを呼び出 すこと」、「サービスSCがプロシージャP1A及 P1Cを呼び出すこと」などを示している。プ シージャ呼出情報12-2は、「プロシージャP1A がプロシージャP2A及びP2Bを呼び出すこと」な どを示している。

 図4Bは、プロシージャ呼出情報12の他の例 を示している。プロシージャ呼出情報12は、 位プロシージャが下位プロシージャを呼び す回数を示していてもよい。例えば図4Bに いて、プロシージャ呼出情報12-2は、「プロ ージャP1Aが、プロシージャP2Aを2回呼び出し 、プロシージャP2Bを1回呼び出すこと」など 示している。

 再度図1を参照して、DML発行情報20は、最 位プロシージャ(PnA,PnB,PnC・・・)によって発 行されるDML文を規定する情報である。例えば 、DML発行情報20は、各エンティティに対して 行されるDML文の発行回数を、最下位プロシ ジャ(PnA,PnB,PnC・・・)毎に示す。ここで、エ ンティティとは、データベース中のアクセス 対象のテーブル(データセット)を意味する。

 また、本実施の形態において、DML文は、 々なパラメータに基づいて分類されてもよ 。その様々なパラメータとしては、DML文の 類、CPU使用時間、エンティティ、データア セス量、実行計画等が挙げられる。DML文が 類される場合、DML発行情報20は、発行され DML文の分類を、最下位プロシージャ(PnA,PnB,Pn C・・・)毎に示す。例えば、DML発行情報20は 各エンティティに対して発行されるDML文の 種類」を、最下位プロシージャ毎に示す。DM L文の種類としては、データ抽出を指示する select文”、データ更新を指示する“update文 、データ挿入を指示する“insert文”、デー 削除を指示する“delete文”などが挙げられ 。

 図5は、DML発行情報20の一例を示している 図5で示される例では、DML文は、種類とエン ティティに基づいて分類されている。尚、“ C”は“insert”を、“R”は“select”を、“U” は“update”を、“D”は“delete”をそれぞれ し、このような図は一般にCRUD図と呼ばれて る。このDML発行情報20は、最下位プロシー ャ(PnA,PnB,PnC・・・)の各々が、どのエンティ ィに対してどのような種類のDML文を発行す かを示している。例えば、最下位プロシー ャPnBは、エンティティE1に対してselect文を 行し、エンティティE3に対してselect文及びupd ate文を発行する。このようなDML発行情報20に して、更に各分類のDML文の発行回数が付与 れていてもよい。

 DML負荷情報30は、DML文あたりの負荷を示 情報である。負荷としては、CPU使用時間、CP U使用時間を正規化することにより得られるCP U使用率、ロック競合、容量(テーブル等が使 する記憶領域の大きさ)などが挙げられる。 DML文が分類される場合、DML負荷情報30は、DML あたりの負荷を、DML文の分類毎に示す。例 ば、DML負荷情報30は、各エンティティに対 て発行されるDML文あたりの負荷を、DML文の 類毎に示す。

 図6は、DML負荷情報30の一例を示している 図6では、各エンティティ(E1、E2、E3)に対し 発行されるDML文あたりの負荷が、DML文の種 (select、update、insert、delete)毎に示されてい 。負荷は、CPU使用率である。例えば、エン ィティE1に対して発行されるselect文のCPU使用 率は10であり、update文のCPU使用率は103である 同じエンティティに対するDML文であっても DML文の種類に依存して負荷が異なることに 意されたい。

 以上に説明された外部呼出回数情報11、 ロシージャ呼出情報12、DML発行情報20、及びD ML負荷情報30は、設計フェーズにおいて得る とができる設計情報であることに留意され い。

 再度図2を参照して、記憶装置2には更に 階層型負荷推定プログラムPROGが格納される 階層型負荷推定プログラムPROGは、階層型負 荷推定システム1に階層型負荷の算出処理を 行させるコンピュータプログラムである。 型的には、階層型負荷推定プログラムPROGは コンピュータ読み取り可能な記録媒体に記 され、その記録媒体から記憶装置2に読み込 まれる。

 処理装置3は、階層型負荷推定プログラム PROGを実行することにより、階層型負荷の算 処理を行う。具体的には、処理装置3は、呼 回数算出モジュール100、発行回数算出モジ ール200、及び負荷算出モジュール300を有し いる。これら呼出回数算出モジュール100、 行回数算出モジュール200、及び負荷算出モ ュール300は、処理装置3が階層型負荷推定プ ログラムPROGを実行することにより実現され それぞれが所定のデータ処理機能を提供す 。以下、呼出回数算出モジュール100、発行 数算出モジュール200、及び負荷算出モジュ ル300によるデータ処理を詳細に説明する。

 3.処理フロー
 図7及び図8のそれぞれは、階層型負荷シス ム1による処理フローを示すブロック図及び ローチャートである。

 ステップS100:
 呼出回数算出モジュール100は、記憶装置2か ら階層呼出情報10(外部呼出回数情報11及びプ シージャ呼出情報12)を読み出す。そして、 出回数算出モジュール100は、階層呼出情報1 0を参照して、最下位プロシージャ(PnA,PnB,PnC ・・)の呼出回数を算出する。上述の通り、 部呼出回数情報11は、最上位のサービス(SA,S B,SC・・・)のそれぞれの呼出回数を示してお 、プロシージャ呼出情報12は、上位プロシ ジャと下位プロシージャとの間の呼び出し 係を規定している。従って、呼出回数算出 ジュール100は、外部呼出回数情報11及びプロ シージャ呼出情報12を用いることによって、 層のプロシージャの呼出回数を上位層から 位層に向けて順番に算出することができる 結果として、最下位プロシージャ(PnA,PnB,PnC ・・)の呼出回数が算出される。算出された 呼出回数は、最下位呼出回数情報15として記 装置2に格納される。

 ステップS200:
 発行回数算出モジュール200は、記憶装置2か ら最下位呼出回数情報15とDML発行情報20を読 出す。上述の通り、最下位プロシージャ(PnA, PnB,PnC・・・)に関して、最下位呼出回数情報1 5は呼出回数を示し、DML発行情報20は発行され るDML文を示している。従って、発行回数算出 モジュール200は、最下位呼出回数情報15とDML 行情報20を参照することにより、最下位プ シージャによって発行されるDML文の発行回 を算出することができる。つまり、発行回 算出モジュール200は、階層処理において発 されるDML文の発行回数を算出する。DML文が 述のように分類される場合、DML文の発行回 は分類毎に算出されてもよい。算出されたDM L文の発行回数は、発行回数情報25として記憶 装置2に格納される。

 ステップS300:
 負荷算出モジュール300は、記憶装置2から発 行回数情報25とDML負荷情報30を読み出す。上 の通り、発行回数情報25はDML文の発行回数を 示し、DML負荷情報30はDML文あたりの負荷を示 ている。従って、負荷算出モジュール300は 発行回数情報25とDML負荷情報30を参照するこ とにより、最下位プロシージャによって発行 されるDML文の負荷を算出することができる。 つまり、負荷算出モジュール300は、階層処理 において発行されるDML文の負荷を算出する。 DML文が上述のように分類される場合、DML文の 負荷は分類毎に算出されてもよい。算出され たDML文の負荷は、推定負荷情報RESとして記憶 装置2に格納される。算出されたDML文の負荷 、多層システムのデータベース層にかかる 荷の推定値(推定負荷)を表している。つまり 、推定負荷情報RESは、データベース層にかか る階層型負荷の推定値を示している。システ ム構築者は、推定負荷情報RESを参照すること によって、十分なシステム性能を達成するた めに必要な計算機資源を見積もることができ る。

 以下、ステップS100とステップS200を、更 詳しく説明する。

 3-1.ステップS100
 ステップS100において、呼出回数算出モジュ ール100は、階層呼出情報10から最下位呼出回 情報15を作成する。図9は、ステップS100を示 すフローチャートである。

 まず、ループ処理に用いられるカウンタi が1に設定される(ステップS110)。このループ 理は、プロシージャ呼出情報12-1~12-nの数だ 実施される。つまり、カウンタiは初期値1か ら最終値nまで1ずつ変化する。

 各ループ処理において、記憶装置2からプ ロシージャ呼出情報12-iが読み込まれる(ステ プS120)。また、上位呼出回数情報が読み込 れる(ステップS130)。ここで、「上位呼出回 情報」とは、プロシージャ呼出情報12-i中の 位プロシージャのそれぞれの呼出回数を示 情報である。次に、その上位プロシージャ 呼出回数とプロシージャ呼出情報12-iに基づ いて、プロシージャ呼出情報12-i中の下位プ シージャのそれぞれの呼出回数が算出され (ステップS140)。下位プロシージャのそれぞ の呼出回数を示す情報が、「下位呼出回数 報」である。カウンタiが最終値nに満たない 場合(ステップS160;No)、カウンタiに1が加算さ (ステップS170)、次のループ処理が実施され 。

 具体的には、最初カウンタiは1であるた 、プロシージャ呼出情報12-1が参照される。 のとき、上位プロシージャはサービス(SA,SB, SC・・・)であり、上位呼出回数情報は外部呼 出回数情報11(図3参照)である。従って、記憶 置2から外部呼出回数情報11が読み出される 外部呼出回数情報11は、サービス(SA,SB,SC・ ・)のそれぞれの呼出回数を示しており、プ シージャ呼出情報12-1はそれらサービスとプ ロシージャ(P1A,P1B,P1C・・・)との間の呼び出 関係を規定している。従って、外部呼出回 情報11とプロシージャ呼出情報12-1から、下 プロシージャ(P1A,P1B,P1C・・・)のそれぞれの 出回数を示す下位呼出回数情報を作成する とができる。

 次に、カウンタiは2となり、プロシージ 呼出情報12-2が参照される。このとき、上位 ロシージャはプロシージャ(P1A,P1B,P1C・・・) である。従って、前回のループ処理で作成さ れた下位呼出回数情報が、今回のループ処理 における上位呼出回数情報として利用される 。そして、プロシージャ呼出情報12-2と上位 出回数情報に基づいて、下位プロシージャ(P 2A,P2B,P2C・・・)のそれぞれの呼出回数が算出 れる。

 カウンタiが最終値nに達するまで、同様 ループ処理が繰り返される。最終的には、 下位プロシージャ(PnA,PnB,PnC・・・)のそれぞ の呼出回数が算出される。カウンタiが最終 値nの場合(ステップS160;Yes)、ループ処理は終 する。最終的に得られた最下位プロシージ の呼出回数を示す情報が、最下位呼出回数 報15である(ステップS180)。このように、本 施の形態によれば、各層のプロシージャの 出回数が、上位層から下位層に向けて順番 算出される。結果として、最下位プロシー ャの呼出回数が算出され、最下位呼出回数 報15が作成される。

 上記ステップS140において下位プロシージ ャの呼出回数を算出する方法としては、様々 な方法が考えられる。図10は、その一例を示 フローチャートである。まず、下位エント が作成される(ステップS141)。下位エントリ は、下位プロシージャの識別子と呼出回数 フィールドからなるテーブルである。下位 ントリの各フィールド値を算出することが テップS140の目的である。各フィールドの初 期値は全て0に設定される。

 次に、上位プロシージャのリストを示す 位リストが作成される(ステップS142)。続い 、上位リストから任意の1つの上位プロシー ジャが選択される(ステップS143)。次に、選択 上位プロシージャによって呼び出される下位 プロシージャのそれぞれの呼出回数が算出さ れる(ステップS150)。算出された下位プロシー ジャの呼出回数は、下位エントリ中の対応す るフィールド値に加算される。その後、選択 上位プロシージャが上位リストから削除され る(ステップS144)。上位リストに他の上位プロ シージャが残っていれば(ステップS145;Yes)、 理はステップS143に戻る。上位プロシージャ 残っていなければ(ステップS145;No)、ステッ S140は終了する。

 ステップS150は、次の通りである。まず、 選択上位プロシージャによって呼び出される 下位プロシージャのリストを示す下位リスト が作成される(ステップS151)。続いて、下位リ ストから任意の1つの下位プロシージャが選 される(ステップS152)。次に、選択下位プロ ージャの呼出回数が算出される。このとき 選択上位プロシージャの総呼出回数は上位 出回数情報によって与えられている。よっ 、プロシージャ呼出情報12-iが上位プロシー ャによって呼び出される下位プロシージャ 種類を示している場合(図4A参照)、選択上位 プロシージャの総呼出回数が選択下位プロシ ージャの呼出回数となる。また、プロシージ ャ呼出情報12-iが1回の選択上位プロシージャ よって呼び出される選択下位プロシージャ 回数を示している場合(図4B参照)、その回数 に選択上位プロシージャの総呼出回数を掛け ることによって、選択下位プロシージャの呼 出回数が算出される。算出された選択下位プ ロシージャの呼出回数は、下位エントリ中の 対応するフィールド値に加算され、下位エン トリが更新される(ステップS153)。その後、選 択下位プロシージャが下位リストから削除さ れる(ステップS154)。下位リストに他の下位プ ロシージャが残っていれば(ステップS155;Yes) 処理はステップS152に戻る。下位プロシージ が残っていなければ(ステップS155;No)、ステ プS150は終了する。

 3-2.ステップS200
 ステップS200において、発行回数算出モジュ ール200は、最下位呼出回数情報15及びDML発行 報20から発行回数情報25を算出する。図11は ステップS200を示すフローチャートである。 まず、最下位呼出回数情報15が記憶装置2から 読み込まれる(ステップS210)。また、DML発行情 報20が記憶装置2から読み込まれる(ステップS2 20)。

 次に、エンティティエントリが作成され (ステップS230)。エンティティエントリとは DML発行情報20で示されるエンティティの識 子とDML文の発行回数のフィールドからなる ーブルである。上述のようにDML文が分類さ る場合、発行回数のフィールドは、DML文の 類毎に設けられる。このエンティティエン リの各フィールド値を算出することがステ プS200の目的である。各フィールドの初期値 全て0に設定される。

 次に、最下位リストが作成される(ステッ プS240)。最下位リストは、最下位呼出回数情 15で示される最下位プロシージャ(PnA,PnB,PnC ・・)のリストである。続いて、最下位リス から任意の1つの最下位プロシージャが選択 される(ステップS250)。

 次に、選択された最下位プロシージャに って発行されるDML文の発行回数が算出され 。上述の通り、最下位呼出回数情報15は、 最下位プロシージャの総呼出回数を示して り、DML発行情報20は、各最下位プロシージャ によって発行されるDML文を規定している。DML 発行情報20が、1回の最下位プロシージャによ るDML文の発行回数を示している場合を考える 。この場合、その発行回数に選択最下位プロ シージャの総呼出回数を掛けることによって 、選択最下位プロシージャによるDML文の発行 回数の合計が算出される。DML文が分類されて いる場合には、その分類毎に、DML文の発行回 数が同様に算出される。このようにして算出 されたDML文の発行回数は、エンティティエン トリ中の対応するフィールド値に加算され、 エンティティエントリが更新される(ステッ S260)。

 その後、選択最下位プロシージャが最下 リストから削除される(ステップS270)。最下 リストに他の最下位プロシージャが残って れば(ステップS280;Yes)、処理はステップS250 戻る。最下位プロシージャが残っていなけ ば(ステップS280;No)、DML文の発行回数の算出 理は終了する。最終的なエンティティエン リが、発行回数情報25に相当する。つまり、 階層処理において発行されるDML文の発行回数 を示す発行回数情報25が決定される(ステップ S290)。

 4.処理例
 次に、本実施の形態に係る階層型負荷推定 ステム1による具体的な処理例を説明する。

 4-1.第1の処理例
 図12は、第1の処理例における外部呼出回数 報11を示している。外部呼出回数情報11は、 3種類のサービスSA、SB、SCのそれぞれの呼出 数を示している。ここで、各呼出回数は、1 あたりに想定されるサービス要求回数であ 。尚、単位時間は、1秒に限られず、任意の 値に設定され得る。

 図13は、第1の処理例におけるプロシージ 呼出情報12を示している。簡単のため、パ メータnは1であるとする。つまり、最下位プ ロシージャは、サービスSA~SCによって呼び出 れるプロシージャP1A~P1Dであるとする。パラ メータnが2以上であっても、同様の議論が適 される。図13に示されるように、プロシー ャ呼出情報12-1は、サービスSA~SCとプロシー ャP1A~P1Dとの間の呼び出し関係を示している 具体的には、サービスSAはプロシージャP1A P1Bを呼び出し、サービスSBはプロシージャP1B 、P1Cを呼び出し、サービスSCはプロシージャP 1C、P1Dを呼び出す。

 図14は、第1の処理例におけるDML発行情報2 0を示している。第1の処理例では、簡単のた 、データベース層が1つのエンティティとし て扱われる。図14に示されるように、DML発行 報20は、そのエンティティに対するDML文の 行回数を、最下位プロシージャP1A~P1D毎に示 ている。具体的には、最下位プロシージャP 1A~P1Dの各々は、1回の呼び出しあたり2つのDML を発行する。

 図15は、第1の処理例におけるDML負荷情報3 0を示している。DML負荷情報30は、DML発行情報 20の形式に適合するように作成されている。 まり、データベース層が1つのエンティティ として扱われる。図15に示されるように、DML 荷情報30は、そのエンティティに対する1つ DML文あたりの負荷を示している。ここで、 荷は、平均実行時間である。図15で示され 例では、全てのDML文の平均実行時間は6msで る。

 ステップS100において、図12で示された外 呼出情報11と図13で示されたプロシージャ呼 出情報12に基づいて、最下位プロシージャP1A~ P1Dのそれぞれの呼出回数が算出される。ステ ップS140(図10参照)で使用される下位エントリ 上位リスト、及び下位リストは、プロシー ャ呼出情報12から容易に作成される。すな ち、下位エントリは、最下位プロシージャP1 A~P1Dのそれぞれの呼出回数のフィールドを有 る。上位リストは、サービスSA、SB、SCを含 。サービスSAに対応する下位リストは、最 位プロシージャP1A、P1Bを含む。サービスSBに 対応する下位リストは、最下位プロシージャ P1B、P1Cを含む。サービスSCに対応する下位リ トは、最下位プロシージャP1C、P1Dを含む。 テップS100の結果、図16に示される最下位呼 回数情報15が得られる。最下位プロシージ P1A、P1B、P1C、P1Dのそれぞれの呼出回数は、 れぞれ、3、13、35、25である。

 ステップS200において、図16で示された最 位呼出回数情報15と図14で示されたDML発行情 報20に基づいて、DML文の発行回数の合計が算 される。エンティティエントリは、DML発行 報20から容易に作成される。第1の例では、 ータベース層が1つのエンティティとして扱 われるため、エンティティエントリに含まれ るエンティティの識別子も1つだけである。 テップS200の結果、図17に示される発行回数 報25が得られる。最下位プロシージャP1A~P1D 各々は、1回の呼び出しあたり2つのDML文を発 行するため、DML文の発行回数の合計は152回で ある。

 ステップS300において、図17で示された発 回数情報25と図15で示されたDML負荷情報30に づいて、DML文の負荷が算出される。DML文の 行回数は合計152回であり、DML文あたりの平 実行時間は6msであるため、DML文の総実行時 は912ms(=152×6ms)と算出される。ここで、これ らDML文の発行は、1秒あたりに想定されるサ ビス要求(図12参照)の結果であることに留意 れたい。つまり、1秒あたり912msの期間が、 ービス要求の結果としてのDML文の実行に費 される。言い換えれば、CPU使用率は91.2%で る。このCPU使用率=91.2%が、本例によって推 される負荷である。図18は、本例において作 成される推定負荷情報RESを示している。

 尚、DML文の発行回数(=152回)も負荷に関連 るパラメータである。よって、推定負荷情 RESには、ステップS300で算出される負荷だけ でなく、ステップS200で算出されるDML文の発 回数が含まれていてもよい。あるいは、推 負荷情報RESとして、ステップS200で算出され DML文の発行回数だけが与えられてもよい。

 推定されたCPU使用率(91.2%)を利用して、シ ステム構築者は、十分なシステム性能を達成 するために必要な計算機資源を、設計フェー ズにおいても見積もることができる。例えば 、CPU使用率が92%以下であれば運用上問題ない 場合、CPUは1つで十分であることが推定され 。CPU使用率を50%以下に保つ必要がある場合 システム構築者は、CPU数を2つに増やすこと 検討することができる。あるいは、システ 構築者は、DML文とデータ構造の最適化をよ 高いレベルで実現する必要があることを推 できる。あるいは、システム構築者は、提 するサービスの量を抑制することを検討す ことができる。

 また、複数種類の外部呼出回数情報11に して、つまり、異なるサービス提供シナリ に対して、それぞれ負荷を推定することも きる。この場合、一部または全てのサービ 提供シナリオを採用するのに十分な計算機 源の量を推定することができる。または、 定される計算機資源の範囲内で適用可能な ービス提供シナリオとそれ以外を選別する とができる。このように、本実施の形態は 設計フェーズにおけるサービス提供シナリ の策定を支援することができる。

 本実施の形態に係る負荷推定は、新規に ステムを構築する場合だけでなく、既存シ テムが変更される場合にも実施され得る。 えば、既存システムのDML発行情報20とプロ ージャ呼出情報12に変更が反映された後、負 荷が推定される。また、サービス提供シナリ オが変更される場合、外部呼出回数情報11に 更が反映された後、負荷が推定される。ま 、システムを構成するハードウェアが変更 れる場合(例えば、CPUが置き換えられる場合 )、DML負荷情報30にハードウェアスペックの変 更が反映された後、負荷が推定される。

 4-2.第2の処理例
 第2の処理例において、外部呼出回数情報11 プロシージャ呼出情報12は第1の処理例と同 である。従って、ステップS100の結果は第1 処理例と同じであり、最下位呼出回数情報15 は、既出の図16で示されたようになる。

 図19は、第2の処理例におけるDML発行情報2 0を示している。第2の処理例では、DML文は分 され、DML発行情報20は、発行されるDML文の 類を最下位プロシージャP1A~P1D毎に示してい 。より詳細には、DML文は、「DML文の種類」 「エンティティ」に基づいて分類される。 こでは、4つのエンティティE1~E4と、4つの種 類“C(insert)”、“R(select)”、“U(update)”、“ D(delete)”が考慮される。最下位プロシージャ P1A~P1Dの各々は、エンティティE1~E4の少なくと もいずれかに対して、いずれかの種類のDML文 を発行する。図19に示されるように、DML発行 報20は、最下位プロシージャP1A~P1Dのそれぞ によって発行されるDML文のエンティティと 類を示している。例えば、1回の最下位プロ シージャP1Aは、エンティティE1に対してselect を発行し、また、エンティティE4に対してde lete文を発行する。

 図20は、第2の処理例におけるDML負荷情報3 0を示している。DML負荷情報30は、DML発行情報 20の形式に適合するように作成されている。 まり、DML負荷情報30は、DML文あたりの負荷 、DML文の分類毎に示している。第1の処理例 同様に、負荷は平均実行時間である。例え 、エンティティE1に対するselect文の平均実 時間は2msであり、エンティティE3に対するupd ate文の平均実行時間は14msである。尚、空白 フィールドが残されているのは、発行され いDML文の実行時間は不要であるためである

 ステップS200において、図16で示された最 位呼出回数情報15と図19で示されたDML発行情 報20に基づいて、DML文の発行回数が算出され 。このとき、DML文の発行回数は、上記DML文 分類毎に算出される。従って、エンティテ エントリ(発行回数情報25)は、DML文の発行回 数を分類毎に示すテーブルとなる。そのよう なテーブル形式は、DML負荷情報30において負 (実行時間)が発行回数で置き換えられたも と同じである。ステップS200の結果、図21に される発行回数情報25が得られる。例えば、 エンティティE1に対してselect文が合計28回発 され、エンティティE3に対してupdate文が合計 35回発行される。

 ステップS300において、図21で示された発 回数情報25と図20で示されたDML負荷情報30に づいて、DML文の負荷が算出される。このと 、DML文の負荷は、上記DML文の分類毎に算出 れる。ステップS300の結果、図22に示される 定負荷情報RESが得られる。図22に示される 定負荷情報RESは、1秒あたりのDML文の実行時 [ms]、すなわち、1秒あたりのCPU使用時間[ms] 、DML文の分類毎に示している。尚、1秒あた りのCPU使用時間[ms]を10で割れば、CPU使用率[%] が得られる。また、図22で示される推定負荷 報RESには、「total行」と「total列」が付加さ れている。total行には種類毎のCPU使用時間の 分和が示されている。一方、total列にはエ ティティ毎のCPU使用時間の部分和が示され いる。total行とtotal列の双方に属するフィー ドには、全DML文のCPU使用時間の総和(851ms)が 示されている。

 推定負荷情報RESには、ステップS200で算出 されたDML文の分類毎の発行回数が含まれてい てもよい。第2の処理例で作成された推定負 情報RESは、第1の処理例と同様に利用できる 更に、DML文の負荷や発行回数が分類毎に算 されているため、次のような利用方法も可 である。

 分類毎に算出された負荷は、設計段階に いて特に注意を払うべきDML文の特定に有効 ある。例えば、図22で示された推定負荷情 RESから、エンティティE3に対するupdate文の負 荷(490ms)が総負荷(851ms)の半分以上を占めてい ことがわかる。そのため、システム構築者 、性能を向上させるためにはエンティティE 3に対するupdate文を最適化することが効率的 あると判断することができる。

 また、エンティティ毎の負荷の部分和は 設計段階において特に注意を払うべきエン ィティの特定に有効である。例えば、図22 示された推定負荷情報RESから、エンティテ E3に関する負荷(560ms)が総負荷(851ms)の半分以 を占めていることが分かる。そのため、シ テム構築者は、性能を向上させるためには ンティティE3の設計を最適化することが効 的であると判断することができる。一方、 ンティティE2に関する負荷の総負荷への寄与 は小さいため、システム構築者は、エンティ ティE2の設計を最適化することによるメリッ は小さいと判断できる。

 また、DML文の種類及びエンティティ毎に 出された発行回数を分析することにより、 ック競合の可能性を定量的に推定できる。 本的に、異なるエンティティにアクセスす DML文は、同じデータにアクセスすることは い。一方で、同一のエンティティにアクセ するDML文は同じデータにアクセスするため その場合、ロック競合が発生する可能性が る。ロック競合はDML文のCPU使用時間を増加 せるとともに遅延を増大させるため、設計 ェーズの段階から考慮すべき問題である。 えば既出の図21で示される例の場合、エン ィティE1、E2に対しては、select文によるデー 読み出しのみが発生する。従って、それら ンティティE1、E2に関するロック競合が起き る可能性は極めて低いと考えられる。一方、 エンティティE4に対しては、insert文とdelete文 よるデータ書き込みも発生するため、ロッ 競合が起きる可能性がある。更に、エンテ ティE3に関しては、多数のupdate文によるデ タ書き込みと多数のselect文によるデータ読 出しが発生するため、ロック競合が起きる 能性はエンティティE4よりも更に高くなると 考えられる。このように、設計フェーズから ロック競合の可能性を定量的に評価すること により、エンティティの分割等の対応を検討 することが可能となる。

 また、算出された発行回数をDML文の種類 に分析することは、設計フェーズにおける ータベースの容量設計に有効である。例え 図21で示される発行回数情報25から、エンテ ィティE4に対しては1秒間に、insert文が13回、d elete文が3回発行されることが分かる。insert文 が1行挿入を実施し、delete文が1行削除を実施 るとすれば、エンティティE4の全行数は1秒 に10行ずつ増えると推定される。1行が64バ トの場合、エンティティE4が必要とする記憶 容量は、1秒毎に640バイト、1日に5Mバイト以 増えると推定される。このような定量的な 定は、データベースの容量設計に際して有 である。

 また、DML文が分類される場合、複数の異 る外部呼出回数情報11に対する負荷推定の 度を高めることができる。分類別にDML文の 行時間が異なる場合、DML文の比率が異なれ DML文の平均実行時間も異なる。比率別に平 実行時間を求めるのは一般に困難なので、 なるDML文の比率、つまり異なる外部呼出回 情報11に対する負荷推定精度は低くなってし まう。よって、分類別の平均実行時間を使え ば、負荷推定精度を高めることができる。

 5.効果
 本発明の実施の形態によれば、少なくとも の効果が得られる。つまり、想定されるサ ビス要求に対して、階層処理において発行 れるDML文の数が定量的に算出される。DML文 発行回数はデータベース層にかかる負荷に 連しているため、算出されたDML文の発行回 に基づいて、データベース層にかかる負荷 見積もることができる。つまり、多層シス ムにおける階層型負荷を定量的に推定する とができる。

 その階層型負荷の推定において、実際に ステムを構築することは不要である。たと 設計フェーズの段階であっても、階層型負 を定量的に推定することが可能となる。シ テム構築者は、推定された階層型負荷を参 することによって、十分なシステム性能を 成するために必要な計算機資源を見積もる とができる。つまり、設計フェーズにおい 、想定されるサービス要求に対する階層型 荷を定量的に推定し、必要な計算機資源を 積もることができる。その結果、運用フェ ズから設計フェーズへの戻りが防止され、 ステム構築コストが削減される。

 以上、本発明の実施の形態が添付の図面 参照することにより説明された。但し、本 明は、上述の実施の形態に限定されず、要 を逸脱しない範囲で当業者により適宜変更 れ得る。

 本出願は、2007年10月3日に出願された日本 国特許出願2007-259947を基礎とする優先権を主 し、その開示の全てをここに取り込む。