JPH08241327A - データベースシステムの性能チューニング装置及びデータベースシステムの性能チューニング方法 - Google Patents

データベースシステムの性能チューニング装置及びデータベースシステムの性能チューニング方法

Info

Publication number
JPH08241327A
JPH08241327A JP7045916A JP4591695A JPH08241327A JP H08241327 A JPH08241327 A JP H08241327A JP 7045916 A JP7045916 A JP 7045916A JP 4591695 A JP4591695 A JP 4591695A JP H08241327 A JPH08241327 A JP H08241327A
Authority
JP
Japan
Prior art keywords
log
information
execution
database
operation information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7045916A
Other languages
English (en)
Inventor
Hiroki Akama
浩樹 赤間
Yoshihisa Natsume
義久 夏目
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.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP7045916A priority Critical patent/JPH08241327A/ja
Publication of JPH08241327A publication Critical patent/JPH08241327A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 本発明の目的は、正確なAPのチューニング
を容易に可能とするデータベースシステムの性能チュー
ニング方法及びデータベースシステムの性能チューニン
グ装置を提供することを目的とする。 【構成】 本発明は、実AP内のDB操作の実行順序と
該操作のタイミングをログ化した制御情報を、実APの
代わりに使用して、該APの疑似化を行う疑似手段と、
疑似手段により疑似化されたAPを実行した結果を評価
し、評価結果に基づいて性能改善を行う改善手段とを有
する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データベースシステム
の性能チューニング装置及びデータベースシステムの性
能チューニング方法に係り、特に、データベースシステ
ムの評価・チューニング、及びアプリケーションプログ
ラム内のデータベース操作情報の実行順序及び実行タイ
ミングの疑似再現を行うためのデータベースシステムの
性能チューニング装置及びデータベースシステムの性能
チューニング方法に関する。
【0002】
【従来の技術】以下の説明に先立ち、説明で用いる略語
について説明する。 DB:データベース AP:アプリケーションプログラム DDL:データベースのスキーマ(構造や索引等)の定
義 DML:データベースへの問い合わせであり、実アプリ
ケーションプログラムのデータベース操作情報 次に、以下の説明の用語の意味を説明する。 ・APの中において、DMLを実行することによりDB
は利用される。 ・APにおいてDDLやDMLの設計方法は一意に確定
せず、設計者の考えに依存する。 ・APを記述する言語をホスト言語と呼び、DMLはホ
スト言語中に埋め込まれる。 ・ホスト言語内の変数で、DML文内でも使用する変数
をホスト変数という。 ・ホスト変数には、DML文に対して、条件やDBへの
格納値を指示する入力ホスト変数と、DBからの検索結
果を保持する出力ホスト変数がある。 ・環境とは、ハードウェアとソフトウェアである。 ・実環境とは、実際の業務APが動作している環境であ
る。 ・評価環境とは、評価ツールやチューニングツールが存
在し、評価やチューニングを行う環境である。 ・実APとは、実際の業務に利用されているAPであ
る。 ・移植APとは、実APを評価環境で動くようにしたA
Pである。 ・DBシステムのチューニングとは、DDLとDMLの
見直しや修正による性能改善作業である。 ・チューニングは一般試行錯誤(変更と効果の測定を繰
り返す)で行われる。 ・DBのチューニングでは、修正語の応答時間やスルー
プットが修正前のものより改善されているかを基準に作
業を進め、一般には要求性能を満足した時点で終了す
る。 ・チューニングでは、各DMLの応答時間やスループッ
トを知るために、ログ取得処理をAPに埋め込み、ログ
として、出力位置のID(ログ取得位置情報)、時刻情
報(または発行間隔)、その他の情報を発行順序に並べ
たものを得、それに基づいてチューニング対象の判断と
チューニング処理の終了を判断する、といった作業が行
われる。 ・ログ取得処理を埋め込むとは、APのソースプログラ
ム中にログ情報を取得する関数や手続きを埋め込むこと
だけではなく、OS(オペレーティングシステム)の機
能を用いて特定の命令でログ情報を取得する処理を実行
させることにより、APのソースプログラムに手を入れ
ることなく、ログ情報を取得することも含んでいる。ま
た、ログの出力先は、ディスク、メモリ、ネットワーク
等の違いを問わない。
【0003】以下に従来の技術を説明する。通常は、実
環境と評価環境が異なる。そこで、従来、このチューニ
ングを行う方法として以下の2通りの方法がある。従来
の第1のチューニングの方法は、実環境と評価環境が同
一の場合に行う方法である。
【0004】図21は、従来の第1の評価・チューニン
グのフローチャートである。 ステップ101) 実APにログ取得処理を埋め込む。 ステップ102) 実APを実行し、実行ログを取得す
る。 ステップ103) 実行ログの統計処理を行い、実AP
内のDMLの評価を行う。
【0005】ステップ104) もし、これらの値が実
APの要求性能を満足していれば、処理を終了する。満
足していなければ、ステップ105に移行する。 ステップ105) さらに、性能改善が必要であれば、
実AP,DBのDDL,DMLの変更を行い、ステップ
102に移行する。
【0006】上記の従来の第1の方法について説明す
る。図22、図23は、従来の第1の方法を説明するた
めの実環境のAPのソースプログラムの例を示す。同図
に示すソースプログラムのホスト言語としては、C言語
を使用し、DDL,DMLとしては、SQL言語を使用
して説明する。このAPの例では、変数、ホスト変数の
宣言の記述は省略している。
【0007】この例において、DMLは、“EXE
C”,“SQL”から“;”までの文を言い、ステップ
番号5A08〜5A11,5A17〜5A19,5A2
2,5A27〜5A30、5A37〜5A41,5A4
6〜5A48,5A51が該当し、それぞれのDMLを
SQL1,SQL2,SQL3,SQL4,SQL5,
SQL6,SQL7と呼ぶことにする。
【0008】上記以外の部分はホスト言語の処理であ
る。この第1の方法において、ステップ101は実AP
にログ取得処理を埋め込む処理である。この例でのログ
取得処理は、“getlog()関数”で行うと仮定している。
図24、図25は、従来の第1の方法において、ログ取
得処理を埋め込んだ例を示す。ステップ番号5B08,
5B13,5B19,5B23,5B26,5B28,
5B33,5B38,5B45,5B51,5B56,
5B60,5B63,5B65がログ取得関数の例であ
り、各DML文の前後に挿入されている。その他の部分
は、図22、図23のソースプログラムと同一である。
【0009】次にステップ102は、実APを実行し、
実行ログを取得する処理である。図24、図25に示す
ソースリストをコンパイル後、実行する。ここでは、2
つのAP1とAP2が同時に実行された場合について説
明する。AP1はプロセスIDが“1”、APはプロセ
スIDが“2”であるとする。図24、図25のAPは
AP1とする。AP1とAP2中に埋め込まれたログ取
得関数は、それぞれ図26に示されたタイミングで実行
されたものとする。その結果がログとして、図27に示
すように出力される。
【0010】例えば、“5B08”のログ取得関数“ge
tlog(1) ”を図26に示す“8B01”(時刻−0、A
P1の動作−LOC:1)のタイミングで実行した時の
ログが図27に示す“8B01”(PROC:1,LOC:1,TIME:
00:00:00) のように出力される。 ・図24の5B13のログ取得関数を図26の8A03
のタイミングで実行した時のログが図27の8B03の
ように出力される。 ・同様に、5B19のログ取得関数を8A04のタイミ
ングで実行した時のログが8B04のように出力され
る。 ・5B23のログ取得関数を8A08のタイミングで実
行した時のログが8B08のように出力される。 ・5B26のログ取得関数を8A09のタイミングで実
行した時のログが8B09のように出力される。 ・5B28のログ取得関数を8A11のタイミングで実
行した時のログが8B11のように出力される。 ・5B33のログ取得関数を8A13のタイミングで実
行した時のログが8B13のように出力される。 ・5B38のログ取得関数を8A14のタイミングで実
行した時のログが8B14のように出力される。 以下同様であるので、省略する。
【0011】上記のステップ103の処理は、実行ログ
の統計処理を行い、実AP内の評価を行う。AP1につ
いて図27のログ出力結果から以下のことが分かる。 ・SQL1に300ミリ秒かかった。 ・SQL1とSQL2の間の処理に50ミリ秒かかっ
た。 ・SQL2に500ミリ秒かかった。 ・SQL1とSQL2の間の処理に10ミリ秒かかっ
た。 ・SQL3に100ミリ秒かかった。 ・SQL1とSQL2の間の処理に50ミリ秒かかっ
た。 ・SQL4に50ミリ秒かかった。
【0012】上記のステップ104の処理は、取得した
値が実APの要求性能を満足していれば終了とする処理
である。ここでは、SQL2が要求性能を満足しないも
のとし、チューニングの対象とする。上記のステップ1
05の処理は、性能改善が必要である場合に、DBのD
DL,DMLの変更を行うものであり、ここでは、SQ
L2のチューニングとして、“w_id”列に索引を生
成する(これは、DDLの変更の例)。
【0013】チューニング後、再度ステップ102から
処理を繰り返す。次に、従来の第2のチューニング方法
について説明する。従来の第2のチューニングの方法
は、実環境と評価環境が異なる場合に行う方法である。
環境が異なるとは、マシンの種類(CPU,メモリ、動
作周波数)が異なる場合、OSやその版が異なる場合、
ディスク等の周辺機器が異なる場合、周辺ソフトウェア
(ミドルソフト、GUIソフト等)がない場合等を指
す。
【0014】図28は、従来の第2の評価・チューニン
グのフローチャートである。 ステップ201) 実AP,DBを評価環境に移植す
る。移植後の実APを移植APと呼ぶ。 ステップ202) 移植APにログ取得処理を埋め込
む。
【0015】ステップ203) 移植APを実行し、実
行ログを取得する。 ステップ204) 実行ログの統計処理を行い、移植A
P内のDMLの評価を行う。 ステップ205) 更に、性能改善が必要であれば、ス
テップ206に移行し、必要でなければステップ207
に移行する。
【0016】ステップ206) 移植AP,DBのDD
L,DMLの変更を行い、ステップ203に移行する。 ステップ207) 移植APのチューニング終了後に、
そのチューニング結果を実APのDDL,DMLに反映
させ、処理を終了する。
【0017】上記のステップ201の処理は、APの移
植のレベルによりさらに以下の3種類に移植APを分け
ることができる。第1には、実APを完全に評価環境に
移植する。これを移植APとする。これは、図24、図
25のソースプログラムを移植したものであり、図2
9、図30が移植後のソースプログラムである。
【0018】第2には、実APの基本的な制御構造(例
えば、if, for ,while, goto, …)とDML部分を評価
環境に移植する。これを移植APとする。これは、DM
L部分と基本的な制御構造(例えば、if, for, while,
goto, …) の部分を残して移植した場合であり、図3
1、図32が移植後のソースプログラムである。
【0019】なお、上記の第1、第2のパターンでは、
ホスト変数値や制御変数値の調整を行う部分が必要にな
る場合もある。第3には、実APのDML部分のみを評
価環境に移植する。これを移植APとする。これは、図
24、図25のDML部分を残して移植した場合であ
り、図33が移植後のソースプログラムである。
【0020】さらに、現実には、業務システム内の全て
のAPを移植する場合と、一部のAPを移植する場合が
存在し、それらと上記の方法の第1〜第3の方法が組み
合わされる。
【0021】
【発明が解決しようとする課題】しかしながら、上記の
従来の第1、第2の方法には、以下のような問題点があ
る。まず、従来の第1の方法については、第1に、他業
務に支障をきたすおそれがあり、実環境で評価作業がで
きない場合がある。第2に、実環境に評価用のツールが
ないために実環境で評価作業できない場合がある。第3
に、実環境に評価用の資源(増設ディスクやメモリな
ど)がないために、実環境で評価・チューニング作業が
できない場合がある。
【0022】次に、従来の第2の方法の第1のパターン
では、実環境と評価環境が異なるために、移植のために
APに膨大な修正が必要となることが多い。また、AP
を修正して移植するためには、業務知識が必要とされ、
チューニング担当者による移植は困難なことが多い。
【0023】従来の第2の方法の第2のパターンでは、
APの制御構造の抽出には、上記と同様に、業務知識が
必要とされ、チューニング担当者による抽出は困難なこ
とが多い。また、制御構造だけの移植では、処理順序や
処理頻度などの再現が難しく、移植後の移植APのチュ
ーニング結果が元の実APにそのまま適用できないこと
がある。
【0024】従来の第2の方法の第3のパターンでは、
各DML単体の応答時間によるチューニングは可能であ
り、実現は容易であるものの、処理順序や、処理頻度等
が実APと異なるため、複数のDB問い合わせが同時に
実行された場合のスループットによるチューニングがで
きない。
【0025】本発明は、上記の点に鑑みなされたもの
で、上記従来の問題点を解決し、正確なAPのチューニ
ングを容易に可能とするデータベースシステムの性能チ
ューニング方法及びデータベースシステムの性能チュー
ニング装置を提供することを目的とする。
【0026】本発明の更なる目的は、実APを評価環境
に移してチューニングを行う場合に、業務知識等の移植
に関する知識を必要とせず、容易に短時間で評価及びチ
ューニングを行うことが可能になるデータベースシステ
ムの性能チューニング方法及びデータベースシステムの
性能チューニング装置を提供することである。
【0027】また、本発明の更なる目的は、スループッ
トのより正確(近似率が高い)な評価及びチューニング
が可能なデータベースシステムの性能チューニング方法
及びデータベースシステムの性能チューニング装置を提
供することである。また、本発明の更なる目的は、実環
境と評価環境において、CPUとI/Oの性能比が大き
く異なっても実環境と同様のAP動作を再現することが
可能なデータベースシステムの性能チューニング方法及
びデータベースシステムの性能チューニング装置を提供
することである。
【0028】
【課題を解決するための手段】図1は、本発明の原理構
成図である。本発明は、データベースシステムの性能の
評価及びチューニングを行うデータベースシステムの性
能チューニング装置において、実アプリケーションプロ
グラム(以下APと記す)内のデータベース(以下、D
Bと記す)操作の実行順序と該操作のタイミングをログ
化した制御情報を、実APの代わりに使用して、該AP
の疑似化を行う疑似手段と、疑似手段により疑似化され
たAPを実行した結果を評価し、評価結果に基づいて性
能改善を行う改善手段とを有する。
【0029】上記の疑似手段は、実AP100にログ化
された制御情報を埋め込むログ埋込手段10と、実AP
100を実行し、第1の実ログを取得し、第1の実ログ
を評価環境に移植し、第1の実ログを移植ログとする第
1のログ取得手段20と、実AP100のデータベース
操作情報に基づいて疑似AP200を作成する疑似AP
生成手段30と、疑似AP生成手段30で生成された疑
似APにログ取得関数を埋め込むログ取得関数埋込手段
40と、移植ログを入力として疑似APを実行し、第2
の実行ログを取得する第2のログ取得手段50とを有す
る。
【0030】上記の改善手段は、疑似AP200内のデ
ータベース操作情報の評価を行う評価手段60と、評価
手段60による評価結果に基づいて、性能改善が必要で
あるか否かを判定し、必要である場合には、データベー
ス定義やデータベース操作情報の変更を行い、再び、第
2のログ取得手段50、評価手段60を繰り返す手段と
を有する。
【0031】また、上記の評価手段60は、第2の実行
ログの統計処理を行う統計手段を含む。また、上記の第
2のログ取得手段50は、データベース操作情報の実行
直前のログ情報を入力する第1のログ情報入力手段と、
データベース操作情報の実行直後のログの時刻情報とデ
ータベース操作情報の実行直前のログの時刻情報の差の
時間だけ待機する待機手段と、データベース操作情報の
直前のログの取得位置情報により該当するデータベース
操作情報を実行するデータベース操作情報実行手段と、
データベース操作情報の直後のログ情報を入力する第2
のログ情報入力手段と、第1のログ情報入力手段、待機
手段、データベース操作情報実行手段及び第2のログ情
報入力手段とを繰り返す手段を有し、データベースシス
テムのデータベース問い合わせを疑似する。
【0032】また、本発明は、データベース操作情報の
実行直前のログ情報を入力する第1のログ情報入力手段
と、データベース操作情報の実行直後のログの時刻情報
とデータベース操作情報の実行直前のログの時刻情報の
差の時間だけ待機する待機手段と、データベース操作情
報直前のログの取得位置情報により該当するデータベー
ス操作情報を実行するデータベース操作情報実行手段
と、データベース操作情報直後のログ情報を入力する第
2のログ情報入力手段と、第1のログ情報入力手段、待
機手段、データベース操作情報実行手段及び第2のログ
情報入力手段とを繰り返す手段を有し、データベースシ
ステムのデータベース問い合わせを疑似するAP疑似実
行手段を更に有する。
【0033】また、上記の第1のログ取得手段は、実A
Pのデータベース操作の実行直前に入力される、APを
記述する言語内の変数であるホスト変数値をログとして
保持するログ保持手段を有する。また、上記のデータベ
ース操作情報実行手段は、データベースシステムのデー
タベース問い合わせ処理のアクセスを疑似する場合に、
データベース操作情報の実行前にログ情報からホスト変
数値を復元するホスト変数値復元手段を含む。
【0034】また、上記の待機手段は、データベースシ
ステムのデータベース問い合わせ処理のスループットを
疑似するために、実環境でのデータベース操作情報の実
行時間をT1D、非データベース操作情報の実行時間を
T1W、評価環境でのデータベース操作情報の実行時間
をT2Dとするとき、T2W=T2D×T1W/T1D
とするとき、T2Wを待機時間とする。
【0035】図2は、本発明の原理を説明するためのフ
ローチャートである。本発明は、データベースシステム
の性能の評価及びチューニングを行うデータベースシス
テムの性能チューニング方法において、実AP内のデー
タベース(以下、DBと記す)操作の実行順序と該操作
のタイミングをログ化した制御情報を、実APの代わり
に使用して、APの疑似化を行い、疑似化されたAPを
実行し、APを実行した結果を評価し、評価結果に基づ
いて性能改善を行う。
【0036】本発明は、実APを疑似化する際に、実A
Pにログ化された制御情報を埋め込み(ステップ1)、
実APを実行し、第1の実ログを取得し(ステップ
2)、第1の実ログを評価環境に移植し、該第1の実ロ
グを移植ログとし(ステップ3)、実APのデータベー
ス操作情報に基づいて疑似APを作成し(ステップ
4)、生成された疑似APにログ取得関数を埋め込み
(ステップ5)、移植ログを入力として疑似APを実行
し、第2の実行ログを取得する(ステップ6)。
【0037】さらに、本発明は、性能改善を行う際に、
疑似AP実行結果の統計処理を行い(ステップ7)、疑
似AP内のデータベース操作情報の評価を行い(ステッ
プ8)、評価結果に基づいて、性能改善が必要であるか
否かを判定し(ステップ9)、必要である場合には、デ
ータベース定義やデータベース操作情報の変更を行い
(ステップ10)、再び、APを実行して第2のログを
取得し(ステップ6)、APを実行した結果を評価する
(ステップ8)処理を繰り返す。
【0038】また、本発明は、AP内のデータベース操
作情報の評価を行う際に(ステップ8)、第2の実行ロ
グの統計処理を行う(ステップ7)。また、本発明は、
第2のログを取得する際に(ステップ6)、データベー
ス操作情報の実行直前のログ情報を入力し、データベー
ス操作情報の実行直後のログの時刻情報とデータベース
操作情報の実行直前のログの時刻情報の差の時間だけ待
機し、データベース操作情報直前のログの取得位置情報
により該当するデータベース操作情報を実行し、データ
ベース操作情報直後のログ情報を入力する処理を繰り返
して、データベースシステムのデータベース問い合わせ
を疑似する。
【0039】また、本発明は、第1のログを取得する際
に(ステップ1)、実APのデータベース操作の実行直
前に入力されるホスト変数値をログとして保持する。ま
た、本発明は、データベース操作情報を実行する際に、
データベースシステムのデータベース問い合わせ処理の
アクセスを疑似する場合に、データベース操作情報の実
行前にログ情報からホスト変数値を復元する。
【0040】また、本発明は、時刻情報の差の時間を待
機する際に、データベースシステムのデータベース問い
合わせ処理のスループットを疑似するために、実環境で
のデータベース操作情報の実行時間をT1D、非データ
ベース操作情報の実行時間をT1W、評価環境でのデー
タベース操作情報の実行時間をT2DとしT2W=T2
D×T1W/T1Dとするとき、T2Wを待機時間とす
る。
【0041】
【作用】本発明は、実行ログの移植において、最も単純
なケースでは、単にファイルをコピーするだけである
が、マシンやOSの違いにより、ファイル形式、文字コ
ード等の変換を行う必要があったり、ログが複数のAP
やプロセスの情報を含む場合には、ログをAPやプロセ
スごとに分割する作業が必要となる場合でも、実ログを
評価環境に移行し、疑似APを実行して、当該評価環境
内で評価し、チューニングが必要であれば、当該評価環
境内でDDLやDMLの変更を行うことが可能となる。
【0042】また、本発明は、読み込んだログ情報のロ
グ取得位置の並びで、DMLの発行順序を、ログの時刻
情報でDMLの発行タイミングを再現し、APの疑似を
可能にする。また、本発明は、AP内のDMLの実行順
序とタイミングをログ化し、そのログをAPの代わりに
利用してAPの疑似を行うことで移植の対象をAPでは
なく、ログ情報とし、APの移植を不要にして作業の機
械化と高速化を図ることを可能にする。これにより、A
Pを移植することなく、ログ情報を移植するのみで、D
MLの発行シーケンスや、タイミングを疑似することが
可能となり、複数のDMLが同時に実行された場合のD
MLのスループットの再現が可能になり、スループット
をベースとしたデータベースシステムの評価やチューニ
ングが可能となる。
【0043】また、本発明により、DMLの実行直前に
DMLに入力されるホスト変数値をログとして保持し、
ログの中に更にホスト変数の情報を保持すると共に、各
DMLの実行前にログ内のホスト変数値を使ってホスト
変数の値を再設定することで、アクセス時の条件値によ
って応答時間性能がばらつくDMLの性能特性の疑似が
可能となり、また、複数のDMLで同一の資源をロック
する等の実APの特性の再現も可能とする。さらに、ア
クセスにおける“NOT FOUND ”等の処理の再現も可能と
することにより、応答時間やスループットの特性の近似
度を向上させる。
【0044】さらに、本発明により、DMLの実行時間
と非DMLの実行時間の比を実APと疑似APで同一に
することで、実環境と評価環境のCPU性能とI/O性
能の比が大きく異なった場合でもその性能特性の再現を
可能にする。
【0045】
【実施例】以下、図面と共に、本発明の実施例を説明す
る。図3は、本発明の第1の実施例のシステム構成を示
す。同図に示す構成は、第1のログ取得処理埋込部1
0、実AP実行ログ取得部20、移植ログ作成部27、
疑似AP作成部30、第2のログ取得処理埋込部40、
疑似AP実行ログ取得部50、DML評価部60、判定
部70及びチューニング部80より構成される。
【0046】第1のログ取得処理埋込部10は、実AP
100にログ取得処理を埋め込む。実AP実行ログ取得
部20は、実AP100を実行させ、実行ログA105
を取得して、移植ログ作成部27に転送する。また、実
AP実行ログ取得部20は、実APに対して実行の起動
を行う際に、DMLに入力される条件やDBへの格納値
を指示するためのホスト変数値をログとして保持するロ
グ保持部21を有する。
【0047】移植ログ作成部27は、実行ログA105
を評価環境に移す。評価環境中に存在するログを移植ロ
グ110という。疑似AP作成部30は、実AP100
のデータベース操作情報(DML)に基づいて疑似AP
200を生成する。
【0048】第2のログ取得処理埋込部40は、疑似A
P200に対してログ取得関数を埋め込み、疑似AP’
200’を生成する。疑似AP実行ログ取得部50は、
移植ログ110を入力として、疑似AP’200’を実
行し、実行ログB205を取得する。
【0049】DML評価部60は、疑似AP’200’
を実行させた結果取得した実行ログB205の統計処理
を行い、疑似AP’200’内のDMLの評価を行う。
判定部70は、DML評価部60により評価された評価
結果に基づいて性能改善が必要であるか否かを判断し、
判断結果をチューニング部80に出力する。
【0050】チューニング部80は、判断結果に基づい
て、性能改善が必要である場合には、データベース定義
(DDL)情報や、DMLの変更を行い、疑似AP実行
ログ取得部50に対して、再度疑似AP’200’を実
行するように指示する。次に、本実施例の動作を説明す
る。図5は、本発明の第1の実施例の評価・チューニン
グのフローチャートである。なお、図22、図23に示
す実APに基づいて説明するものとする。図22、図2
3に示す実APは、ホスト言語としてC言語を使用し、
DDL,DMLとしてSQL言語を使用して説明する。
内容は、従来の技術と同様である。
【0051】ステップ301) 実APにログ取得情報
を埋め込む。埋め込まれて状態は図24、図25に示す
内容となり、前述の従来の技術と同様の内容である。 ステップ302) 実APを実行し、実行ログ1を取得
する。 ステップ303) 実行ログ1を評価環境に移す。以
後、移植した後のログを移植ログと呼ぶ。この例では、
2つのAPがそれぞれ別のプロセスで動いているので、
それをプロセス毎のログに分割する。例えば、図27の
プロセスIDの“1”のログのみを抽出した後の移植ロ
グの例を図5に示す。
【0052】ステップ304) 実APのDML情報に
基づいて疑似APを作成する。作成したAPの例を図
6、図7に示す。7A18〜7A21が、SQL1(5
A08〜5A11),7A27〜7A29が、SQL2
(5A17〜5A19),7A35 が、SQ
L3(5A22),7A41〜7A44が、SQL4
(5A27〜5A30),7A50〜7A54が、SQ
L5(5A37〜5A41),7A60〜7A62が、
SQL6(5A46〜5A41),7A68
が、SQL7(5A51)に対応しており、実APのD
ML情報をそのIDに対応する条件分岐先に埋め込んだ
部分であり、その他の部分は宣言部を除き、通常固定で
あるため、その合成の自動化は容易である。
【0053】上記の図6、図7の例は、以下に説明する
ログ取得関数の埋め込みが終了している時点を表してい
る。 ステップ305) 疑似APにログ取得関数を埋め込
む。この例で、ログ取得処理は、getlog()関数で行うも
のと仮定している。ログ取得処理を埋め込んだ例を図
6、図7に示す。同図において、7A17,7A22,
7A26,7A30,7A34,7A36,7A40,
7A45,7A49,7A55,7A59,7A63,
7A67,7A69がログ取得関数の例であり、各DM
L文の前後に挿入されている。
【0054】ステップ306) 移植ログを入力とし
て、疑似APを実行し、実行ログ2を取得する。この手
段は、請求項2、3、5、6に対応している。そこで、
このデータベースシステムのAPを疑似する処理につい
て説明する。図8は、本発明の一実施例のAPを疑似す
る処理のフローチャートである。
【0055】ステップ3061) DML実行直前のロ
グ情報(時刻情報、位置情報、ログ対象種別情報)を入
力する。 ステップ3062) 終了か否かを判定する。 ステップ3063) DML実行直後の時刻情報と、D
ML実行直前の時刻情報との差分の時間だけ待機(WAI
T) を処理を行う。
【0056】ステップ3064) ログの取得位置情報
により該当するDMLを実行する。 ステップ3065) DML実行直後のログ情報を入力
する(時刻情報、位置情報、ログ対象種別情報)。
【0057】上記のAPを疑似する処理は、具体例を用
いて後述する。 ステップ307) 実行ログ2の統計処理を行い、疑似
AP内のDMLの評価を行う。この場合、図9のログ出
力結果から以下のことが分かる。 ・SQL1に280ミリ秒かかった。 ・SQL1とSQL2の間の処理に50ミリ秒かかっ
た。 ・SQL2に540ミリ秒かかった。 ・SQL1とSQL2の間の処理に10ミリ秒かかっ
た。 ・SQL3に90ミリ秒かかった。 ・SQL1とSQL2の間の処理に50ミリ秒かかっ
た。 ・SQL4に60ミリ秒かかった。ここでは、実行時間
の係り過ぎるSQL2をチューニング対象とすることに
する。
【0058】ステップ308) もし、評価値が実AP
の要求性能を満足してれば、ステップ3310に移行す
る。 ステップ309) 性能改善が必要であれば、DDL,
DMLの変更を行う。ここでは、SQL2のチューニン
グとして“w _id”列に索引を生成する(DDLの変更
の例)、再度、ステップ306から繰り返す。
【0059】ステップ310) 移植APのチューニン
グ終了後に、そのチューニング結果を実APのDDL,
DMLに反映させる。上記のステップ306の動作を具
体的に説明する。図8の各ステップについて図6を用い
て説明する。
【0060】(1) DML実行直前のログ情報(時刻
情報、ログ取得位置情報、ログ対象種別情報)を入力す
る(7A09〜7A10)。ログ情報(8C01)を入
力する。“loc _id=1なので、ログ対象種別情報は、D
MLの実行直前のログ、時刻情報“this _time=
0”、ログ取得位置情報“loc _id=1”とする(ステッ
プ3061)。
【0061】(2) ここで、もし、APを疑似する処
理を終了するならば、終了処理を行う(7A12)。終
了の判定には、終了の入力が行われた場合、ログが無く
なった場合、ログ情報内に書かれた終了フラグ情報(例
えば、ログ取得位置情報が負の値)を入力したことによ
って終了する方式等でもよい。この場合には、終了しな
いものとして、次のステップに移行する(ステップ30
62)。
【0062】(3) DML実行直後のログの時刻情報
とDMLの実行直前のログの時刻情報の差の時間だけ待
機処理(WAIT) を行う(7A16)。ここでは、初回で
あるため、“last_time”は0であり、“this_time”
も0のため、“wait(0) ”を行う(ステップ306
3)。
【0063】(4) DMLの実行直前のログの取得位
置情報により該当するDMLを実行する際に、“loc _
id”が1であることにより、既に7A14において、分
岐を行っている。よって、ここでは、SQL1(7A1
8〜7A21)が実行される(ステップ3064)。
【0064】(5) DMLの実行直後のログ情報(8
C02)を入力する(7A09,7A10)。ログ情報
を入力する際に、“log _id”=2なので、ログ対象種別
情報は、DMLの実行直後のログとし、時刻情報は“th
is_time=300”、ログ取得位置情報は“log _id=2”と
し、この後、7A71,7A72,7A06を実行し、
再び(1)に移行する(ステップ3065)。
【0065】(6) DMLの実行直前のログ情報(時
刻情報、ログ取得位置情報、ログ対象種別情報)を入力
する7A09〜710)。ここでは、ログ情報(8C0
3)を入力する。ログ情報を入力する際に、“log _i
d”=3なので、ログ対象種別情報は、DMLの実行直前
のログとし、時刻情報は“this_time=350”、ログ取得
位置情報は“log _id=3”とする。この場合には、終了
しないで、ステップ3063に移行する(ステップ30
61)。
【0066】(7) DML実行直後のログの時刻情報
とDMLの実行直前のログの実行情報の差の時間だけ待
機(wait) 処理を行う(7A25)。ここでは、last_
timeは1つ前のログ情報の値300であり、“this_ti
me”は350 のため、“wait(50) ”を行う(ステップ3
063)。
【0067】(8) DMLの実行直前のログの取得位
置情報により該当するDMLを実行する(4A06)。
“loc _id”が3であることにより、既に7A14にお
いて分岐を行っている。よって、ここでは、SQL2
(7A27〜7A29)が実行される(ステップ306
4)。
【0068】(9) DMLの実行直後のログ情報を入
力する(7A09〜7A10)。ここでは、ログ情報
(8C04)を入力する。“log _id=4”であるので、
ログ対象種別情報はDMLの実行直後のログとなり、時
刻情報this_time=900”、ログ取得位置情報“log _id
=4”とする。この後、7A71,7A72,7A06を
実行し、再び、ステップ3061に移行する(ステップ
3067)。
【0069】(10) DMLの実行直前のログ情報
(時刻情報、ログ取得位置情報、ログ対象種別情報)を
入力する(7A09〜7A10)。ログ情報(8C0
5)を入力する。“log _id=5”なので、ログ対象種別
情報は、DMLの実行直前のログとし、時刻情報は“th
is_time=910”、ログ取得位置情報“loc _id=5”とす
る(ステップ3061)。この場合には、(11)に移
行する。
【0070】(11) DWLの実行直後のログの時刻
情報とDMLの実行直前のログの時刻情報の差の時間だ
け待機処理(wait) を行う(7A33)。ここでは、
“last_time”は1つ前のログ情報の値900であり、
“this_time”は910のため、“wait(10)”を行う。
【0071】(12) DMLの実行直前のログの取得
位置情報により、該当するDMLを実行する。“loc _
id”が5であることにより、既に7A14において、分
岐を行っている。よって、ここでは、SQL3(7A3
5)が実行される。 (13) DML実行直後のログ情報を入力する。ログ
情報(8C06)を入力する。“loc _id=6”なので、
ログ対象種別情報は、DMLの実行直後のログ時刻情報
“this_time=1010 ”、ログ取得位置情報“loc _id=
6”とする。この後、7A71,7A72,7A06を
実行し、再びステップ3061の処理に移行する。この
場合には、(1)に移行する(ステップ3065)。
【0072】(14) DMLの実行直前のログ情報
(時刻情報、ログ取得位置情報、ログ対象種別情報)を
入力する(7A09〜7A10)。ログ情報(8C0
7)を入力する。“loc _id=7”なので、ログ対象種別
情報は、DMLの実行直前のログ時刻情報“this_time
=1060 ”、ログ取得位置情報“loc _id=7”とする。こ
の場合には、終了しないで(15)に移行する(ステッ
プ3065)。
【0073】(15) DMLの実行直後のログの時刻
情報とDMLの実行直前のログの時刻情報の差の時間だ
け待機処理(wait)を行う(ステップ3063)。ここ
では、“last_time”は、1つ前のログ情報の値101
0であり、“this_time”は1060のため、待機処理
“wait(50)”を行う。
【0074】(16) DMLの実行直前のログの取得
位置情報により該当するDMLを実行する(ステップ3
064)。“log _id”が7であることにより、既に7
A14において分岐を行っている。よって、ここでは、
SQL4(7A41〜7A44)が実行される(ステッ
プ3064)。
【0075】(17) DMLの実行直後のログ情報を
入力する(ステップ3065)。“log _id=8”なの
で、ログ対象種別情報は、DMLの実行直後のログ時刻
情報“this_time=1110 ”、ログ取得位置情報“loc _
id=8”とする。この後、7A71,7A72,7A06
を実行し、再びステップ3061に移行する。
【0076】以後、終了条件が満たされるまで、同様に
ループは繰り返される。以上は、プロセス1の移植ログ
を使用したAP1の疑似だったが、同様にプロセス2の
移植ログを使用してAP1を疑似したAPとAP2を疑
似したAPを同時に実行させることもできる。
【0077】上記のステップ306の処理は、図6、図
7に示すソースリストをコンパイルの後実行する。図
6、図7のAPをAP1とし、プロセスのIDは1とす
る。その結果がログとして、図9に示されるように出力
される。 ・7A17のログ取得関数を実行した時のログが8D0
1のように出力される。 ・7A22のログ取得関数を実行した時のログが8D0
2のように出力される。 ・7A26のログ取得関数を実行した時のログが8D0
3のように出力される。 ・7A30のログ取得関数を実行した時のログが8D0
4のように出力される。 ・7A34のログ取得関数を実行した時のログが8D0
5のように出力される。 ・7A36のログ取得関数を実行した時のログが8D0
6のように出力される。 ・7A40のログ取得関数を実行した時のログが8D0
7のように出力される。 ・7A45のログ取得関数を実行した時のログが8D0
8のように出力される。 以下同様なので省略する。
【0078】疑似APの出力したこのログは、若干時刻
情報がずれる場合があるものの、実APの出力したログ
図5と時刻情報に関して評価上略同様の実行結果とな
る。 [第2の実施例]次に、前述の図4のフローチャートの
ステップ303において、ログ取得処理にホスト変数の
情報を取得する際の他の方法について説明する。
【0079】本実施例では、DMLの実行直前のホスト
変数をログ内に保存し、そのログを利用してホスト変数
値を復元するものである。以下、図4のフローチャート
に基づいて説明する。 ステップ301) 実APにログ取得処理を埋め込む。
この結果、図10、図11に示すようになる。なお、同
図は、ログ情報取得関数を埋め込んだ後の状態であり、
DML前後のホスト変数値の保存を行う場合を示してい
る。この例でのログ取得処理は、“getlog()”関数で行
うと仮定している。ログ取得処理を埋め込んだ例として
は、5C08,5C13,5C19,5C23,5C2
6,5C28,5C33,5C38,5C45,5C5
1,5C56,5C60,5C63,6565がログ取
得関数の例であり、各DML文の前後に挿入されてい
る。
【0080】ステップ302) 実APを実行し、実行
ログ1を取得する。図10、図11に示すソースリスト
をコンパイルの後実行する。ここでは、2つのAP1と
AP2同時に実行された場合について説明する。AP1
はプロセスIDが“1”、AP2はプロセスIDが
“2”とする。図10、図11のAPを“AP1”とす
る。AP1とAP2中に埋め込まれたログ取得関数は、
それぞれ、図26に示されたタイミングで実行されたも
のとする。この結果がログとして、図12に示すように
出力される。同図は、ログ情報取得操作(getlog) によ
って収集されたログの例であり、ホスト変数値の保存を
行っている。
【0081】その出力内容は、 ・5C08のログ取得関数を8A01のタイミングで実
行した時のログが8E01のように出力される。 ・5C13のログ取得関数を8A03のタイミングで実
行した時のログが8E03のように出力される。 ・5C19のログ取得関数を8A04のタイミングで実
行した時のログが8E04のように出力される。 ・5C23のログ取得関数を8A08のタイミングで実
行した時のログが8E08のように出力される。 ・5C26のログ取得関数を8A09のタイミングで実
行した時のログが8E09のように出力される。 ・5C28のログ取得関数を8A11のタイミングで実
行した時のログが8E11のように出力される。 ・5C33のログ取得関数を8A13のタイミングで実
行した時のログが8E13のように出力される。 ・5C38のログ取得関数を8A14のタイミングで実
行した時のログが8E14のように出力される。 以下同様であるので、省略する。
【0082】この場合、上記の図12のログ出力結果か
ら以下のことが分かる。 ・SQL1に300ミリ秒かかった。 ・SQL1とSQL2の間の処理に50ミリ秒かかっ
た。 ・SQL2に550ミリ秒かかった。 ・SQL1とSQL2の間の処理に10ミリ秒かかっ
た。 ・SQL3に100ミリ秒かかった。 ・SQL1とSQL2の間の処理に50ミリ秒かかっ
た。 ・SQL4に50ミリ秒かかった。 ・SQL1実行直前のホスト変数w_idの値は130
0であった。 ・SQL2実行直前のホスト変数w_idの値は130
0、h_amountの値は10であった。 ・SQL3には入力ホスト変数がない。 ・SQL4実行直前のホスト変数i_idの値は101
300であった。
【0083】前述の第1の実施例の結果である図24、
図25との違いは、ログ取得処理時にホスト変数の情報
を取得する処理が加わっている点である。 ステップ303) 実行ログ1を評価環境に移す。以後
移植した後のログを移植ログと呼ぶ。この例では、2つ
のAPがそれぞれ別のプロセスで動いているので、それ
をプロセス毎のログに分割する。図12のプロセスID
が“1”のログのみを抽出した後の移植ログの例を図1
3に示す。
【0084】ステップ304) 実APのDML情報を
元に疑似APを作成する。作成したAPの例を図14、
図15に示す。同図は、本発明の第2の実施例の疑似A
Pのソースプログラム例を示す。同図において、7B1
9〜7B22が、SQL1(5A08〜5A11),7
B30〜7B32が、SQL2(5A17〜5A1
9),7B38 が、SQL3(5A22),
7B45〜7B48が、SQL4(5A27〜5A3
0),7B58〜7B62が、SQL5(5A37〜5
A41),7B71〜7B73が、SQL6(5A46
〜5A48),7B79 が、SQL7(5A
51)に対応しており、実APのDML情報をそのID
に対応する条件分岐先に埋め込んだ部分であり、その他
の部分は通常固定である。
【0085】但し、図14、図15は次のログ取得関数
埋め込みも終わった時点の例である。前述の第1の実施
例との違いは、DML実行直前にログ情報からホスト変
数値を復元する処理を行うことである。図14、図15
では、その処理を“sethvar() ”関数で行うと仮定して
いる。“sethvar() ”の第1引数が復元するホスト変
数、第2引数がログ情報内のホスト変数値域の情報、第
3引数が第2引数の情報と第1引数の関係付けを行うた
めの引数である。図14、図15において、“sethva
r() ”関数処理に対応するのは、7B17,7B27,
7B28,7B43,7B53〜7B56,7B67〜
7B69である。
【0086】ステップ305) 疑似APにログ取得関
数を埋め込む。この例でのログ取得処理は、“getlo
g()”関数で行うものとする。ログ取得処理を埋め込ん
だ例として、図14、図15においては、7B18,7
B23,7B29,7B33,7B37,7B39,7
B44,7B49,7B57,7B63,7B70,7
B74,7B78,7B80がログ取得関数の例であ
り、各DML文の前後に挿入されている。
【0087】ステップ306) 移植ログを入力として
疑似APを実行し、実行ログ2を取得する。そこで、こ
のデータベースシステムのAPを疑似する例を図16に
基づいて説明する。図16は、本発明の第2の実施例の
APを疑似する処理のフローチャートである。
【0088】ステップ30610) DML実行直前の
ログ情報を入力する(時刻情報、位置情報、ログ対象種
別情報、入力ホスト変数値)。 ステップ30620) APを疑似する処理を続行する
場合にはステップ30630に移行し、続行しない場合
には処理を終了する。
【0089】ステップ30630) DML実行直後の
時刻情報と、DML実行直前の時刻情報との差分の時間
だけ待機(wait) する。 ステップ30640) ログ情報からホスト変数値を再
現する。 ステップ30650) ログの取得位置情報により該当
するDMLを実行する。
【0090】ステップ30660) DML実行直後の
ログ情報を入力する(時刻情報、位置情報、ログ対象種
別情報)。 ステップ30670) 処理が終了しない場合には、ス
テップ30610に移行する。
【0091】上記の具体例は後述する。 ステップ307) 実行ログ2の統計処理を行い、疑似
AP内のDMLの評価を行う。この場合、図9のログ出
力結果から以下のことが分かる。 ・SQL1に280ミリ秒かかった。 ・SQL1とSQL2の処理に50ミリ秒かかった。 ・SQL2に540ミリ秒かかった。 ・SQL1とSQL2の処理に10ミリ秒かかった。 ・SQL3に90ミリ秒かかった。 ・SQL1とSQL2の間の処理に50ミリ秒かかっ
た。 ・SQL4に60ミリ秒かかった。 ここでは、実行時間のかかりすぎるSQL2をチューニ
ング対象とすることにする。
【0092】ステップ308) もし、これらの評価値
が実APの要求性能を満足していれば、ステップ310
に移行する。 ステップ309) 評価値が実APの要求性能を満足し
ていなければ、性能改善が必要であるとして、DDL,
DMLの変更を行う。ここでは、SQL2のチューニン
グとしてw_id列に索引を生成し(これは、DDLの
変更の例)、ステップ306の処理に移行する。
【0093】ステップ310) 移植APのチューニン
グ終了後に、そのチューニング結果を実APのDDL,
DMLに反映させる。上記のステップ306の処理を具
体的に説明する。図16のフローチャートにおいて、ス
テップ30610、ステップ30650が図14、図1
5の7B09〜7B10に対応し、ステップ3062
0、ステップ30670が7B12,7B06に対応
し、ステップ30630が7B18,7B23,7B2
9,7B33,7B37,7B39,7B44,7B4
9,7B57,7B63,7B70,7B74,7B7
8,7B80に対応し、ステップ30640が7B1
6,7B26,7B36,7B42,7B52,7B6
6,7B77に対応し、ステップ30650が7B19
〜7B22,7B30〜7B32,7B38,7B45
〜7B48,7B58〜7B62,7B71〜7B7
3,7B79に対応する。
【0094】(1) DMLの実行直前のログ情報(時
刻情報、ログ取得位置情報、ログ対象種別情報、ホスト
変数値情報)を入力する(7B09〜7B10)。ログ
情報は、“loc _id=1”なので、ログ対象種別情報は、
DMLの実行前のログ、時刻情報は“this_time=0”、
ログ取得位置情報は、“loc _id=1”、ホスト変数値情
報は1300である。ここで、もし、APの疑似する処
理を終了するのであれば、終了処理を行う(7B1
2)。
【0095】終了判定には、終了の入力が行われた場
合、ログが無くなった場合、ログ情報内に書かれた終了
フラグ情報(例えば、ログ取得位置情報が負の値)を入
力したことによって終了する方式等でも構わない。この
場合には、終了しないで次の処理に移行する。
【0096】(2) DML実行直後のログの時刻情報
とDMLの実行直前のログの時刻情報の差の時間だけ待
機処理(wait) を行う(7B16)。ここでは、初回で
あるため、“last_time”は0であり、“this_time”
も0のため、wait(0) を行う。
【0097】(3) DMLの実行の前にログ情報から
ホスト変数値を復元する(7B17)。この場合、ログ
情報(8F91)内のホスト変数値情報からホスト変数
w_idの値を1300に復元する。 (4) DMLの実行直前のログの取得位置情報により
該当するDMLを実行する。“loc _id”が1であるこ
とにより、既に7B14において、分岐を行っている。
よって、ここでは、SQL1(7B19〜7B22)が
実行される。
【0098】(5) DMLの実行直後のログ情報を入
力する(7B09〜7B10)。ログ情報(8F02)
を入力する。ログ情報は、“loc _id=2”であるので、
ログ対象種別情報は、DMLの実行直後のログである。
時刻情報は“this_time=300”、ログ取得位置情報“lo
c _id=2”である。この後、7B82,7B83,7B
06を実行し、再び、ステップ30610に移行する。
【0099】(6) DMLの実行直前のログ情報(時
刻情報、ログ取得位置情報、ログ対象種別情報、ホスト
変数値情報)を入力する(7B09〜7B10)。ログ
情報(8F03)を入力する。ログ情報は、“loc _id
=3”なので、ログ対象種別情報は、DMLの実行直前の
ログである。時刻情報は、“this_time=350”であり、
ログ取得位置情報は“loc _id=3”、ホスト変数値情報
は、10、1300である。この場合は、終了しない
で、次の処理に移行する。
【0100】(7) DMLの実行直後のログの時刻情
報とDMLの実行直前のログの時刻情報の差の時間だけ
待機処理(wait) を行う(7B26)。ここでは、“la
st_time”は1つ前のログ情報の値300であり、“th
is_time”は350のため、待機処理“wait(50)”を行
う。
【0101】(8) DMLの実行の前にログ情報から
ホスト変数値を復元する(7B27〜7B28)。この
場合、ログ情報(8F03)内のホスト変数値情報から
ホスト変数“h _amount”の値を10に“w _id”の値
を1300に復元する。 (9) DMLの実行直前のログ取得位置情報により該
当するDMLを実行する。loc _idが3であることによ
り、既に7B14において分岐を行っている。よって、
ここでは、SQL(7B30〜7B32)を実行し、ス
テップ30610に移行する。
【0102】(10) DMLの実行直後のログ情報を
入力する(7B09〜7B10)。ログ情報(8F0
4)を入力する。ログ情報は、“loc _id=4”なので、
ログ対象種別情報は、DMLの実行直前のログである。
時刻情報は、“this_time=900”であり、ログ取得位置
情報は“loc _id=4”であり、この後、7B82,8B
83,7B06を実行し、ステップ30610に移行す
る。
【0103】(11) DMLの実行直前のログ情報
(時刻情報、ログ取得位置情報、ログ対象種別情報、ホ
スト変数値情報)を入力する(7B09〜7B10)。
ここでは、ログ情報(8F05)を入力する。ログ情報
は、“loc _id=5”なので、ログ対象種別情報は、DM
Lの実行直前のログである。時刻情報は、“this_time
=910”であり、ログ取得位置情報は“loc _id=5”であ
り、ホスト変数値情報はない。この場合は、終了しない
で次の処理に移行する。
【0104】(12) DMLの実行直後のログの時刻
情報とDMLの実行直前のログの時刻情報の差の時間だ
け、待機処理(wait) 行う(7B36)。ここでは、
“last_time”は1つ前のログ情報の値900であり、
“this_time”は910のため、wait(10)を行う。
【0105】(13) DML実行の前にログ情報から
ホスト変数値を復元する。ここでは、ログ(8F05)
内にホスト変数値の情報がないので、ホスト変数値の再
現は行わない。 (14) DMLの実行直前のログの取得位置情報によ
り該当するDMLを実行する。loc _idが5であること
により、既に7B14において分岐を行っている。よっ
て、ここでは、SQL3(7B38)が実行される。
【0106】(15) DMLの実行直後のログ情報を
入力する(7B09〜7B10)。ログ情報(8F0
6)を入力する。ログ情報は、loc _id=6なので、ロ
グ対象種別情報は、DMLの実行直後のログであり、時
刻情報this_time=1010、ログ取得位置情報はloc
_id=6である。この後、7B82,7B83,7B0
6を実行し、ステップ30610に移行する。
【0107】(16) DMLの実行直前のログ情報を
入力する(時刻情報、ログ取得位置情報、ログ対象種別
情報、ホスト変数値情報)を入力する(7B09〜7B
10)。ログ情報(8F07)を入力する。ログ情報
は、loc _id=7なので、ログ対象種別情報は、DML
の実行直前のログであり、時刻情報this_time=106
0、ログ取得位置情報はloc _id=7、ホスト変数値情
報は101300である。この場合には、終了しないで
次に処理に移行する。
【0108】(17) DMLの実行直後のログの時刻
情報とDMLの実行直前のログの時刻情報の差の時間だ
け、待機処理を行う(7B42)。ここでは、last_ti
meは、1つ前のログ情報の値1010であり、this_ti
meは1060のため、待機処理wait(50)を行う。
【0109】(18) DMLの実行の前にログ情報か
らホスト変数値を復元する(7B43)。この場合、ロ
グ情報(8F07)内のホスト変数値情報からホスト変
数i_idの値を101300に復元する。 (19) DMLの実行直前のログの取得位置情報によ
り該当するDMLを実行する。loc _idが7であること
により、既に7B14において分岐を行っている。よっ
て、ここでは、SQL4(7B41〜7B44)が実行
される。
【0110】(20) DMLの実行直前のログ情報を
入力する(7B09〜7B10)。ログ情報(8F0
8)を入力する。ログ情報は、loc _id=8なので、ロ
グ対象種別情報は、DMLの実行直前のログであり、時
刻情報this_time=1110、ログ取得位置情報はloc
_id=8である。この後、7B82,7B83,7B0
6を実行し、ステップ30610に移行する。
【0111】以後、終了条件が満たされるまで同様にル
ープは繰り返される。以上は、プロセス1の移植ログを
使用したAP2の疑似になったが、同様にプロセス2の
移植ログを使用し、AP1とAP2を同時に実行させる
こともできる。 以上のステップ306の処理は、ソー
スリストをコンパイルした後に実行する。図14、図1
5のAPをAP1とし、プロセスIDは、“1”とす
る。その結果がログとして、図9のように出力される。
その出力結果は、 ・7B18のログ取得関数を実行した時のログが8D0
1のように出力される。 ・7B23のログ取得関数を実行した時のログが8D0
2のように出力される。 ・7B29のログ取得関数を実行した時のログが8D0
3のように出力される。 ・7B33のログ取得関数を実行した時のログが8D0
4のように出力される。 ・7B37のログ取得関数を実行した時のログが8D0
5のように出力される。 ・7B39のログ取得関数を実行した時のログが8D0
6のように出力される。 ・7B44のログ取得関数を実行した時のログが8D0
7のように出力される。 ・7B49のログ取得関数を実行した時のログが8D0
8のように出力される。 以下、同様であるので、省略する。
【0112】疑似APの出力したこのログは若干時刻情
報がずれる場合があるものの、実APの出力したログ
(図13)と時刻情報に関して評価上略同様の実行結果
となる(但し、ホスト変数値の出力部分を除く)。 [第3の実施例]次に第3の実施例として、実環境での
DMLの実行時間、非DMLの実行時間、評価環境での
DMLの実行時間を用いて評価環境でも疑似APの待機
時間(wait)を調整する処理を説明する。
【0113】図17は、本発明の第3の実施例の構成を
示す。同図は、図3に示す疑似AP実行ログ取得部50
の構成を示す。疑似AP実行ログ取得部50は、DML
実行直前ログ入力部51、差時間計算部52、待機部5
3、DML実行部54、DML実行直後ログ情報入力部
55から構成される。
【0114】DML実行直前ログ入力部51は、DML
の実行直前のログ情報301を差時間計算部52に入力
する。差時間計算部52は、DML実行直前ログ入力部
51から入力されたDMLの実行直前のログ情報301
とDMLの実行直線の時刻302の差を求め、差時間3
03として待機部53に入力する。
【0115】待機部53は、差時間303が差時間計算
部52から入力されると、当該差時間303の時間だけ
待機する。待機する時間が経過したら、DML実行部5
4に起動をかける。DML実行部54は、待機時間が経
過したら、DML実行直前のログの取得位置情報により
該当するDMLを実行する。
【0116】DML実行直後ログ情報入力部55は、D
MLの実行直後のログ情報を入力する。図18は、本発
明の第3の実施例のAPを疑似するフローチャートであ
る。 ステップ401) DML実行直前のログ情報(時刻情
報、位置情報、ログ対象種別情報)を入力する。
【0117】ステップ402) もし、ここで、APを
疑似する処理を終了するのであれば、終了処理を行う。
続行する場合には、ステップ403に移行する。 ステップ403) ログ情報からホスト変数値を再現す
る。 ステップ404) 実環境でのDMLの実行時間をT1
D、非DMLの実行時間をT1w、評価環境でのDML
の実行時間をT2Dとし、 T2w=T2D×T1w/T1D とするとき、T2w時間だけwait(待機)する。
【0118】ステップ405) ログの取得位置情報に
より該当するDMLを実行する。 ステップ406) DML実行直後のログ情報を入力す
る。 ステップ407) 終了条件が満たされるまで、上記の
処理を繰り返す。 以下の説明で使用するソースプログラムは、図22、図
23に示す。
【0119】まず、事前にT1w(実環境での非DML
の実行時間)、T1D(実環境でのDMLの実行時
間)、T2D(評価環境でのDMLの実行時間)を求め
る必要がある。T1D(実環境でのDMLの実行時間)
については、前述の第1の実施例で取得した、図27に
示したログの情報を用いて算出する。 T1D=(300−0)+(900−350)+(10
10−910=1000 T1wは、疑似APの実行時にログから算出された値を
用いる。
【0120】また、T2Dについても前述の第1の実施
例で取得した図6に示したログ情報を用いて算出するも
のとする。 T2D=(280−0)+(870−330)+(97
0−880)+(1080−1020)=970 よって、 T2w=T2D×T1w/T1D=(970/100
0)×T1w=0.97×T1w 例えば、図19に示す疑似APのソースプログラムの例
では、前述の第1の実施例において、ステップ3063
の7A16は7C16)では、待機時間(wait)
は、0×0.97=0となる。また、7A25について
は、7C26で50×0.97=48.5となる。ま
た、7A33については、7C36で10×0.97=
9.7となる。7A39については、7C42のように
なり、50×0.97=48.5になる。
【0121】この例では、DMLと非DMLの比の対応
付けの単位は1AP毎としたが、この単位は1DML単
位、1プロセス単位、1AP単位、複数APをまとめた
システム単位等であってもよい。その場合には、比をと
った単位をそのまま対応する単位のwait(待ち時
間)の変更に使用するだけで、原理的には同じであるの
で、説明は省略する(DML単位に比をとれば、各wa
it文の比も異なるということ)。
【0122】なお、上記の実施例では、1度の測定の結
果のみを用いたが、一般には複数回の実行の後、統計的
な処理(平均をとる、得意点を外す、動作が暗転してか
ら値を採る等)を行った結果を用いる。なお、上記の第
3の実施例で使用されている値(T1D,T1w,T2
D)は、任意に算出/測定した値を用いてもよい。
【0123】なお、本発明は、上記の実施例に限定され
ることなく、特許請求の範囲内で種々変更・応用が可能
である。
【0124】
【発明の効果】上述のように本発明のデータベースシス
テムの性能チューニング方法及びデータベースシステム
の性能チューニング装置によれば、実APを評価環境に
移してチューニングを行う必要がある場合に、業務知識
等の移植に関する知識を必要とせずに、容易に短時間で
評価及びチューニングを行うことが可能である。
【0125】また、本発明によれば、スループットのよ
り正確な(近似率が高い)評価及びチューニングが可能
となる。また、本発明によれば、DML間の応答時間の
比や、資源のロック状況、“NOT FOUND ”処理の疑似的
な再現を可能にし、スループットの近似度が向上する。
【0126】また、本発明によれば、実環境と評価環境
において、CPUとI/Oの性能比が大きく異なって
も、実環境と同様のAP動作を再現することが可能にな
り、スループットの近似度が向上する。また、スループ
ットの再現が可能となり、スループットのより正確な
(近似率が高い)評価及びチューニングを可能にする。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の原理を説明するためのフローチャート
である。
【図3】本発明の第1の実施例のシステム構成図であ
る。
【図4】本発明の第1の実施例の評価・チューニングの
フローチャートである。
【図5】本発明の第1の実施例の移植ログの例を示す図
である。
【図6】本発明の第1の実施例の疑似APのソースプロ
グラム例(その1)である。
【図7】本発明の第1の実施例の疑似APのソースプロ
グラム例(その2)である。
【図8】本発明の第1の実施例のAPを疑似する処理の
フローチャートである。
【図9】本発明の第1の実施例の疑似APのログ情報取
得操作(getlog) によって収集されたログの例を示す図
である。
【図10】本発明の第2の実施例の実環境のAPのソー
スプログラム例(その1)である。
【図11】本発明の第2の実施例の実環境のAPのソー
スプログラム例(その2)である。
【図12】本発明の第2の実施例のログ情報取得操作
(getlog) によって収集されたログの例(ホスト変数値
の保存あり)を示す図である。
【図13】本発明の第2の実施例の移植ログの例(ホス
ト変数値の保存あり)を示す図である。
【図14】本発明の第2の実施例の疑似APのソースプ
ログラム例(その1)(ホスト変数値の再現あり)であ
る。
【図15】本発明の第2の実施例の疑似APのソースプ
ログラム例(その2)(ホスト変数値の再現あり)であ
る。
【図16】本発明の第2の実施例のAPを疑似する処理
のフローチャート(ホスト変数値の復元あり)である。
【図17】本発明の第3の実施例の構成図である。
【図18】本発明の第3の実施例のAPを疑似するフロ
ーチャート(ホスト変数値の復元あり。WAIT時間の
調整あり)である。
【図19】本発明の第3の実施例のAPのソースプログ
ラム例(ホスト変数値の再現あり。WAIT時間調整あ
り)(その1)である。
【図20】本発明の第3の実施例のAPのソースプログ
ラム例(ホスト変数値の再現あり。WAIT時間調整あ
り)(その2)である。
【図21】従来の第1の評価・チューニングのフローチ
ャート(実環境と評価環境が同一環境の場合)である。
【図22】従来の第1の方法を説明するための実環境の
APのソースプログラム例(その1)である。
【図23】従来の第1の方法を説明するための実環境の
APのソースプログラム例(その2)である。
【図24】従来の第1の方法を説明するための実環境A
Pのソースプログラム例(ログ情報取得関数を埋め込ん
だ後)(その1)である。
【図25】従来の第1の方法を説明するための実環境A
Pのソースプログラム例(ログ情報取得関数を埋め込ん
だ後)(その2)である。
【図26】実APの実行動作を説明する例である。
【図27】ログ情報取得操作(getlog) によって収集さ
れたログの例である。
【図28】従来の第2の評価・チューニングのフローチ
ャート(実環境と評価環境が異なる環境の場合)であ
る。
【図29】従来の第2の方法の移植APのソースプログ
ラム例(第1パターン)(その1)である。
【図30】従来の第2の方法の移植APのソースプログ
ラム例(第1パターン)(その2)である。
【図31】従来の第2の方法の移植APのソースプログ
ラム例(第2パターン)(その1)である。
【図32】従来の第2の方法の移植APのソースプログ
ラム例(第2パターン)(その2)である。
【図33】従来の第2の方法の移植APのソースプログ
ラム例(第3パターン)である。
【符号の説明】
10 ログ埋込手段、第1のログ取得処理埋込部 20 第1のログ取得手段、実AP実行ログ取得部 21 ログ保持部 27 移植ログ作成部 30 疑似AP生成手段、疑似AP作成部 40 ログ取得関数埋込手段、第2のログ取得処理埋込
部 50 第2のログ取得手段、疑似AP実行ログ取得部 51 DML実行直前ログ入力部 52 差時間計算部 53 待機部 54 DML実行部 55 DML実行直後ログ情報入力部 60 評価手段、DML評価部 70 判定手段、判定部 80 チューニング部 100 実AP 105 実行ログA 110 移植ログ 200 疑似AP 205 実行ログB 301 ログ情報 302 DML実行直前の時刻 303 差時間 304 DMLのID 305 DML実行直後の時刻

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 データベースシステムの性能の評価及び
    チューニングを行うデータベースシステムの性能チュー
    ニング装置において、 実アプリケーションプログラム(以下APと記す)内の
    データベース(以下、DBと記す)操作の実行順序と該
    操作のタイミングをログ化した制御情報を、該実APの
    代わりに使用して、該APの疑似化を行う疑似手段と、 前記疑似手段により疑似化されたAPを実行した結果を
    評価し、評価結果に基づいて性能改善を行う改善手段と
    を有することを特徴とするデータベースシステムの性能
    チューニング装置。
  2. 【請求項2】 前記疑似手段は、 前記実APにログ化された前記制御情報を埋め込むログ
    埋込手段と、 前記実APを実行し、第1の実ログを取得し、該第1の
    実ログを評価環境に移植し、該第1の実ログを移植ログ
    とする第1のログ取得手段と、 前記実APのデータベース操作情報に基づいて疑似AP
    を作成する疑似AP生成手段と、 前記疑似AP生成手段で生成された前記疑似APにログ
    取得関数を埋め込むログ取得関数埋込手段と、 前記移植ログを入力として前記疑似APを実行し、第2
    の実行ログを取得する第2のログ取得手段とを有する請
    求項1記載のデータベースシステムの性能チューニング
    装置。
  3. 【請求項3】 前記改善手段は、 前記疑似AP内のデータベース操作情報の評価を行う評
    価手段と、 前記評価手段による評価結果に基づいて、性能改善が必
    要であるか否かを判定し、必要である場合には、データ
    ベース定義や前記データベース操作情報の変更を行い、
    再び、前記第2のログ取得手段、前記評価手段を繰り返
    す手段とを有する請求項1記載のデータベースシステム
    の性能チューニング装置。
  4. 【請求項4】 前記評価手段は、 前記第2の実行ログの統計処理を行う統計手段を含む請
    求項3記載のデータベースシステムの性能チューニング
    装置。
  5. 【請求項5】 前記第2のログ取得手段は、 前記データベース操作情報の実行直前のログ情報を入力
    する第1のログ情報入力手段と、 前記データベース操作情報の実行直後のログの時刻情報
    と前記データベース操作情報の実行直前のログの時刻情
    報の差の時間だけ待機する待機手段と、 前記データベース操作情報の直前のログの取得位置情報
    により該当するデータベース操作情報を実行するデータ
    ベース操作情報実行手段と、 前記データベース操作情報の直後のログ情報を入力する
    第2のログ情報入力手段と、 前記第1のログ情報入力手段、前記待機手段、前記デー
    タベース操作情報実行手段及び前記第2のログ情報入力
    手段とを繰り返す手段とを有し、 データベースシステムのデータベース問い合わせを疑似
    する請求項2記載のデータベースシステムの性能チュー
    ニング装置。
  6. 【請求項6】 前記データベース操作情報の実行直前の
    ログ情報を入力する第1のログ情報入力手段と、 前記データベース操作情報の実行直後のログの時刻情報
    と前記データベース操作情報の実行直前のログの時刻情
    報の差の時間だけ待機する待機手段と、 前記データベース操作情報の直前のログの取得位置情報
    により該当するデータベース操作情報を実行するデータ
    ベース操作情報実行手段と、 前記データベース操作情報直後のログ情報を入力する第
    2のログ情報入力手段と、 前記第1のログ情報入力手段、前記待機手段、前記デー
    タベース操作情報実行手段及び前記第2のログ情報入力
    手段とを繰り返す手段とを有し、 データベースシステムのデータベース問い合わせを疑似
    するAP疑似実行手段を更に有する請求項2記載のデー
    タベースシステムの性能チューニング装置。
  7. 【請求項7】 前記第1のログ取得手段は、 前記実APのデータベース操作の実行直前に入力される
    ホスト変数値をログとして保持するログ保持手段を有す
    る請求項2記載のデータベースシステム性能チューニン
    グ装置。
  8. 【請求項8】 前記データベース操作情報実行手段は、 前記データベースシステムのデータベース問い合わせ処
    理のアクセスを疑似する場合に、前記データベース操作
    情報の実行前に前記ログ情報からAPを記述する言語内
    の変数であるホスト変数値を復元するホスト変数値復元
    手段を含む請求項5又は6記載のデータベースシステム
    の性能チューニング装置。
  9. 【請求項9】 前記待機手段は、 前記データベースシステムのデータベース問い合わせ処
    理のスループットを疑似するために、実環境での前記デ
    ータベース操作情報の実行時間をT1D、非データベー
    ス操作情報の実行時間をT1W、評価環境での前記デー
    タベース操作情報の実行時間をT2Dとするとき、T2
    W=T2D×T1W/T1Dとするとき、T2Wを待機
    時間とする請求項5又は6記載のデータベースシステム
    の性能チューニング装置。
  10. 【請求項10】 データベースシステムの性能の評価及
    びチューニングを行うデータベースシステムの性能チュ
    ーニング方法において、 実AP内のデータベース(以下、DBと記す)操作の実
    行順序と該操作のタイミングをログ化した制御情報を、
    該実APの代わりに使用して、該APの疑似化を行い、 疑似化されたAPを実行し、 前記APを実行した結果を評価し、 評価結果に基づいて性能改善を行うことを特徴とするデ
    ータベースシステムの性能チューニング方法。
  11. 【請求項11】 前記実APを疑似化する際に、 前記実APにログ化された前記制御情報を埋め込み、 前記実APを実行し、第1の実ログを取得し、 前記第1の実ログを評価環境に移植し、該第1の実ログ
    を移植ログとし、 前記実APのデータベース操作情報に基づいて疑似AP
    を作成し、 生成された前記疑似APにログ取得関数を埋め込み、 前記移植ログを入力として前記疑似APを実行し、 第2の実行ログを取得する請求項10記載のデータベー
    スシステムの性能チューニング方法。
  12. 【請求項12】 前記性能改善を行う際に、 前記疑似AP内のデータベース操作情報の評価を行い、 評価結果に基づいて、性能改善が必要であるか否かを判
    定し、 必要である場合には、データベース定義や前記データベ
    ース操作情報の変更を行い、再び、前記APを実行して
    前記第2のログを取得し、 前記APを実行した結果を評価する処理を繰り返す請求
    項10記載のデータベースシステムの性能チューニング
    方法。
  13. 【請求項13】 前記AP内のデータベース操作情報の
    評価を行う際に、 前記第2の実行ログの統計処理を行う請求項12記載の
    データベースシステムの性能チューニング方法。
  14. 【請求項14】 前記第2の実行ログを取得する際に、 前記データベース操作情報の実行直前のログ情報を入力
    し、 前記データベース操作情報の実行直後のログの時刻情報
    と前記データベース操作情報の実行直前のログの時刻情
    報の差の時間だけ待機し、 前記データベース操作情報直前のログの取得位置情報に
    より該当するデータベース操作情報を実行し、 前記データベース操作情報直後のログ情報を入力する処
    理を繰り返して、データベースシステムのデータベース
    問い合わせを疑似する請求項11記載のデータベースシ
    ステムの性能チューニング方法。
  15. 【請求項15】 前記第1のログを取得する際に、 前記実APのデータベース操作の実行直前に入力される
    ホスト変数値をログとして保持する請求項11のデータ
    ベースシステム性能チューニング方法。
  16. 【請求項16】 前記データベース操作情報を実行する
    際に、 前記データベースシステムのデータベース問い合わせ処
    理のアクセスを疑似する場合に、前記データベース操作
    情報の実行前に前記ログ情報から、APを記述する言語
    内の変数であるホスト変数値を復元する請求項14記載
    のデータベースシステムの性能チューニング方法。
  17. 【請求項17】 前記時刻情報の差の時間を待機する際
    に、 前記データベースシステムのデータベース問い合わせ処
    理のスループットを疑似するために、実環境での前記デ
    ータベース操作情報の実行時間をT1D、非データベー
    ス操作情報の実行時間をT1W、評価環境での前記デー
    タベース操作情報の実行時間をT2Dとするとき、T2
    W=T2D×T1W/T1Dとするとき、T2Wを待機
    時間とする請求項14記載のデータベースシステムの性
    能チューニング方法。
