JP5282908B2 - 階層型負荷推定システム、方法およびプログラム - Google Patents

階層型負荷推定システム、方法およびプログラム Download PDF

Info

Publication number
JP5282908B2
JP5282908B2 JP2009535996A JP2009535996A JP5282908B2 JP 5282908 B2 JP5282908 B2 JP 5282908B2 JP 2009535996 A JP2009535996 A JP 2009535996A JP 2009535996 A JP2009535996 A JP 2009535996A JP 5282908 B2 JP5282908 B2 JP 5282908B2
Authority
JP
Japan
Prior art keywords
load
information
hierarchical
database operation
dml
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.)
Expired - Fee Related
Application number
JP2009535996A
Other languages
English (en)
Other versions
JPWO2009044589A1 (ja
Inventor
盛朗 佐々木
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009535996A priority Critical patent/JP5282908B2/ja
Publication of JPWO2009044589A1 publication Critical patent/JPWO2009044589A1/ja
Application granted granted Critical
Publication of JP5282908B2 publication Critical patent/JP5282908B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Fuzzy Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、システムにおける負荷を推定するための技術に関する。特に、本発明は、多層システムにおける階層型負荷を推定するための技術に関する。
システムの構築は、設計フェーズ、開発フェーズ、運用フェーズの三つのフェーズに分けられる。一般に、設計フェーズでは機能が、開発フェーズでは実装が、運用フェーズでは性能が主要な問題となる。これらのフェーズは、新規システムを構築するときだけでなく、既存システムを変更するときにも現れる。
運用フェーズにおいてシステムが十分な性能を発揮するためには、支障なく機能を提供できるだけの十分な計算機資源が必要である。必要な計算機資源の量は、機能を提供する際に発生する負荷の量に依存する。少ない負荷を発生させる機能は少ない計算機資源で提供でき、多くの負荷を発生させる機能は多くの計算機資源を必要とする。従って、システム性能を評価するためには、システム負荷を測定することが望ましい。
運用フェーズにおいてシステム負荷を測定するための技術として、次のものが知られている。例えば、文献“gprof: A Call Graph Execution Profiler, by S. Graham, P. Kessler and M. Mckusick, Proceedings of the 1982 SIGPLAN Symposium on Compiler Construction, Vol. 17, No. 6, pp. 120−126, 1982.”に開示されているプロファイリング技術を用いれば、プログラム中の個々の関数の呼出回数をカウントすることができる。また、特開2005―190277号公報には、サーバープログラム間の通信を観測することで得られるIPアドレスとポート番号から、サーバープログラムの呼出頻度をカウントする方法が記載されている。
運用フェーズにおいてシステム性能の不足が発覚したとき、十分な性能を達成するために設計等を見直さなければならない場合がある。しかしながらこの場合、多大な手戻りの工数が発生し、システム構築コストが増大する。逆に言えば、もし上流フェーズの段階でシステム性能やシステム負荷を推定することができれば、手戻り工数を抑制し、コスト増大を抑制することができる。特に、設計フェーズの段階でシステム負荷を推定することは、システム構築コストの削減に有効である。
しかしながら、設計フェーズにおいて従来使用できた技術は、主にシステムの機能設計に関する技術であった。例えば、文献“AllFusion(登録商標) ERwin(登録商標) Data Modeler r7.”には、データベースの機能設計ツールとしての「ERwin(登録商標)」が紹介されている。このツールは、論理設計の物理設計への変換、個別処理の最適化、既存のデータベースのリバースエンジニアリング等の機能を提供している。また、特開平8―202541号公報には、DFD(Data Flow Diagram)の変更とER(Entity Relationship)の変更を相互に反映させる方法が記載されている。しかし、これらのツールや方法では、設計フェーズにおいてシステム負荷を推定することはできない。
近年、階層構造を有する「多層システム」が増加している。多層システムでは、処理内容の頻繁な変更に対応できるように、また、性能を容易に向上させられるように、サービス要求は複数のサーバー層でパイプライン的に処理される。典型的な多層システムとしては、ウェブ層で表示処理を、アプリケーション層で演算処理を、データベース層でデータ処理を行う三層システムが知られている。このような多層システムの性能は、複数のサーバー層のうちボトルネック層の性能によって主に決定される。例えば上記三層システムの場合、一般的にはデータベース層がボトルネックとなり、そのデータベース層の性能が三層システムの性能を決定する。従って、三層システムの性能を定量的に推定するためには、ボトルネック層となりがちなデータベース層にかかる負荷を定量的に推定することが好ましい。
データベース層には、階層的な負荷(以下、「階層型負荷」と参照される)がかかる。多層システムでは、上位層の処理が下位層の処理を呼び出す。つまり、サービス要求によって呼び出される処理が他の処理を呼び出し、呼び出された処理が更に他の処理を呼び出し、というように処理が階層的に呼び出される。そのような処理は、以下「階層処理」と参照される。階層型負荷とは、このように階層的に呼び出される階層処理によって生じる負荷である。データベース層は、通常は多層システムの最下位層である。従って、データベース層には階層型負荷がかかる。
また、データベース層への処理要求のほとんどは、「DML(Data Manipulation Language)文」で発行される。DML文は、データベースに対する問い合わせに使用されるSQL(Structured Query Language)文の一部である。SQL文は大きくわけて、DML文、DDL(Data Definition Language)文、DCL(Data Control 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〜aのそれぞれは処理b〜bのいずれかを呼び出し、処理b〜bのそれぞれは処理c〜cのいずれかを呼び出すとする。このとき、処理c〜cによって生じる負荷は階層型負荷である。なぜなら、処理c〜cは、処理a〜aからなる処理層と処理b〜bからなる処理層を経て、つまり複数の処理層を経て呼び出される処理だからである。
多層システムでは、上位層の処理が下位層の処理を呼び出すため、階層型負荷が発生する。図1は、多層システムにおいて階層的に呼び出される階層処理を説明するための概念図である。ユーザーが直接呼び出す処理、または、システムの最上位で呼び出される処理は、以下「サービス」と参照される。それ以外の処理は、以下「プロシージャ」と参照される。階層処理において、サービスはプロシージャを呼び出す。また、階層処理において、プロシージャが他のプロシージャを呼び出すことが許される。このとき、呼び出す側(上位層側)のプロシージャは「上位プロシージャ」と参照され、呼び出される側(下位層側)のプロシージャは「下位プロシージャ」と参照される。
図1に示されるように、サービス(SA,SB,SC・・・)の各々は、プロシージャ(P1A,P1B,P1C・・・)のうち少なくとも1つを呼び出す。このとき、サービス(SA,SB,SC・・・)は最上位プロシージャに相当し、プロシージャ(P1A,P1B,P1C・・・)は下位プロシージャに相当する。更に、プロシージャ(P1A,P1B,P1C・・・)は、プロシージャ(P2A,P2B,P2C・・・)のうち少なくとも1つを呼び出してもよい。このとき、プロシージャ(P1A,P1B,P1C・・・)が上位プロシージャに相当し、プロシージャ(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(Random 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、DML負荷情報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は、上位プロシージャと最下位プロシージャ(PnA,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,PnC・・・)毎に示す。例えば、DML発行情報20は、各エンティティに対して発行されるDML文の「種類」を、最下位プロシージャ毎に示す。DML文の種類としては、データ抽出を指示する“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文及びupdate文を発行する。このようなDML発行情報20に対して、更に各分類のDML文の発行回数が付与されていてもよい。
DML負荷情報30は、DML文あたりの負荷を示す情報である。負荷としては、CPU使用時間、CPU使用時間を正規化することにより得られるCPU使用率、ロック競合、容量(テーブル等が使用する記憶領域の大きさ)などが挙げられる。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、及びDML負荷情報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は、階層呼出情報10を参照して、最下位プロシージャ(PnA,PnB,PnC・・・)の呼出回数を算出する。上述の通り、外部呼出回数情報11は、最上位のサービス(SA,SB,SC・・・)のそれぞれの呼出回数を示しており、プロシージャ呼出情報12は、上位プロシージャと下位プロシージャとの間の呼び出し関係を規定している。従って、呼出回数算出モジュール100は、外部呼出回数情報11及びプロシージャ呼出情報12を用いることによって、各層のプロシージャの呼出回数を上位層から下位層に向けて順番に算出することができる。結果として、最下位プロシージャ(PnA,PnB,PnC・・・)の呼出回数が算出される。算出された呼出回数は、最下位呼出回数情報15として記憶装置2に格納される。
ステップS200:
発行回数算出モジュール200は、記憶装置2から最下位呼出回数情報15とDML発行情報20を読み出す。上述の通り、最下位プロシージャ(PnA,PnB,PnC・・・)に関して、最下位呼出回数情報15は呼出回数を示し、DML発行情報20は発行されるDML文を示している。従って、発行回数算出モジュール200は、最下位呼出回数情報15とDML発行情報20を参照することにより、最下位プロシージャによって発行されるDML文の発行回数を算出することができる。つまり、発行回数算出モジュール200は、階層処理において発行されるDML文の発行回数を算出する。DML文が上述のように分類される場合、DML文の発行回数は分類毎に算出されてもよい。算出されたDML文の発行回数は、発行回数情報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と上位呼出回数情報に基づいて、下位プロシージャ(P2A,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から読み込まれる(ステップS220)。
次に、エンティティエントリが作成される(ステップ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はプロシージャP1C、P1Dを呼び出す。
図14は、第1の処理例におけるDML発行情報20を示している。第1の処理例では、簡単のため、データベース層が1つのエンティティとして扱われる。図14に示されるように、DML発行情報20は、そのエンティティに対するDML文の発行回数を、最下位プロシージャP1A〜P1D毎に示している。具体的には、最下位プロシージャP1A〜P1Dの各々は、1回の呼び出しあたり2つのDML文を発行する。
図15は、第1の処理例におけるDML負荷情報30を示している。DML負荷情報30は、DML発行情報20の形式に適合するように作成されている。つまり、データベース層が1つのエンティティとして扱われる。図15に示されるように、DML負荷情報30は、そのエンティティに対する1つのDML文あたりの負荷を示している。ここで、負荷は、平均実行時間である。図15で示される例では、全てのDML文の平均実行時間は6msである。
ステップS100において、図12で示された外部呼出情報11と図13で示されたプロシージャ呼出情報12に基づいて、最下位プロシージャP1A〜P1Dのそれぞれの呼出回数が算出される。ステップS140(図10参照)で使用される下位エントリ、上位リスト、及び下位リストは、プロシージャ呼出情報12から容易に作成される。すなわち、下位エントリは、最下位プロシージャP1A〜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発行情報20を示している。第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に対してdelete文を発行する。
図20は、第2の処理例におけるDML負荷情報30を示している。DML負荷情報30は、DML発行情報20の形式に適合するように作成されている。つまり、DML負荷情報30は、DML文あたりの負荷を、DML文の分類毎に示している。第1の処理例と同様に、負荷は平均実行時間である。例えば、エンティティE1に対するselect文の平均実行時間は2msであり、エンティティE3に対するupdate文の平均実行時間は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)の半分以上を占めていることがわかる。そのため、システム構築者は、性能を向上させるためにはエンティティE3に対する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回、delete文が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を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (8)

  1. 多層システムにおいて階層的に呼び出される階層処理の設計を示す階層呼出情報と、前記階層処理のうちデータベース操作処理によって発行されるデータベース操作文を規定する発行情報と、データベース操作文あたりの負荷を示す負荷情報とが格納される記憶装置と、
    前記階層呼出情報を参照して、前記データベース操作処理の呼出回数を算出する呼出回数算出モジュールと、
    前記算出された呼出回数と前記発行情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の発行回数を算出する発行回数算出モジュールと、
    前記算出された発行回数と前記負荷情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の負荷を算出する負荷算出モジュールと
    を備える
    階層型負荷推定システム。
  2. 請求項1に記載の階層型負荷推定システムであって、
    前記発行情報は、データベース操作文の発行回数を前記データベース操作処理毎に示し、
    前記発行回数算出モジュールは、前記データベース操作処理によって発行されるデータベース操作文の発行回数の合計を算出し、
    前記負荷算出モジュールは、前記データベース操作処理によって発行されるデータベース操作文の負荷の合計を算出する
    階層型負荷推定システム。
  3. 請求項1に記載の階層型負荷推定システムであって、
    前記発行情報は、データベース操作文の分類を前記データベース操作処理毎に示し、
    前記発行回数算出モジュールは、前記発行回数を前記分類毎に算出し、
    前記負荷情報は、データベース操作文あたりの負荷を前記分類毎に示し、
    前記負荷算出モジュールは、前記負荷を前記分類毎に算出する
    階層型負荷推定システム。
  4. 請求項1に記載の階層型負荷推定システムであって、
    前記発行情報は、データベース操作文の分類を前記データベース操作処理及びエンティティ毎に示し、
    前記発行回数算出モジュールは、前記発行回数を前記分類及び前記エンティティ毎に算出し、
    前記負荷情報は、データベース操作文あたりの負荷を前記分類及び前記エンティティ毎に示し、
    前記負荷算出モジュールは、前記負荷を前記分類及び前記エンティティ毎に算出する
    階層型負荷推定システム。
  5. 請求項2乃至4のいずれか一項に記載の階層型負荷推定システムであって、
    前記多層システムは、データベース層を含み、前記負荷算出モジュールは、前記負荷を前記データベース層にかかる負荷として算出する
    階層型負荷推定システム。
  6. 請求項1乃至5のいずれか一項に記載の階層型負荷推定システムであって、
    前記階層呼出情報は、
    前記階層処理のうち外部から要求される最上位処理の呼出回数を示す第1情報と、
    前記階層処理における上位処理と下位処理との間の呼び出し関係を規定する第2情報と
    を含み、
    前記呼出回数算出モジュールは、前記第1情報と前記第2情報を用い、各層の処理の呼出回数を上位層から下位層に向けて順番に算出することによって、前記データベース操作処理の呼出回数を算出する
    階層型負荷推定システム。
  7. コンピュータが実行する階層型負荷推定方法であって、
    多層システムにおいて階層的に呼び出される階層処理の設計を示す階層呼出情報を記憶装置から読み出すことと、
    前記階層処理のうちデータベース操作処理によって発行されるデータベース操作文を規定する発行情報を前記記憶装置から読み出すことと、
    データベース操作文あたりの負荷を示す負荷情報を前記記憶装置から読み出すことと、
    前記階層呼出情報を参照して、前記データベース操作処理の呼出回数を算出することと、
    前記算出された呼出回数と前記発行情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の発行回数を算出することと、
    前記算出された発行回数と前記負荷情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の負荷を算出することと
    を含む
    階層型負荷推定方法。
  8. コンピュータ読み取り可能な記録媒体に記録された階層型負荷推定プログラムであって、
    多層システムにおいて階層的に呼び出される階層処理の設計を示す階層呼出情報を記憶装置から読み出すことと、
    前記階層処理のうちデータベース操作処理によって発行されるデータベース操作文を規定する発行情報を前記記憶装置から読み出すことと、
    データベース操作文あたりの負荷を示す負荷情報を前記記憶装置から読み出すことと、
    前記階層呼出情報を参照して、前記データベース操作処理の呼出回数を算出することと、
    前記算出された呼出回数と前記発行情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の発行回数を算出することと、
    前記算出された発行回数と前記負荷情報を参照して、前記データベース操作処理によって発行されるデータベース操作文の負荷を算出することと
    をコンピュータに実行させる
    階層型負荷推定プログラム。
JP2009535996A 2007-10-03 2008-08-21 階層型負荷推定システム、方法およびプログラム Expired - Fee Related JP5282908B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009535996A JP5282908B2 (ja) 2007-10-03 2008-08-21 階層型負荷推定システム、方法およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007259947 2007-10-03
JP2007259947 2007-10-03
PCT/JP2008/064871 WO2009044589A1 (ja) 2007-10-03 2008-08-21 階層型負荷推定システム、方法およびプログラム
JP2009535996A JP5282908B2 (ja) 2007-10-03 2008-08-21 階層型負荷推定システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2009044589A1 JPWO2009044589A1 (ja) 2011-02-03
JP5282908B2 true JP5282908B2 (ja) 2013-09-04

Family

ID=40526019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009535996A Expired - Fee Related JP5282908B2 (ja) 2007-10-03 2008-08-21 階層型負荷推定システム、方法およびプログラム

Country Status (3)

Country Link
US (1) US8583698B2 (ja)
JP (1) JP5282908B2 (ja)
WO (1) WO2009044589A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102811157A (zh) * 2011-06-01 2012-12-05 阿尔卡特朗讯公司 流量控制方法和流量控制装置
JP6717140B2 (ja) * 2016-09-16 2020-07-01 富士通株式会社 解析プログラム、解析方法、及び解析装置
JP7155636B2 (ja) * 2018-06-12 2022-10-19 富士通株式会社 生成プログラム、生成方法および情報処理装置
CN109325077A (zh) * 2018-08-03 2019-02-12 北京马上慧科技术有限公司 一种基于canal和kafka实现实时数仓的系统
JP2020024482A (ja) * 2018-08-06 2020-02-13 京セラドキュメントソリューションズ株式会社 処理実行システムおよび処理実行プログラム

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61245273A (ja) * 1985-04-24 1986-10-31 Hitachi Ltd 部品展開集約方法および装置
JPS63259740A (ja) * 1987-04-17 1988-10-26 Hitachi Ltd 性能推定装置
JPH02219138A (ja) * 1989-02-21 1990-08-31 Nec Corp コンピュータ性能予測装置
JPH03108036A (ja) * 1989-09-20 1991-05-08 Fujitsu Ltd データベース管理システムの性能見積もり方法
JPH0438522A (ja) * 1990-06-05 1992-02-07 Mitsubishi Electric Corp ソフトウェアプログラムシミュレータ
JPH05151031A (ja) * 1991-11-29 1993-06-18 Nec Corp オーバーヘツド情報算出方式
JPH0628405A (ja) * 1992-07-07 1994-02-04 Nec Corp 拡張可能データベースのユーザ定義手続き解析器
JPH06139065A (ja) * 1992-10-29 1994-05-20 Hokuriku Nippon Denki Software Kk プログラム性能見積もり装置
JPH11265306A (ja) * 1998-03-16 1999-09-28 Ntt Data Corp 処理能力概算装置、処理能力概算方法及び記録媒体
JP2000207255A (ja) * 1999-01-11 2000-07-28 Nec Corp オブジェクト指向プログラム性能予測方法
JP2002183416A (ja) * 2000-12-15 2002-06-28 Hitachi Ltd システム提案方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP2004220453A (ja) * 2003-01-17 2004-08-05 Nec Corp ソフトウェア・コンポーネントの性能測定を基にしたシステム性能予測方式および方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202541A (ja) 1995-01-24 1996-08-09 N T T Data Tsushin Kk システム設計方法及びシステム設計支援装置
US5860069A (en) * 1997-04-11 1999-01-12 Bmc Software, Inc. Method of efficient collection of SQL performance measures
US5960423A (en) * 1997-08-15 1999-09-28 Microsoft Corporation Database system index selection using candidate index selection for a workload
JP3137082B2 (ja) 1998-07-10 2001-02-19 日本電気株式会社 階層的資源競合を持つシステムの性能評価装置及び方法
US6347366B1 (en) 1998-12-10 2002-02-12 Genuity Inc. System and method for automatically optimizing software performance
US7003560B1 (en) * 1999-11-03 2006-02-21 Accenture Llp Data warehouse computing system
CA2366196A1 (en) * 2001-12-21 2003-06-21 Ibm Canada Limited-Ibm Canada Limitee Unique identification of sql cursor occurrences in repetitive, nested environment
JP2003223335A (ja) 2002-01-30 2003-08-08 Nec Corp アウトソーシングシステム、アウトソーシング方法およびアウトソーシング用プログラム
US7389435B2 (en) 2002-08-12 2008-06-17 Hewlett-Packard Development Company, L.P. System and method for the frequency management of computer systems to allow capacity on demand
US7200657B2 (en) * 2002-10-01 2007-04-03 International Business Machines Corporation Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure
US7451183B2 (en) 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
JP4526774B2 (ja) 2003-03-28 2010-08-18 株式会社野村総合研究所 コンピューターシステムの構成装置の性能バランス評価とサイジングを行う装置と方法
US7409676B2 (en) * 2003-10-20 2008-08-05 International Business Machines Corporation Systems, methods and computer programs for determining dependencies between logical components in a data processing system or network
JP4093483B2 (ja) 2003-12-26 2008-06-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 解析システム、解析方法、解析プログラム、及び記録媒体
US7805509B2 (en) * 2004-06-04 2010-09-28 Optier Ltd. System and method for performance management in a multi-tier computing environment
US7877378B2 (en) * 2005-04-28 2011-01-25 Cogito Ltd System and method for consolidating execution information relatin to execution of instructions by a database management system
JP4392665B2 (ja) 2005-05-26 2010-01-06 日本電気株式会社 クラスタシステムの性能予測装置、性能予測方法及び性能予測プログラム
US7716335B2 (en) * 2005-06-27 2010-05-11 Oracle America, Inc. System and method for automated workload characterization of an application server
JP4606333B2 (ja) 2005-09-20 2011-01-05 富士通株式会社 ルーティング制御方法
US7403954B2 (en) * 2005-09-30 2008-07-22 Sap Ag Systems and methods for repeatable database performance testing
JPWO2007088728A1 (ja) * 2006-01-31 2009-06-25 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 多層分散処理システム
JP4716259B2 (ja) 2006-03-29 2011-07-06 日本電気株式会社 サイジング支援システム、方法、及びプログラム
US20080109390A1 (en) * 2006-11-03 2008-05-08 Iszlai Gabriel G Method for dynamically managing a performance model for a data center
JP5088668B2 (ja) 2007-03-08 2012-12-05 日本電気株式会社 計算機負荷見積システム、計算機負荷見積方法、計算機負荷見積プログラム
US8051421B2 (en) * 2007-03-30 2011-11-01 Sap Ag Method and system for estimating resource provisioning

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61245273A (ja) * 1985-04-24 1986-10-31 Hitachi Ltd 部品展開集約方法および装置
JPS63259740A (ja) * 1987-04-17 1988-10-26 Hitachi Ltd 性能推定装置
JPH02219138A (ja) * 1989-02-21 1990-08-31 Nec Corp コンピュータ性能予測装置
JPH03108036A (ja) * 1989-09-20 1991-05-08 Fujitsu Ltd データベース管理システムの性能見積もり方法
JPH0438522A (ja) * 1990-06-05 1992-02-07 Mitsubishi Electric Corp ソフトウェアプログラムシミュレータ
JPH05151031A (ja) * 1991-11-29 1993-06-18 Nec Corp オーバーヘツド情報算出方式
JPH0628405A (ja) * 1992-07-07 1994-02-04 Nec Corp 拡張可能データベースのユーザ定義手続き解析器
JPH06139065A (ja) * 1992-10-29 1994-05-20 Hokuriku Nippon Denki Software Kk プログラム性能見積もり装置
JPH11265306A (ja) * 1998-03-16 1999-09-28 Ntt Data Corp 処理能力概算装置、処理能力概算方法及び記録媒体
JP2000207255A (ja) * 1999-01-11 2000-07-28 Nec Corp オブジェクト指向プログラム性能予測方法
JP2002183416A (ja) * 2000-12-15 2002-06-28 Hitachi Ltd システム提案方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP2004220453A (ja) * 2003-01-17 2004-08-05 Nec Corp ソフトウェア・コンポーネントの性能測定を基にしたシステム性能予測方式および方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND200701286002; 上坂利文: '特集2 最適なインフラ設計のためのキャパシティ・プランニング Part2 キャパシティ・プランニングの' ITアーキテクト Vol.13, 20071002, pp.110〜117, 株式会社アイ・ディ・ジー・ジャパン *
CSNH200610169003; 大串 守、坂東和彦: 'データベース処理応答時間見積装置' 東芝技術公開集 VOL.19-2, 20010115, pp.43〜45, 株式会社東芝 *
JPN6013014346; 大串 守、坂東和彦: 'データベース処理応答時間見積装置' 東芝技術公開集 VOL.19-2, 20010115, pp.43〜45, 株式会社東芝 *
JPN6013014347; 上坂利文: '特集2 最適なインフラ設計のためのキャパシティ・プランニング Part2 キャパシティ・プランニングの' ITアーキテクト Vol.13, 20071002, pp.110〜117, 株式会社アイ・ディ・ジー・ジャパン *

Also Published As

Publication number Publication date
US8583698B2 (en) 2013-11-12
US20100281305A1 (en) 2010-11-04
JPWO2009044589A1 (ja) 2011-02-03
WO2009044589A1 (ja) 2009-04-09

Similar Documents

Publication Publication Date Title
US10402225B2 (en) Tuning resources based on queuing network model
Saadat et al. PDDRA: A new pre-fetching based dynamic data replication algorithm in data grids
US9031826B2 (en) Method and apparatus for simulating operation in a data processing system
US8386463B2 (en) Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table
JP4815459B2 (ja) 負荷分散制御サーバ、負荷分散制御方法及びコンピュータプログラム
JP6096197B2 (ja) 分散データ管理システムにおけるクエリ説明計画
US6510457B1 (en) Data analysis method and apparatus for data mining
JP2891328B2 (ja) 多重レベル階層回路設計用の遅延時間値生成の方法
JP5282908B2 (ja) 階層型負荷推定システム、方法およびプログラム
TWI738721B (zh) 任務調度方法和裝置
US20100198572A1 (en) System and method for optimizing block diagram models
US20060224561A1 (en) Method and apparatus for associating logical conditions with the re-use of a database query execution strategy
JP6432333B2 (ja) 情報処理装置、データ処理方法、およびデータ処理プログラム
JP2009087190A (ja) ストリームデータ解析高速化装置、方法およびプログラム
JP2008084011A (ja) Cadデータのロード装置
WO2021114757A1 (zh) 计算图的优化方法、装置、计算机设备和存储介质
US7647333B2 (en) Cube-based percentile calculation
JP2008186163A (ja) プログラムの評価プログラム、プログラムの評価装置、プログラムの評価方法
JP2006331135A (ja) クラスタシステムの性能予測装置、性能予測方法及び性能予測プログラム
JP2011242825A (ja) 消費電力情報算出プログラム、消費電力情報算出方法、及び消費電力情報算出装置
JP5691529B2 (ja) 性能評価システム、性能評価方法および性能評価用プログラム
WO2024127523A1 (ja) 処理負荷推定システム、及び処理負荷推定方法
Akaikine The impact of software design structure on product maintenance costs and measurement of economic benefits of product redesign
CN118502964B (zh) 托卡马克新经典环向粘滞力矩cuda模拟实现方法
JP2010128835A (ja) 開発支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130501

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130514

R150 Certificate of patent or registration of utility model

Ref document number: 5282908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees