(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-06-13
(45)【発行日】2023-06-21
(54)【発明の名称】情報処理システム、情報処理装置および情報処理方法、並びに、プログラム
(51)【国際特許分類】
G06F 11/36 20060101AFI20230614BHJP
G06F 16/185 20190101ALI20230614BHJP
【FI】
G06F11/36 188
G06F16/185
(21)【出願番号】P 2022012033
(22)【出願日】2022-01-28
【審査請求日】2022-11-11
【新規性喪失の例外の表示】特許法第30条第2項適用 ウェブサイトの掲載日:2021年11月17日 ウェブサイトのアドレス:https://www.insight-tec.com/news/press/20211117_idt/ https://prtimes.jp/main/html/rd/p/000000005.000087136.html 公開者:株式会社インサイトテクノロジー ウェブサイトの掲載日:2021年11月19日 ウェブサイトのアドレス:https://www.db-tech-showcase.com/2021/ https://www.db-tech-showcase.com/2021/schedule/ 公開者:松尾 拓真
【早期審査対象出願】
(73)【特許権者】
【識別番号】500465189
【氏名又は名称】株式会社インサイトテクノロジー
(74)【代理人】
【識別番号】110000121
【氏名又は名称】IAT弁理士法人
(72)【発明者】
【氏名】石川 雅也
【審査官】加藤 優一
(56)【参考文献】
【文献】再公表特許第2008/056438(JP,A1)
【文献】特開2013-257823(JP,A)
【文献】特開2010-033543(JP,A)
【文献】特開2003-140706(JP,A)
【文献】特開2021-140430(JP,A)
【文献】特開2019-211805(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 11/28 -11/36
G06F 16/00 -16/958
(57)【特許請求の範囲】
【請求項1】
現行データベースと同一環境の第1のデータベース、移行先となるデータベースと同一環境の第2のデータベース、および、情報処理装置を含んで構成される情報処理システムにおいて、
前記情報処理装置は、
セッションごとのテスト用SQLを、前記テスト用SQLの実行時間の計測のためのコマンドと共に、前記第1のデータベースに発行する第1のSQL発行処理手段と、
前記セッションごとの前記テスト用SQLを、前記テスト用SQLの実行時間の計測のためのコマンドと共に、前記第2のデータベースに発行する第2のSQL発行処理手段と、
前記第1のSQL発行処理手段、および、前記第2のSQL発行処理手段による
前記セッションごとの前記
テスト用SQLの発行を制御するSQL送出制御手段と、
前記第1のデータベースからの第1の応答を取得する第1の応答取得処理手段と、
前記第2のデータベースからの第2の応答を取得する第2の応答取得処理手段と、
前記第1の応答取得処理手段および前記第2の応答取得処理手段が、正常な前記第1の応答および正常な前記第2の応答を取得したか否かを判断する正常応答有無判断手段と、
前記正常応答有無判断手段により、正常な前記第1の応答および前記第2の応答が取得されたと判断された場合、前記第1の応答および前記第2の応答を比較し、同一であるか否かを判断する応答結果比較手段と、
前記応答結果比較手段により、前記第1の応答および前記第2の応答が同一であると判断された場合、それぞれの実行時間を比較する応答時間比較手段と
、
前記正常応答有無判断手段により、正常な前記第1の応答および前記第2の応答の少なくともいずれか一方が取得されなかったと判断された場合、前記応答結果比較手段により、前記第1の応答および前記第2の応答が同一ではないと判断された場合、または、前記応答時間比較手段により、前記第2の応答が前記第1の応答より実行時間が長いと判断された場合、ユーザの操作入力に基づいて、前記第2の応答に対応する前記テスト用SQLの変換処理を行うSQL変換処理手段と
を備え、
前記SQL送出制御手段は、前記SQL変換処理手段により変換されて生成された変換後テスト用SQLを含むセッションの、前記第2のSQL発行処理手段による発行、および、前記変換後テスト用SQLに対応する変換前の前記テスト用SQLを含むセッションの前記第1のSQL発行処理手段による発行を、変換前の前記セッションごとの前記テスト用SQLの、前記第1のSQL発行処理手段、および、前記第2のSQL発行処理手段による発行に割り込ませて制御する
ことを特徴とする情報処理システム。
【請求項2】
セッションごとのテスト用SQLを、現行データベースと同一環境の第1のデータベースに、SQL実行時間の計測のためのコマンドと共に発行する第1のSQL発行処理手段と、
前記セッションごとの前記テスト用SQLを、移行先となるデータベースと同一環境の第2のデータベースに、SQL実行時間の計測のためのコマンドと共に発行する第2のSQL発行処理手段と、
前記第1のSQL発行処理手段、および、前記第2のSQL発行処理手段による
前記セッションごとの前記
テスト用SQLの発行を制御するSQL送出制御手段と、
前記第1のデータベースからの第1の応答を取得する第1の応答取得処理手段と、
前記第2のデータベースからの第2の応答を取得する第2の応答取得処理手段と、
前記第1の応答取得処理手段および前記第2の応答取得処理手段が、正常な前記第1の応答および正常な前記第2の応答を取得したか否かを判断する正常応答有無判断手段と、
前記正常応答有無判断手段により、前記第1の応答および前記第2の応答が取得されたと判断された場合、前記第1の応答および前記第2の応答を比較し、同一であるか否かを判断する応答結果比較手段と、
前記応答結果比較手段により、前記第1の応答および前記第2の応答が同一であると判断された場合、それぞれの実行時間を比較する応答時間比較手段と
、
前記正常応答有無判断手段により、正常な前記第1の応答および前記第2の応答の少なくともいずれか一方が取得されなかったと判断された場合、前記応答結果比較手段により、前記第1の応答および前記第2の応答が同一ではないと判断された場合、または、前記応答時間比較手段により、前記第2の応答が前記第1の応答より実行時間が長いと判断された場合、ユーザの操作入力に基づいて、前記第2の応答に対応する前記テスト用SQLの変換処理を行うSQL変換処理手段と
を備え、
前記SQL送出制御手段は、前記SQL変換処理手段により変換されて生成された変換後テスト用SQLを含むセッションの、前記第2のSQL発行処理手段による発行、および、前記変換後テスト用SQLに対応する変換前の前記テスト用SQLを含むセッションの前記第1のSQL発行処理手段による発行を、変換前の前記セッションごとの前記テスト用SQLの、前記第1のSQL発行処理手段、および、前記第2のSQL発行処理手段による発行に割り込ませて制御する
ことを特徴とする情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記現行データベースに対して実際に実行されたSQLを取得するSQL取得処理手段をさらに備え、
前記第1のSQL発行処理手段、および、前記第2のSQL発行処理手段は、前記SQL取得処理手段により取得された、前記現行データベースに対して実際に実行されたSQLを、前記テスト用SQLとして発行する
ことを特徴とする情報処理装置。
【請求項4】
請求項3に記載の情報処理装置であって、
前記SQL取得処理手段は、前記現行データベースに対して実際に実行されたSQLのセッション情報をさらに取得し、
前記第1のSQL発行処理手段、および、前記第2のSQL発行処理手段は、前記テスト用SQLを、前記セッション情報に基づいて、セッションごとに発行する
ことを特徴とする情報処理装置。
【請求項5】
請求項2~
4のいずれかに記載の情報処理装置であって、
前記応答時間比較手段により、前記第2の応答における実行速度が前記第1の応答における実行速度よりも遅いと判断された場合、対応する前記SQLの実行計画の取得を制御する実行計画取得制御手段をさらに備える
ことを特徴とする情報処理装置。
【請求項6】
請求項2~
5のいずれかに記載の情報処理装置であって、
前記SQL送出制御手段は、前記第1のSQL発行処理手段、および、前記第2のSQL発行処理手段による前記SQLの発行を、それぞれ、同時に、または、ほぼ同時に行われるように制御する
ことを特徴とする情報処理装置。
【請求項7】
データベース移行テストを実行する情報処理装置における情報処理方法であって、
セッションごとのテスト用SQLを、現行データベースと同一環境の第1のデータベースに、SQL実行時間の計測のためのコマンドと共に発行する第1のSQL発行処理ステップと、
前記セッションごとの前記テスト用SQLを、移行先となるデータベースと同一環境の第2のデータベースに、SQL実行時間の計測のためのコマンドと共に発行する第2のSQL発行処理ステップと、
前記第1のデータベースからの第1の応答を取得する第1の応答取得ステップと、
前記第2のデータベースからの第2の応答を取得する第2の応答取得ステップと、
前記第1の応答取得ステップおよび前記第2の応答取得ステップにおいて、正常な前記第1の応答および正常な前記第2の応答が取得されたか否かを判断する正常応答有無判断ステップと、
前記正常応答有無判断ステップの処理により、正常な前記第1の応答および正常な前記第2の応答が取得されたと判断された場合、前記第1の応答および前記第2の応答を比較し、同一であるか否かを判断する応答結果比較ステップと、
前記応答結果比較ステップの処理により、前記第1の応答および前記第2の応答が同一であると判断された場合、それぞれの実行時間を比較する応答時間比較ステップと
、
前記正常応答有無判断ステップの処理により、正常な前記第1の応答および前記第2の応答の少なくともいずれか一方が取得されなかったと判断された場合、前記応答結果比較ステップの処理により、前記第1の応答および前記第2の応答が同一ではないと判断された場合、または、前記応答時間比較ステップの処理により、前記第2の応答が前記第1の応答より実行時間が長いと判断された場合、ユーザの操作入力に基づいて、前記第2の応答に対応する前記テスト用SQLの変換処理を行うSQL変換処理ステップと
を含み、
前記SQL変換処理ステップの処理により変換されて生成された変換後テスト用SQLを含むセッションの、前記第2のSQL発行処理ステップの処理による発行、および、前記変換後テスト用SQLに対応する変換前の前記テスト用SQLを含むセッションの前記第1のSQL発行処理ステップの処理による発行は、変換前の前記セッションごとの前記テスト用SQLの、前記第1のSQL発行処理ステップ、および、前記第2のSQL発行処理ステップによる発行に割り込ませて発行させる
ことを特徴とする情報処理方法。
【請求項8】
データベース移行テスト装置を構成するコンピュータに、
セッションごとのテスト用SQLを、現行データベースと同一環境の第1のデータベースに、SQL実行時間の計測のためのコマンドと共に発行する第1のSQL発行処理ステップと、
前記セッションごとの前記テスト用SQLを、移行先となるデータベースと同一環境の第2のデータベースに、SQL実行時間の計測のためのコマンドと共に発行する第2のSQL発行処理ステップと、
前記第1のデータベースからの第1の応答を取得する第1の応答取得ステップと、
前記第2のデータベースからの第2の応答を取得する第2の応答取得ステップと、
前記第1の応答取得ステップおよび前記第2の応答取得ステップにおいて、正常な前記第1の応答および正常な前記第2の応答が取得されたか否かを判断する正常応答有無判断ステップと、
前記正常応答有無判断ステップの処理により、正常な前記第1の応答および正常な前記第2の応答が取得されたと判断された場合、前記第1の応答および前記第2の応答を比較し、同一であるか否かを判断する応答結果比較ステップと、
前記応答結果比較ステップの処理により、前記第1の応答および前記第2の応答が同一であると判断された場合、それぞれの実行時間を比較する応答時間比較ステップと
、
前記正常応答有無判断ステップの処理により、正常な前記第1の応答および前記第2の応答の少なくともいずれか一方が取得されなかったと判断された場合、前記応答結果比較ステップの処理により、前記第1の応答および前記第2の応答が同一ではないと判断された場合、または、前記応答時間比較ステップの処理により、前記第2の応答が前記第1の応答より実行時間が長いと判断された場合、ユーザの操作入力に基づいて、前記第2の応答に対応する前記テスト用SQLの変換処理を行うSQL変換処理ステップと
を含み、
前記SQL変換処理ステップの処理により変換されて生成された変換後テスト用SQLを含むセッションの、前記第2のSQL発行処理ステップの処理による発行、および、前記変換後テスト用SQLに対応する変換前の前記テスト用SQLを含むセッションの前記第1のSQL発行処理ステップの処理による発行は、変換前の前記セッションごとの前記テスト用SQLの、前記第1のSQL発行処理ステップ、および、前記第2のSQL発行処理ステップによる発行に割り込ませて発行させる
ことを特徴とする処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置および情報処理方法、並びに、プログラムに関する。
【背景技術】
【0002】
近年、取り扱うデータ量の増加や、求められる処理速度の高速化に伴い、現在使用中のデータベースシステムから他のデータベースシステムへ移行する必要が発生することが増えている。データベースシステムの移行において、例えば、データベース移行処理端末が、GUIによりデータベース移行操作を受け付け、GUIにより指示された移行操作を、SQL文に変換、または、ストアドプロシージャの選択を行い、結果を表示装置等に出力することにより、視覚的にわかりやすく、会話的にデータベースファイルの移行を行うことができる技術がある(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
データベースシステムに使用可能なSQLは、データベースシステムによって異なる。上述した特許文献1に記載の技術は、データベースシステム間のデータファイルの移行を容易化するために、GUI技術とSQL文自動変換処理を連携させることによりデータベースシステムの移行を、熟練者でなくとも安全かつ速やかに行うことを可能とすることを目的としている。
【0005】
しかしながら、データベースシステムの移行においては、SQL文自動変換のみで対応しきれないことも多い。例えば、SQLによって、現在使用中のデータベースシステムにおける応答と、新たに移行するデータベースシステムにおける応答とが異なる場合や、それらの応答内容が一致していても、応答速度が遅くなってしまうような場合があるため、SQLごとに、移行先のデータベースの環境に合わせて修正が必要となる場合がある。また、データベース移行テスト自体も、高速に実行することが求められている。
【0006】
そこで、本発明は、前記課題を解決すること、すなわち、データベース移行テストにおいて、現在使用しているSQLごとに、移行先データベースシステムの環境でも正しく動作するかを確認することを可能とした、情報処理システム、情報処理装置および情報処理方法、並びに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の情報処理システムの一側面は、現行データベースと同一環境の第1のデータベース、移行先となるデータベースと同一環境の第2のデータベース、および、情報処理装置を含んで構成される情報処理システムであって、情報処理装置が、テスト用SQLを、テスト用SQL実行時間の計測のためのコマンドと共に、第1のデータベースに発行する第1のSQL発行処理手段と、テスト用SQLを、テスト用SQL実行時間の計測のためのコマンドと共に、第2のデータベースに発行する第2のSQL発行処理手段と、第1のSQL発行処理手段、および、第2のSQL発行処理手段によるSQLの発行を制御するSQL送出制御手段と、第1のデータベースからの第1の応答を取得する第1の応答取得処理手段と、第2のデータベースからの第2の応答を取得する第2の応答取得処理手段と、第1の応答取得処理手段および第2の応答取得処理手段が、正常な第1の応答および正常な第2の応答を取得したか否かを判断する正常応答有無判断手段と、正常応答有無判断手段により、正常な第1の応答および第2の応答が取得されたと判断された場合、第1の応答および第2の応答を比較し、同一であるか否かを判断する応答結果比較手段と、応答結果比較手段により、第1の応答および第2の応答が同一であると判断された場合、それぞれの実行時間を比較する応答時間比較手段とを備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、データベース移行テストにおいて、SQLが移行先データベースシステムの環境でも正しく動作するかを確認することができる。
【図面の簡単な説明】
【0009】
【
図1】データベース移行テストシステム1について説明するための図である。
【
図2】データベース移行テスト装置11の機能構成を示す機能ブロック図である。
【
図3】セッションについて説明するための図である。
【
図4】応答比較処理部27の機能構成を示す機能ブロック図である。
【
図5】テスト結果の表示処理について説明するための図である。
【
図6】テスト結果の表示処理について説明するための図である。
【
図7】データベース移行テスト1について説明するためのフローチャートである。
【
図8】応答結果比較処理について説明するためのフローチャートである。
【
図9】データベース移行テスト2について説明するためのフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の一実施の形態の情報処理システム、情報処理装置および情報処理方法、並びに、プログラムについて、図を参照しながら説明する。
【0011】
図1を参照して、本発明の一実施例であるデータベース移行テストシステム1について説明する。
【0012】
データベース移行テストシステム1は、データベース移行テスト装置11、現行環境テスト用データベース12、および、移行先環境テスト用データベース13を含んで構成されている。
【0013】
データベース移行テスト装置11は、データベース移行テストのために必要なSQLを取得し、現行環境テスト用データベース12と移行先環境テスト用データベース13に対して、同一のSQLを発行して、その応答結果をユーザに通知する。データベース移行テストは、現行データベースにおいて用いられているSQLが、移行先データベースにおいて正しく動作するかを確認するものである。したがって、テストに用いられるSQLは、現行データベースに対して実行されたSQLであることが望ましい。
【0014】
現行環境テスト用データベース12は、現行データベースと同一環境のテスト用データベースである。移行先環境テスト用データベース13は、移行先データベースと同一環境のテスト用データベースである。
【0015】
データベース移行テストシステム1は、現行データベースおよび移行先データベースは、どのような方式のデータベースであっても、対応可能である。異なるデータベースの種類において結果を比較するにあたり、現行環境テスト用データベース12および移行先環境テスト用データベース13に格納されるデータは、基本的に、テキスト化され、それぞれの応答を、テキスト同士の比較として実行可能とすると好適である。
【0016】
データベース移行テストのモードとしては、パース(構文解析)と実行がある。実行モードが選択された場合、SQL実行結果の保存モードとしては、ロールバック、または、コミットがある。ロールバックは、トランザクション中の処理が取り消されてデータベースがトランザクション実行前の状態に戻るものである。コミットは、トランザクションを終了してデータベースに処理結果を反映させるものである。
【0017】
図2は、データベース移行テスト装置11が有する機能を説明するための機能ブロック図である。
【0018】
データベース移行テスト装置11は、SQL取得処理部21、SQL送出制御部22、第1のSQL発行処理部23、第2のSQL発行処理部24、第1の応答取得処理部25、第2の応答取得処理部26、応答比較処理部27、表示制御処理部28、操作入力取得部29、および、SQL変換処理部30を含む機能を有している。
【0019】
SQL取得処理部21は、現行環境テスト用データベース12、および、移行先環境テスト用データベース13に送出するためのテスト用SQLの元となるSQLを取得し、そのSQLを、SQL送出制御部22に供給する。テスト用SQLの元となるSQLは、例えば、ユーザにより提示されたSQLなど、どの種類のSQLであってもよく、その数も、テストの性能を十分に満たすものであればよい。SQL取得処理部21は、現行データベースに対して実際に実行されたSQLを取得すると好適である。実際に実行されたSQLの取得方法はいかなる方法であってもかまわないが、例えば、現行データベースに対して実行されている各種監査ツール、または、現行データベースに備えられている監査機能が取得するログ、もしくは、ソースコードなどを調査することなどにより取得することが可能である。
【0020】
また、SQL取得処理部21は、SQLのセッション情報を取得し、SQL送出制御部22に供給する。セッションとは、1人のユーザが、データベースに接続して切断するまでを管理するための単位である。例えば、
図3に示されるように、データベースにおいては、複数ユーザ(ここでは、ユーザU1~ユーザU4)がアクセスして、それぞれ順次、処理を行うことが可能なようになされている。それぞれのセッションで複数のSQLが実行される。テスト用SQLの元となるSQLが、現行データベースに対して実際に実行されたSQLである場合、実際に実行されたSQLと同様の方法によって、セッション情報が取得される。テスト用SQLの元となるSQLが、ユーザにより提示されたSQLなどである場合、ユーザから、セッション情報も取得すると好適である。
【0021】
また、SQL取得処理部21は、バインド変数を使用するSQLに対しては、バインド変数情報(データ型、値)を取得する。さらに、SQL取得処理部21は、セッション開始時間、または、SQL開始時間も取得することができれば好適である。SQL取得処理部21は、取得したSQL、および、セッション情報やバインド変数などの付随する情報を蓄積するとともに、データベース移行テスト実行時に、SQL送出制御部22に供給する。
【0022】
SQL送出制御部22は、第1のSQL発行処理部23および第2のSQL発行処理部24によるテスト用SQLの発行を制御する。具体的には、SQL送出制御部22は、SQL取得処理部21から供給されたSQLに対して、セッションごとに異なる識別子を付与し、バインド変数情報が取得できなかった場合にデフォルト値を設定して、テスト用のSQLを生成し、第1のSQL発行処理部23および第2のSQL発行処理部24に供給して、その発行を制御する。また、SQL送出制御部22は、後述するSQL変換処理部30から供給された、変換後のテスト用SQLを含むセッションの、第2のSQL発行処理部24による発行を制御するとともに、第2のSQL発行処理部24により発行される変換後のテスト用SQLに対応する変換前のテスト用SQLを含むセッションの第1のSQL発行処理部23による発行を制御する。
【0023】
SQLのセッション情報を用いて、セッション単位でのSQLの実行を確認することにより、一連のSQLの塊としての動作の確認が可能となる。具体的には、例えば、所定のデータを更新したのち、必要な情報を抽出する、などの、前の実行結果を受けての情報取得結果を確認することができる。それぞれのセッションの実行順序を考慮する必要がない場合、現行環境テスト用データベース12と移行先環境テスト用データベース13のそれぞれに対して、複数セッションを同時並行的にテストするようにしてもよい。また、SQL送出制御部22は、ロールバックモードの場合、セッションの最後にロールバックが行われるように、第1のSQL発行処理部23および第2のSQL発行処理部24によるテスト用SQLの発行を制御する。
【0024】
SQL送出制御部22は、第1のSQL発行処理部23および第2のSQL発行処理部24によるテスト用SQLの発行を、それぞれ、同時に、または、ほぼ同時に行われるように制御すると好適である。換言すれば、SQL送出制御部22は、現行環境テスト用データベース12と移行先環境テスト用データベース13のそれぞれからの応答がほぼ同時になるように制御すると好適である。
【0025】
第1のSQL発行処理部23は、SQL送出制御部22の制御に基づいて、現行環境テスト用データベース12に、テスト用のSQLを、SQL実行時間の計測のためのコマンドと共に発行する。また、第1のSQL発行処理部23は、セッション実行時間の計測のためのコマンドも同様に送出するものとすると好適である。また、第1のSQL発行処理部23は、応答比較処理部27の指令を受けた場合、所定のSQLの実行計画を取得するためのコマンドを、現行環境テスト用データベース12に発行する。
【0026】
第2のSQL発行処理部24は、SQL送出制御部22の制御に基づいて、移行先環境テスト用データベース13に、テスト用のSQL(後述するSQL変換処理部30により変換されたテスト用SQLである場合も含む)を、SQL実行時間の計測のためのコマンドと共に発行する。また、第2のSQL発行処理部24は、セッション実行時間の計測のためのコマンドも同様に送出するものとすると好適である。また、第2のSQL発行処理部24は、応答比較処理部27の指令を受けた場合、所定のSQLの実行計画を取得するためのコマンドを、現行環境テスト用データベース12に発行する。
【0027】
第1の応答取得処理部25は、現行環境テスト用データベース12からの応答を取得し、応答比較処理部27に供給する。
【0028】
第2の応答取得処理部26は、移行先環境テスト用データベース13からの応答を取得し、応答比較処理部27に供給する。
【0029】
応答比較処理部27は、第1の応答取得処理部25から供給された現行環境テスト用データベース12からの応答と、第2の応答取得処理部26から供給されたテスト用データベースからの応答を比較し、比較結果を、表示制御処理部28およびSQL変換処理部30に供給する。また、応答比較処理部27は、後述する処理により、現行環境テスト用データベース12と移行先環境テスト用データベース13におけるSQL実行結果が同一であっても、移行先環境テスト用データベース13におけるSQLの実行速度が、現行環境テスト用データベース12におけるSQLの実行速度より遅いことを検出した場合、対応するSQLの実行計画を取得するためのコマンドの送出を、第1のSQL発行処理部23および第2のSQL発行処理部24に指令する。
【0030】
図4は、応答比較処理部27が有するさらに詳細な機能を示す機能ブロック図である。
【0031】
応答比較処理部27は、正常応答有無判断部41、応答結果比較部42、応答時間比較部43、および、実行計画取得制御部44の機能を有する。
【0032】
正常応答有無判断部41は、第1の応答取得処理部25および第2の応答取得処理部26から供給される情報に基づいて、現行環境テスト用データベース12および移行先環境テスト用データベース13においてテスト用SQLが実行されることにより、現行環境テスト用データベース12および移行先環境テスト用データベース13から、テスト用SQLに対する正常な応答が取得されたか否かを判断する。正常応答有無判断部41は、現行環境テスト用データベース12と移行先環境テスト用データベース13のいずれからも正常な応答が取得された場合、それらの応答を、応答結果比較部42に供給する。また、正常応答有無判断部41は、現行環境テスト用データベース12と移行先環境テスト用データベース13のいずれか、または、両方から正常な応答が取得されなかった場合、すなわち、いずれか、または、両方で、テスト用SQLが実行されなかった場合、その情報を、表示制御処理部28に供給するとともに、SQL変換処理部30に、対応するSQLの内容を通知する。
【0033】
応答結果比較部42は、正常応答有無判断部41から供給された、現行環境テスト用データベース12と移行先環境テスト用データベース13の応答結果を比較し、同一であったか否かを判断する。この時、データベースの種類によって、サポートしているデータ型や精度が異なるなどの差異が存在する。したがって、現行データベースおよび移行先データベースが異なる種類のデータベースである場合、比較時には、出力フォーマットを揃えたり、ヘッダーの違いや浮動小数点比較時の誤差の取り扱いの違いなどを考慮する必要がある。
【0034】
現行環境テスト用データベース12と移行先環境テスト用データベース13の応答結果が同一でなかった場合、応答結果比較部42は、応答結果が同一でなかったことを示す情報を、表示制御処理部28に供給するとともに、SQL変換処理部30に、対応するSQLの内容を通知する。現行環境テスト用データベース12と移行先環境テスト用データベース13の応答結果が同一であった場合、応答結果比較部42は、応答結果が同一であったことを示す情報を、実行時間の応答結果と共に、応答時間比較部43に供給する。
【0035】
応答時間比較部43は、応答結果比較部42から供給された、応答結果が同一であったSQLのそれぞれの実行時間を比較する。移行先環境テスト用データベース13におけるSQLの実行速度が、現行環境テスト用データベース12におけるSQLの実行速度と同一か早いことを検出した場合、応答時間比較部43は、その結果を示す情報を、表示制御処理部28に供給する。また、移行先環境テスト用データベース13におけるSQLの実行速度が、現行環境テスト用データベース12におけるSQLの実行速度より遅い、換言すれば、SQL実行性能が劣化したことを検出した場合、応答時間比較部43は、その結果を、実行計画取得制御部44に通知するとともに、SQL変換処理部30に、対応するSQLの内容を通知する。なお、セッションの実行時間を取得することができるようになされている場合、応答時間比較部43は、それぞれのセッションの実行時間を比較し、その結果を、実行計画取得制御部44に通知する。
【0036】
実行計画取得制御部44は、応答時間比較部43から、移行先環境テスト用データベース13におけるSQLの実行速度が、現行環境テスト用データベース12におけるSQLの実行速度より遅いことの通知を受けた場合、対応するSQLの実行計画を取得するためのコマンドの送出を、第1のSQL発行処理部23および第2のSQL発行処理部24に指令する。また、実行計画取得制御部44は、第1の応答取得処理部25および第2の応答取得処理部26から、実行計画の供給を受け、表示制御処理部28に供給する。
【0037】
SQLの実行計画とは、SQLが実行される手順を示すものであり、それぞれのデータベースのオプティマイザが作成するものである。すなわち、オプティマイザ統計が最新でないと適切な実行計画が作成されず、不適切な実行計画でSQLが実行されると、本来であれば実現できる処理パフォーマンスを得ることができない。すなわち、SQLの実行速度が遅くなった場合、その性能を改善するためには、実行計画を解析し、どのような方法でテーブルにアクセスしようとしているのか理解する必要がある。そこで、実行計画取得制御部44は、実行速度が遅くなったSQLを取得し、表示制御処理部28に供給する。
【0038】
応答比較処理部27は、これらの処理により、第1の応答取得処理部25から供給された現行環境テスト用データベース12からの応答と、第2の応答取得処理部26から供給されたテスト用データベースからの応答を比較し、比較結果を、表示制御処理部28およびSQL変換処理部30に供給する。上述したように、SQL送出制御部22は、第1のSQL発行処理部23および第2のSQL発行処理部24によるテスト用SQLの発行を、それぞれ、同時に、または、ほぼ同時に行われるように制御すると好適である。換言すれば、SQL送出制御部22は、現行環境テスト用データベース12と移行先環境テスト用データベース13のそれぞれからの応答がほぼ同時になるように制御すると好適である。すなわち、応答比較処理部27は、第1の応答取得処理部25から供給された現行環境テスト用データベース12からの応答と、第2の応答取得処理部26から供給された移行先環境テスト用データベース13からの応答を、時間差をあまり持たずに取得することができるため、比較処理を高速に行うことが可能となる。また、特に、問題なく動作したSQLに関する応答結果や比較結果の詳細に関しては、その後の処理に用いることがないため、データベース移行テスト装置11が有する図示しない記録部の容量によっては、不必要なデータを順次消去することも可能である。
【0039】
図2に戻り、表示制御処理部28は、応答比較処理部27、および、操作入力取得部29から供給される情報を用いて、所定の表示画像データを生成し、図示しない表示デバイスへの表示を制御する。
【0040】
表示制御処理部28は、例えば、
図5に示されるように、データベース移行テストのサマリーの表示を制御することができる。サマリーの内容としては、例えば、テストを実行したSQLのうち、現行環境テスト用データベース12と移行先環境テスト用データベース13のいずれか、または、両方から応答が取得されなかったSQLの件数、現行環境テスト用データベース12と移行先環境テスト用データベース13の応答結果が同一でなかったSQLの件数、移行先環境テスト用データベース13におけるSQLの実行速度が、現行環境テスト用データベース12におけるSQLの実行速度より遅かった、すなわち、性能が劣化したSQL、問題がなかったSQL、および、テストができなかったSQLの件数をそれぞれ示したり、グラフ化することが可能である。また、サマリーの内容として、例えば、移行先環境テスト用データベース13(
図5においては、ターゲットDBと記載)において、実行失敗したSQLの件数、エラーメッセージの内容、エラーユーザ、およびエラープログラムと、それぞれのパーセンテージなどを表示することが可能である。また、サマリーの内容として、例えば、現行環境テスト用データベース12と移行先環境テスト用データベース13において、実行結果が異なったSQLの件数とパーセンテージなどを表示することが可能である。ユーザは、これらの表示画面において、所望の操作を行うことにより、修正のための操作に必要な詳細な情報を得ることができる。具体的には、この表示画面を参照したユーザは、例えば、「修正すべきSQLの一覧」の記載をクリックする操作を行うことにより、修正すべきSQLの一覧を表示させることが可能となる。
【0041】
また、表示制御処理部28は、例えば、修正のための操作に必要な詳細な情報の一覧として、
図6に示されるような、SQL実行結果一覧・修正作業進捗の情報の表示を制御することができる。
図6においては、現行環境テスト用データベース12(
図6においては、ソースDBと記載)、および、移行先環境テスト用データベース13(
図6においては、ターゲットDBと記載)のそれぞれにおける各SQLの実行結果の一覧や、修正の必要のあるSQLの作業進捗の表示を制御する。ユーザは、
図6に示されるような詳細な表示を参照し、例えば、必要に応じて、実行計画を表示させるための操作入力を行い、応答比較処理部27の実行計画取得制御部44により取得された、対応するSQLの実行計画を表示させるなどして、SQL変換修正の処理を行うことができる。
【0042】
操作入力取得部29は、例えば、
図5または
図6を用いて説明したような、データベース移行テストの結果を参照したユーザからの操作入力を受け、表示制御処理部28またはSQL変換処理部30に供給の対応する部分に供給する。また、異なる装置において、SQLの変換処理を含む各種操作を行う場合においては、操作入力取得部29は、情報の入出力のための入出力制御部として機能する。
【0043】
SQL変換処理部30は、応答比較処理部27から、問題があったと判断されたSQL、すなわち、現行環境テスト用データベース12と移行先環境テスト用データベース13のいずれか、または、両方から応答が取得されなかったSQL、現行環境テスト用データベース12と移行先環境テスト用データベース13の応答結果が同一でなかったSQL、および、移行先環境テスト用データベース13におけるSQLの実行速度が、現行環境テスト用データベース12におけるSQLの実行速度より遅いSQLに関する情報の供給を受ける。そして、SQL変換処理部30は、表示制御処理部28により表示が制御された各種情報、例えば、
図5または
図6を用いて説明した情報や、SQLの実行計画操作を参照したユーザの操作入力を、入力取得部から供給され、移行先環境テスト用データベース13において実行されたSQLを、再度テストするための変換処理を実行し、変換結果を、SQL送出制御部22に供給する。
【0044】
SQL送出制御部22は、上述したように、変換後のテスト用SQLを含むセッションの、第2のSQL発行処理部24による発行を制御するとともに、第2のSQL発行処理部24により発行される変換後のテスト用SQLに対応する変換前のテスト用SQLを含むセッションの第1のSQL発行処理部23による発行を制御する。
【0045】
なお、ここでは、データベース移行テスト装置11がSQL変換処理部30の機能を有するものとして説明したが、SQL変換処理部30の機能は、データベース移行テスト装置11とは異なる装置が有していてもよい。具体的には、応答比較処理部27から、問題があったと判断されたSQLを、図示しないデータ入出力部を介して、データベース移行テスト装置11とは異なり、SQL変換処理部30と同様の機能を有する装置に供給し、再度テストするための変換処理が施されたSQLを、図示しないデータ入出力部を介して、SQL送出制御部22が取得するものとしてもよい。
【0046】
次に、
図7のフローチャートを参照して、データベース移行テスト装置11が実行するデータベース移行テストの一例である、データベース移行テスト1について説明する。
【0047】
ステップS1において、SQL取得処理部21は、現行データベースに対して実際に実行されたSQLなどのテスト用SQLの元となるSQLを、セッション情報、および、バインド変数と共に取得し、SQL、セッション情報、および、バインド変数を、SQL送出制御部22に供給する。
【0048】
ステップS2において、SQL送出制御部22は、SQL取得処理部21から供給され、蓄積されたSQLから、テストのために発行するSQLを組み立てる。具体的には、SQL送出制御部22は、供給されたSQLに対して、セッションごとに異なる識別子を付与し、バインド変数情報が取得できなかった場合にデフォルト値を設定して、テスト用のSQLを生成する。なお、ここでは、ステップS1の処理の終了後、ステップS2に進むものとして説明しているが、SQL取得処理部21が、テスト用SQLの元となるSQLを1つ取得してステップS2に進むのではなく、他の処理が実行されている間にも、SQL取得処理部21によるSQLの取得が続けられ、適宜、蓄積されたのち、SQL送出制御部22に供給される。
【0049】
ステップS3において、SQL送出制御部22は、テスト用のSQLを、第1のSQL発行処理部23および第2のSQL発行処理部24に供給して、その発行を制御する。SQL送出制御部22は、第1のSQL発行処理部23および第2のSQL発行処理部24によるテスト用SQLの発行を、それぞれ、同時に、または、ほぼ同時に行われるように制御する。第1のSQL発行処理部23は、SQL送出制御部22の制御に基づいて、現行環境テスト用データベース12に、テスト用のSQLを、SQL実行時間の計測のためのコマンドと共に発行する。第2のSQL発行処理部24は、SQL送出制御部22の制御に基づいて、移行先環境テスト用データベース13に、テスト用のSQLを、SQL実行時間の計測のためのコマンドと共に発行する。また、第1のSQL発行処理部23および第2のSQL発行処理部24は、セッション実行時間の計測のためのコマンドも同様に送出するものとすると好適である。
【0050】
ステップS4において、第1の応答取得処理部25は、現行環境テスト用データベース12からの応答を取得し、第2の応答取得処理部26は、移行先環境テスト用データベース13からの応答を取得し、それぞれ、取得した応答を、応答比較処理部27に供給する。
【0051】
ステップS5において、
図8のフローチャートを用いて後述する、応答結果比較処理が実行される。
【0052】
ステップS6において、表示制御処理部28は、例えば、
図5または
図6を用いて説明したような、データベース移行テストの結果の表示を制御することにより、現行環境テスト用データベース12および移行先環境テスト用データベース13から供給されたSQLの応答の比較結果をユーザに通知する。ユーザは、表示制御処理部28により表示が制御された各種情報、例えば、
図5または
図6を用いて説明した情報や、SQLの実行計画操作を参照し、問題があったと判断されたSQL、すなわち、現行環境テスト用データベース12と移行先環境テスト用データベース13のいずれか、または、両方から応答が取得されなかったSQL、現行環境テスト用データベース12と移行先環境テスト用データベース13の応答結果が同一でなかったSQL、および、移行先環境テスト用データベース13におけるSQLの実行速度が、現行環境テスト用データベース12におけるSQLの実行速度より遅いSQLを修正変換するための操作入力を行う。SQL変換処理部30は、入力取得部から供給された、ユーザの操作入力に基づいて、移行先環境テスト用データベース13において実行されたSQLを、再度テストするための変換処理を実行し、変換結果を、SQL送出制御部22に供給する。
【0053】
ステップS7において、SQL送出制御部22は、現行のSQLのテストが終了したか否かを判断する。ステップS7において、現行のSQLのテストが終了していないと判断された場合、処理は、ステップS1に戻り、それ以降の処理が繰り返される。
【0054】
ステップS7において、現行のSQLのテストが終了したと判断された場合、ステップS8において、SQL送出制御部22は、SQL変換処理部30から修正結果が取得されたか否かを判断する。ステップS8において、SQL変換処理部30から修正結果が取得されたと判断された場合、処理は、ステップS2に戻り、SQL送出制御部22は、SQL変換処理部30から供給された、変換後のテスト用SQLを含むセッションの、第2のSQL発行処理部24による発行を制御するとともに、第2のSQL発行処理部24により発行される変換後のテスト用SQLに対応する変換前のテスト用SQLを含むセッションの第1のSQL発行処理部23による発行を制御して、それ以降の処理が繰り返される。
【0055】
ステップS8において、SQL変換処理部30から修正結果が取得されていないと判断された場合、ステップS9において、操作入力取得部29は、テスト終了が指令されたか否かを判断する。ステップS9において、テスト終了が指令されていないと判断された場合、処理は、ステップS8に戻り、それ以降の処理が繰り返される。ステップS9において、テスト終了が指令されたと判断された場合、処理が終了される。
【0056】
なお、このフローチャートにおいては、テスト用SQLの送出と、それらの応答の比較が順次行われたのち、次のテスト用SQLの送出が行われるものとして説明しているが、
図3を用いて説明したように、データベースにおいては、複数ユーザがアクセスして、それぞれ順次、処理を行うことが可能、すなわち、複数のセッショを並行して実行することが可能であるので、テスト用SQLの送出は、応答の比較処理の終了を待つことなく、順次可能であり、テスト用SQLの送出と応答の比較処理とは、平行に処理可能である。
【0057】
次に、
図8のフローチャートを参照して、
図7のステップS5において実行される、応答結果比較処理について説明する。
【0058】
ステップS11において、正常応答有無判断部41は、第1の応答取得処理部25および第2の応答取得処理部26から供給される情報に基づいて、現行環境テスト用データベース12と移行先環境テスト用データベース13から、テスト用SQLに対する応答が取得されたか否か、すなわち、テスト用SQLは、両方のデータベースで実行できたか否かを判断する。
【0059】
ステップS11において、テスト用SQLは、両方のデータベースでは実行できなかったと判断された場合、ステップS12において、正常応答有無判断部41は、失敗はいずれのデータベースであるか、または、両方のデータベースであるかを検出して、処理は、ステップS18に進む。
【0060】
ステップS11において、テスト用SQLは、両方のデータベースで実行できたと判断された場合、ステップS13において、正常応答有無判断部41は、それらの応答を、応答結果比較部42に供給する。応答結果比較部42は、正常応答有無判断部41から供給された、現行環境テスト用データベース12と移行先環境テスト用データベース13の応答結果を比較し、クエリの結果は同じであるか否かを判断する。
【0061】
ステップS13において、クエリの結果は同じでないと判断された場合、ステップS14において、応答結果比較部42は、このテスト用SQLによって得られた応答結果は、異なったクエリであると判断して、処理は、ステップS18に進む。
【0062】
ステップS13において、クエリの結果は同じであると判断された場合、ステップS15において、応答結果比較部42は、応答結果が同一であったことを示す情報を、実行時間の情報とともに、応答時間比較部43に供給する。応答時間比較部43は、応答結果比較部42から供給された、応答結果が同一であったSQLのそれぞれの実行時間を比較し、クエリの実行速度は同等以上であるか否かを判断する。ステップS15において、クエリの実行速度は同等以上ではないと判断された場合、処理は、ステップS19に進む。
【0063】
ステップS15において、クエリの実行速度は同等以上ではないと判断された場合、ステップS16において、応答時間比較部43は、その結果を、実行計画取得制御部44に通知するとともに、移行先環境テスト用データベース13におけるSQLの実行速度が、現行環境テスト用データベース12におけるSQLの実行速度より何%遅くなったかを算出する。
【0064】
ステップS17において、実行計画取得制御部44は、対応するSQLの実行計画を取得するためのコマンドの送出を、第1のSQL発行処理部23および第2のSQL発行処理部24に指令し、実行計画取得制御部44は、第1の応答取得処理部25および第2の応答取得処理部26から、実行計画の供給を受ける。
【0065】
ステップS12、ステップS14、または、ステップS17の処理の終了後、ステップS18において、正常応答有無判断部41、応答結果比較部42、または、応答時間比較部43は、修正対象となるSQLをエラー内容や必要な情報とともに、表示制御処理部28およびSQL変換処理部30に供給して、処理は、
図7のステップS6に進む。
【0066】
ステップS15において、クエリの実行速度は同等以上であると判断された場合、ステップS19において、応答時間比較部43は、問題ないクエリであると判断し、その結果を示す情報を、表示制御処理部28およびSQL変換処理部30に供給して、処理は、
図7のステップS6に進む。
【0067】
図7を用いて説明した処理では、現行のSQLの比較テストが終了したのち、修正されたSQLを用いた比較テストが行われるものとして説明したが、
図3を用いて説明したように、データベースにおいては、複数ユーザがアクセスして、それぞれ順次、処理を行うことが可能、すなわち、複数のセッションを並行して実行することが可能である。したがって、テスト用SQLの送出は、現行のSQLと修正されたSQLとを混在させることも可能である。
【0068】
次に、
図9のフローチャートを参照して、データベース移行テスト装置11が実行するデータベース移行テストの一例である、データベース移行テスト2について説明する。
【0069】
ステップS31からステップS36において、
図7を用いて説明した、ステップS1からステップS6と同様の処理が実行される。すなわち、テスト用SQLの元となるSQLが、セッション情報、および、バインド変数と共に取得され、テストのために発行するSQLが組み立てられる。そして、現行環境テスト用データベース12および移行先環境テスト用データベース13に、テスト用のSQLが、SQL実行時間の計測のためのコマンドと共に発行され、現行環境テスト用データベース12および移行先環境テスト用データベース13からの応答が取得される。そして、
図8のフローチャートを用いて説明した応答結果比較処理が実行されて、例えば、
図5または
図6を用いて説明したように、SQLの応答の比較結果がユーザに通知される。
【0070】
ステップS37において、SQL送出制御部22は、SQL変換処理部30から修正結果が取得されたか否かを判断する。ステップS37において、SQL変換処理部30から修正結果が取得されたと判断された場合、処理は、ステップS32に戻り、SQL送出制御部22は、SQL変換処理部30から供給された、変換後のテスト用SQLを含むセッションの、第2のSQL発行処理部24による発行を制御するとともに、第2のSQL発行処理部24により発行される変換後のテスト用SQLに対応する変換前のテスト用SQLを含むセッションの第1のSQL発行処理部23による発行を制御して、それ以降の処理が繰り返される。
【0071】
ステップS37において、SQL変換処理部30から修正結果が取得されていないと判断された場合、ステップS38において、操作入力取得部29は、テスト終了が指令されたか否かを判断する。
【0072】
ステップS38において、テスト終了が指令されていないと判断された場合、ステップS39において、SQL送出制御部22は、現行のSQLのテストが終了したか否かを判断する。ステップS39において、現行のSQLのテストが終了していないと判断された場合、処理は、ステップS31に戻り、それ以降の処理が繰り返される。
【0073】
ステップS39において、現行のSQLのテストが終了したと判断された場合、処理は、ステップS37に戻り、それ以降の処理が繰り返される。
【0074】
ステップS38において、テスト終了が指令されたと判断された場合、処理が終了される。
【0075】
なお、このフローチャートにおいても、現行のSQLと修正されたSQLのそれぞれに対応するテスト用SQLの送出と、それらの応答の比較が順次行われたのち、次のテスト用SQLの送出が行われるものとして説明しているが、
図3を用いて説明したように、データベースにおいては、複数のセッショを並行して実行することが可能であるので、現行のSQLと修正されたSQLのそれぞれに対応するテスト用SQLの送出は、応答の比較処理の終了を待つことなく、順次可能である。すなわち、現行のSQLに基づいたテスト用SQLの送出、修正されたSQLに基づいたテスト用SQLの送出、および、それぞれの応答の比較処理とは、平行に処理可能である。
【0076】
[効果のまとめ]
このように、現行データベースと同一環境の現行環境テスト用データベース12、移行先となるデータベースと同一環境の移行先環境テスト用データベース13、および、データベース移行テスト装置11を含んで構成されるデータベース移行テストシステム1においては、
テスト用SQLを、現行環境テスト用データベース12に、SQL実行時間の計測のためのコマンドと共に発行する第1のSQL発行処理部23と、
テスト用SQLを、移行先環境テスト用データベース13に、SQL実行時間の計測のためのコマンドと共に発行する第2のSQL発行処理部24と、
第1のSQL発行処理部23、および、第2のSQL発行処理部24によるSQLの発行を制御するSQL送出制御部22と、
現行環境テスト用データベース12からの第1の応答を取得する第1の応答取得処理部25と、
移行先環境テスト用データベース13からの第2の応答を取得する第2の応答取得処理部26と、
第1の応答取得処理部25および第2の応答取得処理部26が、正常な第1の応答および正常な第2の応答を取得したか否かを判断する正常応答有無判断部41と、
正常応答有無判断部41により、正常な第1の応答および正常な第2の応答が取得されたと判断された場合、第1の応答および第2の応答を比較し、同一であるか否かを判断する応答結果比較部42と、
応答結果比較部42により、第1の応答および第2の応答が同一であると判断された場合、それぞれの実行時間を比較する応答時間比較部43と
を備えるようにしたので、
データベース移行テストにおいて、移行先データベースシステムが正しく動作するかを確認することができる。
【0077】
現行データベースに対して実際に実行されたSQLを取得するSQL取得処理部21をさらに備え、
第1のSQL発行処理部23、および、第2のSQL発行処理部24は、SQL取得処理部21により取得された、現行データベースに対して実際に実行されたSQLを、テスト用SQLとして発行するようにしたので、
データベース移行テストにおいて、現在使用しているSQLが、移行先データベースシステムの環境でも正しく動作するかを確認することができる。
【0078】
SQL取得処理部21は、現行データベースに対して実際に実行されたSQLのセッション情報をさらに取得し、
第1のSQL発行処理部23、および、第2のSQL発行処理部24は、テスト用SQLを、セッション情報に基づいて、セッションごとに発行するようにしたので、
例えば、所定のデータを更新したのち、必要な情報を抽出する、などの、前の実行結果を受けての情報取得結果、すなわち、一連のSQLの塊としての動作の確認することができる。
【0079】
第1のSQL発行処理部23、および、第2のSQL発行処理部24は、テスト用SQLを、セッションごとに発行するようにしたので、
例えば、所定のデータを更新したのち、必要な情報を抽出する、などの、前の実行結果を受けての情報取得結果、すなわち、一連のSQLの塊としての動作の確認することができる。
【0080】
応答時間比較部43により、第2の応答における実行速度が第1の応答における実行速度よりも遅いと判断された場合、対応するSQLの実行計画の取得を制御する実行計画取得制御部44をさらに備えるようにしたので、
SQLの実行速度が遅くなった場合、その性能を改善するために、実行計画を解析し、どのような方法でテーブルにアクセスしようとしているのかを理解することができる。
【0081】
また、SQL送出制御部22は、第1のSQL発行処理部23、および、第2のSQL発行処理部24によるSQLの発行を、それぞれ、同時に、または、ほぼ同時に行われるように制御するようにしたので、
第1の応答取得処理部25から供給された現行環境テスト用データベース12からの応答と、第2の応答取得処理部26から供給された移行先環境テスト用データベース13からの応答を、時間差をあまり持たずに取得することができる。その結果、比較処理を高速に行うことが可能となる。また、特に、問題なく動作したSQLに関する応答結果や比較結果の詳細に関しては、その後の処理に用いることがないため、データベース移行テスト装置11が有する図示しない記録部の容量によっては、不必要なデータを順次消去することも可能である。
【0082】
さらに、SQLの変換処理を行うSQL変換処理部30をさらに備え、
SQL送出制御部22は、SQL変換処理部30により変換されて生成された変換後SQLを含むセッションの、第2のSQL発行処理部24による発行を制御するとともに、第2のSQL発行処理部24により発行される変換後SQLに対応する変換前のSQLを含むセッションの第1のSQL発行処理部23による発行を制御するようにしたので、
問題があったと判断されたSQLに対して変換処理を施して、再度、テストをし、動作確認を行うことができる。
【0083】
上述した技術は、ハードウェアとしては、例えば、パーソナルコンピュータに適用することができる。
【0084】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0085】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。また、上述した一連の処理を実行するためのプログラムは、1つのアプリケーションプログラムであってもよいし、複数のアプリケーションプログラムが実行されることにより、上述した一連の処理を実行するものとしてもよい。
【0086】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0087】
1…データベース移行テストシステム、 11…データベース移行テスト装置、 12…現行環境テスト用データベース、 13…移行先環境テスト用データベース、 21…SQL取得処理部、 22…SQL送出制御部、 23…第1のSQL発行処理部、 24…第2のSQL発行処理部、 25…第1の応答取得処理部、 26…第2の応答取得処理部、 27…応答比較処理部、 28…表示制御処理部、 29…操作入力取得部、 30…SQL変換処理部、 41…正常応答有無判断部、 42…応答結果比較部、 43…応答時間比較部、 44…実行計画取得制御部
【要約】
【課題】データベース移行テストにおいて、SQLが移行先環境でも正しく動作するかを確認する。
【解決手段】SQLを取得するSQL取得処理部21と、取得されたSQLを現行環境テスト用データベースに発行する第1のSQL発行処理部23と、同様に移行先環境テスト用データベース13に発行する第2のSQL発行処理部24と、SQLの発行を制御するSQL送出制御部22と、現行環境テスト用データベースからの第1の応答を取得する第1の応答取得処理部25と、移行先環境テスト用データベースからの第2の応答を取得する第2の応答取得処理部26と、正常な第1の応答および正常な第2の応答が取得されたか否かを判断し、第1の応答および第2の応答を比較し、第1の応答および第2の応答が同一か否かを判断し、第2の応答の実行速度が第1の応答よりも遅いか否かを判断する応答比較処理部27とを備える。
【選択図】
図2