JP7045916A 1995-03-06 1995-03-06 データベースシステムの性能チューニング装置及びデータベースシステムの性能チューニング方法 Pending JPH08241327A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7045916A JPH08241327A (ja) 1995-03-06 1995-03-06 データベースシステムの性能チューニング装置及びデータベースシステムの性能チューニング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7045916A JPH08241327A (ja) 1995-03-06 1995-03-06 データベースシステムの性能チューニング装置及びデータベースシステムの性能チューニング方法

Publications (1)

Publication Number Publication Date
JPH08241327A true JPH08241327A (ja) 1996-09-17

Family

ID=12732580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7045916A Pending JPH08241327A (ja) 1995-03-06 1995-03-06 データベースシステムの性能チューニング装置及びデータベースシステムの性能チューニング方法

Country Status (1)

Country Link
JP (1) JPH08241327A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249531A (ja) * 2006-03-15 2007-09-27 Hitachi Software Eng Co Ltd テーブル構造決定及び通知システム
JP2012512455A (ja) * 2008-12-15 2012-05-31 ヤニックロ・テクノロジー・リミテッド・ライアビリティ・カンパニー 自動的なデータストアアーキテクチャの検出
US8479168B2 (en) 2009-03-06 2013-07-02 Fujitsu Limited Computer-readable recording medium storing verification support program, information processor, and verification support method
JP2022120014A (ja) * 2013-03-15 2022-08-17 ベウラワークス,エルエルシー. データ取り込みおよび該データへのユーザアクセス促進システムおよび方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249531A (ja) * 2006-03-15 2007-09-27 Hitachi Software Eng Co Ltd テーブル構造決定及び通知システム
JP2012512455A (ja) * 2008-12-15 2012-05-31 ヤニックロ・テクノロジー・リミテッド・ライアビリティ・カンパニー 自動的なデータストアアーキテクチャの検出
US8479168B2 (en) 2009-03-06 2013-07-02 Fujitsu Limited Computer-readable recording medium storing verification support program, information processor, and verification support method
JP2022120014A (ja) * 2013-03-15 2022-08-17 ベウラワークス,エルエルシー. データ取り込みおよび該データへのユーザアクセス促進システムおよび方法

Similar Documents

Publication Publication Date Title
JP6859449B2 (ja) テストケースを利用してテストを遂行する方法および装置
US9372671B2 (en) Modeling and code generation for SQL-based data transformations
US7890457B2 (en) Transactionally consistent database workload replay
US7373636B2 (en) Automated software testing system and method
US7194475B2 (en) Method, system, and program for performing an impact analysis of program statements in at least one source code file
US7890458B2 (en) Capturing database workload while preserving original transactional and concurrency characteristics for replay
US8010578B2 (en) Method of refactoring a running database system
US20080097995A1 (en) Database workload capture and replay architecture
US20080098003A1 (en) Database workload replay remapping infrastructure
US20110276550A1 (en) Fine grain synchronization for database replay
US20110295801A1 (en) Filtering workload for database replay
JP2002533805A (ja) データベース内にpl/sql格納されたコードオブジェクトを実行する方法及び装置
EP1952241B1 (en) Database workload capture and replay architecture
CN113434430A (zh) 一种sql查询语句性能检测方法和装置
CN118535887B (zh) 一种大语言模型高效微调测评方法和系统
Freitas et al. A methodology for refactoring ORM-based monolithic web applications into microservices
CN118779247A (zh) 应用程序测试方法、设备、存储介质和程序产品
JPH08241327A (ja) データベースシステムの性能チューニング装置及びデータベースシステムの性能チューニング方法
CN109766125B (zh) 批次间追平冲突的识别方法及装置
EP3989059B1 (en) Interactive code optimizer
CN114826768A (zh) 应用大数据和ai技术的云端漏洞处理方法及ai分析系统
US20050268283A1 (en) Audited builds based upon separate class dependency records
KR102923336B1 (ko) 소프트웨어 회귀 테스트를 위한 최적의 테스트 케이스 선정 방법 및 장치
Ignaim et al. A systematic reuse-based approach for customized cloned variants
Bianchi et al. Db2une: Tuning ibm db2 with deep learning