(57)【要約】【課題】パフォーマンスの悪い記述を容易に把握して、ＳＱＬ文のチューニングを効率よく行なうことができるコーディングチェック支援システム、コーディング支援方法及びコーディング支援プログラムを提供する。【解決手段】処理サーバ２０の制御部２１は、ＳＱＬ文であることを判定すると、ＳＱＬ文影響パターンデータ及び学習データ記憶部２５に記録された影響パターンを用いて、ＳＱＬ文マッチング処理を実行する。ここで、マッチングした場合には、エラー情報をメモリに記録する。制御部２１は、エラー情報を含むチェック結果画面データを生成して、作業者端末１０に送信し、チェック結果画面を表示する。このチェック結果画面に含まれるエラー情報の行番号が選択された場合、作業者端末１０は、選択された行番号の前後所定行の範囲のソースコードを含むチェック詳細画面データを処理サーバ２０から取得して、チェック詳細画面を表示する。【選択図】図１
2009258913.tif 000002
【特許請求の範囲】
【請求項１】
作業者が用いる作業者端末に接続される制御手段と、
データベースを用いて処理を実行する処理プログラムを記憶するソースデータ記憶手段と、
パフォーマンスに影響を与えるＳＱＬ文の記述を検出するための検索パターンが記録されたパターンデータ記憶手段とを備えたコーディングチェック支援システムであって、
前記制御手段が、
前記ソースデータ記憶手段に記録された処理プログラムのコーディングと、前記パターンデータ記憶手段に記録された検索パターンとを比較するマッチング処理を実行するチェック手段と、
前記コーディングにおいて検索パターンを検出した場合には、この検索パターンを含む該当部分を特定する情報と、この該当部分を含む記述を取得するためのコーディング情報取得手段とを含むチェック結果画面データを生成して、前記作業者端末に送信する第１情報提示手段と、
前記作業者端末から、前記コーディング情報取得手段を用いたコーディング情報取得要求を受信した場合、前記該当部分を含むコーディングを前記ソースデータ記憶手段から抽出し、これを含めたコーディング情報画面データを生成して、前記作業者端末に送信する第２情報提示手段とを備えたことを特徴とするコーディングチェック支援システム。
【請求項２】
前記制御手段は、
前記処理プログラムのＳＱＬ文を特定する情報に対して、このＳＱＬ文の少なくとも一部を含む記述及びＳＱＬ文の実行時間が記録されるＳＱＬ関連データ記憶手段と、
ＳＱＬ文を特定する情報に対して、このＳＱＬ文の実行計画が記録される実行計画データ記憶手段とに接続されており、
前記制御手段が、
ＳＱＬ文の実行時間のしきい値を取得する手段と、
前記実行時間が前記しきい値を超過したＳＱＬ文を特定する情報をＳＱＬ関連データ記憶手段から抽出する手段と、
前記抽出したＳＱＬ文を特定する情報に対して記録されている実行計画を前記実行計画データ記憶手段から抽出する手段と、
前記抽出したＳＱＬ文と、このＳＱＬ文の実行計画とを含む検索パターン候補画面データを生成して、前記作業者端末に送信する候補画面提示手段と、
前記検索パターン候補画面を介して指示された登録指示を前記作業者端末から取得した場合、前記登録指示に含まれる新たな検索パターンを特定する情報から検索パターンを特定して、前記パターンデータ記憶手段に登録する新規登録手段とを更に備えたことを特徴とする請求項１に記載のコーディングチェック支援システム。
【請求項３】
前記パターンデータ記憶手段には、前記検索パターンを特定する情報と、この検索パターンがパフォーマンスに影響を与えない場合の確認済条件とを含む確認済データが記憶されており、
前記制御手段が、検索パターンを特定する情報と確認済条件とを含む確認済指示を前記作業者端末から取得した場合、この検索パターンを特定情報と前記確認済条件とを含む確認済データを前記パターンデータ記憶手段に記録する確認済登録手段とを更に備え、
前記チェック手段は、前記確認済条件の処理プログラムのコーディングとのマッチング処理においては、この確認済条件に関連付けられていない検索パターンとの比較を実行することを特徴とする請求項２に記載のコーディングチェック支援システム。
【請求項４】
作業者が用いる作業者端末に接続される制御手段と、
データベースを用いて処理を実行する処理プログラムを記憶するソースデータ記憶手段
と、
パフォーマンスに影響を与えるＳＱＬ文の記述を検出するための検索パターンが記録されたパターンデータ記憶手段とを備えたシステムを用いたコーディングチェック支援方法であって、
前記制御手段が、
前記ソースデータ記憶手段に記録された処理プログラムのコーディングと、前記パターンデータ記憶手段に記録された検索パターンとを比較するマッチング処理を実行するチェック段階と、
前記コーディングにおいて検索パターンを検出した場合には、この検索パターンを含む該当部分を特定する情報と、この該当部分を含む記述を取得するためのコーディング情報取得手段とを含むチェック結果画面データを生成して、前記作業者端末に送信する第１情報提示段階と、
前記作業者端末から、前記コーディング情報取得手段を用いたコーディング情報取得要求を受信した場合、前記該当部分を含むコーディングを前記ソースデータ記憶手段から抽出し、これを含めたコーディング情報画面データを生成して、前記作業者端末に送信する第２情報提示段階とを実行することを特徴とするコーディングチェック支援方法。
【請求項５】
作業者が用いる作業者端末に接続される制御手段と、
データベースを用いて処理を実行する処理プログラムを記憶するソースデータ記憶手段と、
パフォーマンスに影響を与えるＳＱＬ文の記述を検出するための検索パターンが記録されたパターンデータ記憶手段とを備えたシステムに用いられるコーディングチェック支援プログラムであって、
前記制御手段を、
前記ソースデータ記憶手段に記録された処理プログラムのコーディングと、前記パターンデータ記憶手段に記録された検索パターンとを比較するマッチング処理を実行するチェック手段、
前記コーディングにおいて検索パターンを検出した場合には、この検索パターンを含む該当部分を特定する情報と、この該当部分を含む記述を取得するためのコーディング情報取得手段とを含むチェック結果画面データを生成して、前記作業者端末に送信する第１情報提示手段、及び
前記作業者端末から、前記コーディング情報取得手段を用いたコーディング情報取得要求を受信した場合、前記該当部分を含むコーディングを前記ソースデータ記憶手段から抽出し、これを含めたコーディング情報画面データを生成して、前記作業者端末に送信する第２情報提示手段として機能することを特徴とするコーディングチェック支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースに記憶されたデータを用いて処理を行なう処理プログラムのコーディングのチェックを支援するためのコーディングチェック支援システム、コーディング支援方法及びコーディング支援プログラムに関する。
【背景技術】
【０００２】
従来、プログラムのデバックを行なう場合、ディスプレイやプリントアウトした紙に表示されたコーディングを目視によりチェックすることが一般的に行なわれている。更に、バグを少なくするために、プログラムを作成する際のコーディングルールを規定し、このコーディングルールに従ってプログラミングすることもある。そして、この場合、プログラムに応じた適切なコーディングルールを容易に把握するためのシステムも開発されている（例えば、特許文献１参照。）。
【０００３】
この文献に記載の発明によれば、パーソナルコンピュータからプログラムのソースコードを受信すると、このソースコードの内容に該当するルールをリストアップして、このリストアップしたルールからなる結果ファイルを作成してパーソナルコンピュータに送信する。
【特許文献１】特開２００６−２６０１６５号公報（第１頁）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、所定の処理を行なう場合でも、プログラムの記述によってパフォーマンスが異なることが知られている。このため、パフォーマンスが悪くなるような記述をチェックして、良好なパフォーマンスが得られる記述にすることが望ましい。しかし、この場合、担当者毎の経験やスキルレベルによってチェックされる記述にばらつきがあり、結果としてパフォーマンスにばらつきが生じることがある。
【０００５】
特に、１つのシステムで用いられているプログラムにおいてパフォーマンスの悪い記述が発見された場合、他のシステムで用いられているプログラムについてもパフォーマンスへの影響を検証することが望ましい。また、各システムのプログラムチェックを担当する作業者が異なっている場合には、パフォーマンスに影響を与える記述について情報を共有することが望ましい。また、各システムを担当する作業者が替わった場合には、共有情報をすべて引き継ぐことが望ましい。
【０００６】
本発明は、上述の課題に鑑みてなされ、その目的は、パフォーマンスの悪い記述を容易に把握して、ＳＱＬ文のチューニングを効率よく行なうことができるコーディングチェック支援システム、コーディング支援方法及びコーディング支援プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記問題点を解決するために、請求項１に記載の発明は、作業者が用いる作業者端末に接続される制御手段と、データベースを用いて処理を実行する処理プログラムを記憶するソースデータ記憶手段と、パフォーマンスに影響を与えるＳＱＬ文の記述を検出するための検索パターンが記録されたパターンデータ記憶手段とを備えたコーディングチェック支援システムであって、前記制御手段が、前記ソースデータ記憶手段に記録された処理プログラムのコーディングと、前記パターンデータ記憶手段に記録された検索パターンとを比
較するマッチング処理を実行するチェック手段と、前記コーディングにおいて検索パターンを検出した場合には、この検索パターンを含む該当部分を特定する情報と、この該当部分を含む記述を取得するためのコーディング情報取得手段とを含むチェック結果画面データを生成して、前記作業者端末に送信する第１情報提示手段と、前記作業者端末から、前記コーディング情報取得手段を用いたコーディング情報取得要求を受信した場合、前記該当部分を含むコーディングを前記ソースデータ記憶手段から抽出し、これを含めたコーディング情報画面データを生成して、前記作業者端末に送信する第２情報提示手段とを備えたことを要旨とする。
【０００８】
請求項２に記載の発明は、請求項１に記載のコーディングチェック支援システムにおいて、前記制御手段は、前記処理プログラムのＳＱＬ文を特定する情報に対して、このＳＱＬ文の少なくとも一部を含む記述及びＳＱＬ文の実行時間が記録されるＳＱＬ関連データ記憶手段と、ＳＱＬ文を特定する情報に対して、このＳＱＬ文の実行計画が記録される実行計画データ記憶手段とに接続されており、前記制御手段が、ＳＱＬ文の実行時間のしきい値を取得する手段と、前記実行時間が前記しきい値を超過したＳＱＬ文を特定する情報をＳＱＬ関連データ記憶手段から抽出する手段と、前記抽出したＳＱＬ文を特定する情報に対して記録されている実行計画を前記実行計画データ記憶手段から抽出する手段と、前記抽出したＳＱＬ文と、このＳＱＬ文の実行計画とを含む検索パターン候補画面データを生成して、前記作業者端末に送信する候補画面提示手段と、前記検索パターン候補画面を介して指示された登録指示を前記作業者端末から取得した場合、前記登録指示に含まれる新たな検索パターンを特定する情報から検索パターンを特定して、前記パターンデータ記憶手段に登録する新規登録手段とを更に備えたことを要旨とする。
【０００９】
請求項３に記載の発明は、請求項２に記載のコーディングチェック支援システムにおいて、前記パターンデータ記憶手段には、前記検索パターンを特定する情報と、この検索パターンがパフォーマンスに影響を与えない場合の確認済条件とを含む確認済データが記憶されており、前記制御手段が、検索パターンを特定する情報と確認済条件とを含む確認済指示を前記作業者端末から取得した場合、この検索パターンを特定情報と前記確認済条件とを含む確認済データを前記パターンデータ記憶手段に記録する確認済登録手段とを更に備え、前記チェック手段は、前記確認済条件の処理プログラムのコーディングとのマッチング処理においては、この確認済条件に関連付けられていない検索パターンとの比較を実行することを要旨とする。
【００１０】
請求項４に記載の発明は、作業者が用いる作業者端末に接続される制御手段と、データベースを用いて処理を実行する処理プログラムを記憶するソースデータ記憶手段と、パフォーマンスに影響を与えるＳＱＬ文の記述を検出するための検索パターンが記録されたパターンデータ記憶手段とを備えたシステムを用いたコーディングチェック支援方法であって、前記制御手段が、前記ソースデータ記憶手段に記録された処理プログラムのコーディングと、前記パターンデータ記憶手段に記録された検索パターンとを比較するマッチング処理を実行するチェック段階と、前記コーディングにおいて検索パターンを検出した場合には、この検索パターンを含む該当部分を特定する情報と、この該当部分を含む記述を取得するためのコーディング情報取得手段とを含むチェック結果画面データを生成して、前記作業者端末に送信する第１情報提示段階と、前記作業者端末から、前記コーディング情報取得手段を用いたコーディング情報取得要求を受信した場合、前記該当部分を含むコーディングを前記ソースデータ記憶手段から抽出し、これを含めたコーディング情報画面データを生成して、前記作業者端末に送信する第２情報提示段階とを実行することを要旨とする。
【００１１】
請求項５に記載の発明は、作業者が用いる作業者端末に接続される制御手段と、データベースを用いて処理を実行する処理プログラムを記憶するソースデータ記憶手段と、パフ
ォーマンスに影響を与えるＳＱＬ文の記述を検出するための検索パターンが記録されたパターンデータ記憶手段とを備えたシステムに用いられるコーディングチェック支援プログラムであって、前記制御手段を、前記ソースデータ記憶手段に記録された処理プログラムのコーディングと、前記パターンデータ記憶手段に記録された検索パターンとを比較するマッチング処理を実行するチェック手段、前記コーディングにおいて検索パターンを検出した場合には、この検索パターンを含む該当部分を特定する情報と、この該当部分を含む記述を取得するためのコーディング情報取得手段とを含むチェック結果画面データを生成して、前記作業者端末に送信する第１情報提示手段、及び前記作業者端末から、前記コーディング情報取得手段を用いたコーディング情報取得要求を受信した場合、前記該当部分を含むコーディングを前記ソースデータ記憶手段から抽出し、これを含めたコーディング情報画面データを生成して、前記作業者端末に送信する第２情報提示手段として機能することを要旨とする。
【００１２】
（作用）
本発明によれば、制御手段は、ソースデータ記憶手段に記録された処理プログラムのコーディングと、パターンデータ記憶手段に記録された検索パターンとを比較するマッチング処理を実行する。制御手段は、コーディングにおいて検索パターンを検出した場合には、この検索パターンを含む該当部分を特定する情報と、この該当部分を含む記述を取得するためのコーディング情報取得手段とを含むチェック結果画面データを生成して、作業者端末に送信する。制御手段は、作業者端末から、コーディング情報取得手段を用いたコーディング情報取得要求を受信した場合、該当部分を含むコーディングをソースデータ記憶手段から抽出し、これを含めたコーディング情報画面データを生成して、作業者端末に送信する。このため、作業者は、チェック結果画面を閲覧することにより、パフォーマンスに影響するＳＱＬ文の有無を容易に把握することができる。また、該当部分を含むコーディングを含むコーディング情報画面を表示するので、該当部分の前後のコーディングを容易に閲覧することができ、効率よくＳＱＬ文をチューニングすることができる。
【００１３】
本発明によれば、制御手段は、ＳＱＬ文の実行時間のしきい値を取得する。制御手段は、実行時間がしきい値を超過したＳＱＬ文を特定する情報をＳＱＬ関連データ記憶手段から抽出する。制御手段は、抽出したＳＱＬ文を特定する情報に対して記録されている実行計画を実行計画データ記憶手段から抽出する。制御手段は、抽出したＳＱＬ文と、このＳＱＬ文の実行計画とを含む検索パターン候補画面データを生成して、作業者端末に送信する。このため、作業者端末には、実際の実行計画からパフォーマンスが悪くなっているＳＱＬ文と、このＳＱＬ文の実行計画とを含む検索パターン候補画面が表示されるので、実際の実行時間及び実行計画から、実際にパフォーマンスが悪いＳＱＬ文を容易に把握することができる。
【００１４】
また、制御手段は、検索パターン候補画面を介して指示された登録指示を前記作業者端末から取得した場合、登録指示に含まれる新たな検索パターンを特定する情報から検索パターンを特定して、パターンデータ記憶手段に登録する。このため、制御手段は、パフォーマンスが悪い記述として新たに把握された検索パターンを用いてマッチング処理を実行するので、新たに発見されたパフォーマンスの悪い記述についての情報を、迅速に共有することができる。従って、チェックした作業者によってばらつきのないチューニングを行なうことができる。
【００１５】
本発明によれば、制御手段は、検索パターンを特定する情報と確認済条件とを含む確認済指示を作業者端末から取得した場合、この検索パターンを特定情報と確認済条件とを含む確認済データをパターンデータ記録手段に記録する。制御手段は、確認済条件の処理プログラムのコーディングとのマッチング処理においては、この確認済条件に関連付けられていない検索パターンとの比較を実行する。このため、確認済データの確認済条件におい
てパフォーマンスに影響がないと作業者が許容した記述については、以降のチェック処理において検出されない。従って、同じモジュール名の処理プログラムであっても、システム環境やサブシステム等の確認済条件に応じて、より適切な検索パターンを用いて、パフォーマンスに影響するＳＱＬ文の記述を容易に把握することができる。
【発明の効果】
【００１６】
本発明によれば、実行する前にパフォーマンスの悪いＳＱＬ文の記述を把握することができ、ＳＱＬ文のチューニングを効率よく行なうことができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を具体化した一実施形態を図１〜図３に基づいて説明する。本実施形態においては、データベースに記録されたデータを用いて処理を実行する処理プログラムのコーディングをチェックするために用いられるコーディングチェック支援システムについて説明する。
【００１８】
図１に示すように、本実施形態では、コーディングチェック支援システムとしての処理サーバ２０は、作業者端末１０に接続されている。この作業者端末１０は、コーディングチェックを行なう作業者が用いるコンピュータ端末であり、ディスプレイ、キーボード及びポインティングデバイス等を備えている。
【００１９】
一方、処理サーバ２０は、ＯＲＡＣＬＥ（登録商標）のデータベース３０に記録されたデータを用いて、例えば売上処理等の業務処理を処理プログラムに従って実行する。この処理サーバ２０は、制御部２１、ソースデータ記憶部２２、ＳＱＬ関連データ記憶部２３、実行計画データ記憶部２４及び学習データ記憶部２５を備えている。ソースデータ記憶部２２はソースデータ記憶手段として機能し、ＳＱＬ関連データ記憶部２３はＳＱＬ関連データ記憶手段として機能し、実行計画データ記憶部２４は実行計画データ記憶手段として機能する。また、本実施形態では、制御部２１及び学習データ記憶部２５が、パターンデータ記憶手段を構成する。
【００２０】
制御部２１は、制御手段として機能し、図示しないＣＰＵ、ＲＡＭ及びＲＯＭ等を有し、後述する処理（チェック段階、第１情報提示段階、第２情報提示段階、候補画面提示段階、新規登録段階及び確認済登録段階等を含む処理）を行なう。制御部２１は、モジュール実行手段２１１として機能する。更に、コーディングチェック支援プログラムを実行することにより、制御部２１は、チェック処理手段２１５及び学習処理手段２１６として機能する。チェック処理手段２１５は、チェック手段、第１情報提示手段及び第２情報提示手段として機能する。学習処理手段２１６は、候補画面提示手段、新規登録手段及び確認済登録手段として機能する。
【００２１】
制御部２１は、処理プログラムを利用するサブシステムを特定するためのサブシステム構成データを記憶している。このシステム構成データは、具体的には、サブシステムを特定するサブ名に対して、このサブシステムを構成する処理プログラムのモジュール名が関連付けられている。また、制御部２１は、サブシステムが利用可能なシステム環境を特定するための環境構成データを記憶している。この環境構成データは、具体的には、システム環境を特定する環境名に対して、利用可能なサブシステムのサブ名が関連付けられている。更に、制御部２１は、後述する各種画面のフォーマットデータと、システム構成データ及び環境構成データのデフォルトとを記憶している。
【００２２】
モジュール実行手段２１１は、ソースデータ記憶部２２に記憶された処理プログラムに従って、データベース３０に記録された処理対象データを用いて処理を実行する。この場合、モジュール実行手段２１１は、処理プログラムのコンパイル処理においてＳＱＬ文を
生成し、後述するように、このＳＱＬ文に関するＳＱＬ文関連情報をＳＱＬ関連データ記憶部２３に記憶する。
【００２３】
チェック処理手段２１５は、処理プログラムのコーディングをチェックするチェック処理を実行する。具体的には、チェック処理手段２１５は、プロジェクト標準化データを記憶している。このプロジェクト標準化データは、プログラムの可読性の観点から、このシステムに用いる処理プログラムにおいて標準として規定されている記述に関するデータである。このプロジェクト標準化データには、標準化マッチングデータ及び標準化チェックデータが含まれている。標準化マッチングデータは、定数や引数の表示の仕方等に関するルールを規定したデータである。標準化チェックデータは、例えば、１行の記述が所定文字数以内であるか等の記述定義を規定したデータである。
【００２４】
更に、チェック処理手段２１５には、ＳＱＬ文影響パターンデータ及びループ文影響パターンデータが記憶されている。これら影響パターンデータには、ＳＱＬ文の記述又はループ文の記述において、パフォーマンスの悪い記述に関する検索パターンデータが含まれる。ＳＱＬ文影響パターンデータには、例えば、「SELECT」のキーワードとワイルドカードの特殊文字とが組み合わせた記述等がある。ループ文影響パターンデータには、例えば、呼び出し関数を定義する記述等がある。チェック処理手段２１５は、プログラムの標準化の記述、ＳＱＬ文の記述及びループ文の記述について、パフォーマンスの悪い記述の箇所を抽出して、作業者端末１０に表示するための処理を実行する。
【００２５】
更に、チェック処理手段２１５は、ＳＱＬ文であるか否かを判定するためのＳＱＬ文判定条件データと、ループ文であるか否かを判定するためのループ文判定条件データとを記憶している。ＳＱＬ文判定条件データには、ＳＱＬ文を特定するキーワード（「SELECT」，「UPDATE」，「DELETE」，「INSERT」等）及びＳＱＬ文の終了キーワード「；」が記録されている。ループ文判定条件データは、ループ文を特定するキーワード（「LOOP」，「FOR」，「WHILE」等）及びループ文の終了キーワード「END」が記録されている。チェッ
ク処理手段２１５は、ＳＱＬ文を特定するキーワードを検出した場合には、ＳＱＬ文の終了文字を検出するまで、ＳＱＬ文判定フラグを一時的に記憶する。また、チェック処理手段２１５は、ループ文を特定するキーワードを検出した場合には、ループ文の終了文字を検出するまで、ループ文判定フラグを一時的に記憶する。
【００２６】
学習処理手段２１６は、影響パターンを新たに学習データ記憶部２５に登録するための処理を実行する。具体的には、この学習処理手段２１６は、チューニング対象となるＳＱＬ文に関するデータを取得し、これに基づいて作業者端末１０から受信した指示に応じて影響パターンを新たに学習データ記憶部２５に登録する。更に、この学習処理手段２１６は、新たに取得した影響パターンについて、適用しない場合の確認済条件（ここでは、システム環境の条件とサブシステムの条件）を取得して、この確認済条件を含む確認済データを学習データ記憶部２５に記憶する。
【００２７】
一方、ソースデータ記憶部２２には、モジュール名が付された処理プログラムのソースコードが記憶されている。このソースコードは、新たなモジュールのコードが作成されて登録されると記録される。ここで、ソースコードには、公知のように、行番号が付与されている。
【００２８】
ＳＱＬ関連データ記憶部２３には、処理プログラムを実行するときに用いられるＳＱＬ文に関するＳＱＬ関連データが記憶される。このＳＱＬ関連データは、ＳＱＬ文が生成されて実行されたときに記録される。このＳＱＬ関連データには、ＳＱＬ先頭文、アドレス、ハッシュ値及び実行時間に関するデータが含まれる。
【００２９】
ＳＱＬ先頭文データ領域には、このＳＱＬ文の最初の１００文字（ＳＱＬ先頭文）に関するデータが記録される。
アドレスデータ領域及びハッシュ値データ領域には、このＳＱＬ文のアドレス及びハッシュ値に関するデータがそれぞれ記録される。これらアドレス及びハッシュ値を用いて、実行計画データ記憶部２４に記録された実行計画データとＳＱＬ関連データとが関連付けられる。
【００３０】
実行時間データ領域には、このＳＱＬ文を実行したときの所要時間に関するデータが記録される。
実行計画データ記憶部２４には、ＳＱＬ文を実行するときの内部的な手順である実行計画に関するデータが記憶される。この実行計画は、ＳＱＬに基づいて処理を行なう際に生成されて記録される。この実行計画データには、アドレス、ハッシュ値、オペレーション、オプション及びオブジェクト名に関するデータが含まれる。
【００３１】
アドレスデータ領域及びハッシュ値データ領域には、この実行計画のアドレス及びハッシュ値に関するデータがそれぞれ記録される。
オペレーションデータ領域には、この実行計画で実行される内部操作を特定する情報に関するデータが記録される。
【００３２】
オプションデータ領域には、このオペレーションデータに対応する操作のバリエーションに関するデータが記録される。例えば、オペレーションが「TABLE ACCESS」の場合には、このバリエーションに関するデータには、「FULL」や「INDEX」等がある。
【００３３】
オブジェクト名データ領域には、このオペレーションデータに対応して処理を行なう表名又は索引名に関するデータが記録される。
学習データ記憶部２５には、チェック処理手段２１５が記憶しているＳＱＬ文影響パターンデータ以外に、パフォーマンスに影響するＳＱＬ文の記述を抽出するための影響パターンデータが記録される。この学習データは、作業者端末１０からの影響パターン登録指示を取得した場合に登録される。この学習データは、影響パターンデータと確認済データとを含む。
【００３４】
影響パターンデータには、パターン識別子及び検索パターンに関するデータが含まれている。
パターン識別子データ領域は、この影響パターンを特定するための識別子に関するデータが記録されている。
【００３５】
検索パターンデータ領域には、パフォーマンスに悪影響があるＳＱＬ文のコーディングの記載に関するデータが記録される。
確認済データには、パターン識別子に関連付けられた確認済条件に関するデータが含まれる。本実施形態では、確認済条件として、システム環境及び、処理プログラムが属するサブシステムとを特定するための条件を用いる。従って、確認済データには、パターン識別子、環境名及びサブ名が含まれる。
【００３６】
パターン識別子データ領域には、このシステム環境でこのサブシステムにおいて確認された影響パターンを特定するための識別子（パターン識別子）に関するデータが記録されている。
【００３７】
環境名データ領域には、処理プログラムの処理対象であるシステム環境を特定するための環境名称に関するデータが記録される。
サブ名データ領域には、処理プログラムが属するサブシステムを特定するサブ名称（サ
ブ名）に関するデータが記録される。
【００３８】
以上のような構成を有する処理サーバ２０を用いた処理について、図２及び図３を用いて説明する。ここでは、処理サーバ２０に記憶された処理プログラムを実行する前に行なうチェック処理、処理プログラムによって実行されるモジュール実行処理及び処理プログラムを実行させた後に行なう学習処理の順番に説明する。この場合、作業者は、作業者端末１０を用いて、処理サーバ２０の制御部２１に、処理プログラム毎に、ＳＱＬ文の実行時間の許容時間（しきい値）のデータを登録しておく。
【００３９】
（チェック処理）
まず、チェック処理について、図２を用いて説明する。
作業者は、作業対象の処理プログラムのソースコードの作成や更新が終了して登録した後、コーディングチェックを行なう。この場合、作業者の指示に応じて作業者端末１０は、処理サーバ２０にコーディングチェックを行なうためのチェック条件画面要求を送信する。
【００４０】
コーディングチェック画面要求を受信した処理サーバ２０の制御部２１は、デフォルトの環境システムデータ及びシステム環境データを含ませたチェック条件画面データを生成して、作業者端末１０に送信する。作業者端末１０は、チェック条件画面をディスプレイに表示する。このチェック条件画面には、選択可能な環境に関するプルダウンメニュー、選択可能なサブシステムに関するプルダウンメニュー及び選択可能なモジュールに関するプルダウンメニュー及びチェック実行ボタンが含まれる。
【００４１】
ここで、作業者は、チェックを行なう処理プログラムを用いるシステム環境の環境名をプルダウンメニューから選択する。プルダウンメニューから環境名が選択されると、作業者端末１０は、選択された環境名に関するデータを処理サーバ２０に送信する。処理サーバ２０の制御部２１は、取得した環境名に関連付けられている環境構成データのサブ名を、作業者端末１０に送信する。作業者端末１０は、選択された環境名に関連付けられているサブ名の一覧リストデータを、サブ名に関するプルダウンメニューに表示する。
【００４２】
そして、作業者は、チェックを行なう処理プログラムが含まれるサブ名をプルダウンメニューから選択する。プルダウンメニューからサブ名が選択されると、作業者端末１０は、選択されたサブ名に関するデータを処理サーバ２０に送信する。処理サーバ２０の制御部２１は、取得したサブ名に関連付けられているシステム構成データのモジュール名を、作業者端末１０に送信する。作業者端末１０は、取得したモジュール名の一覧リストデータを、モジュール名に関するプルダウンメニューに表示する。
【００４３】
そして、作業者は、モジュールに関するプルダウンメニューから、チェックを行なう処理プログラムのモジュール名を選択し、チェック条件画面におけるチェックボタンを選択する。この場合、作業者端末１０は、チェック条件画面において選択された環境名及びモジュール名に関するデータを処理サーバ２０に送信する。
【００４４】
処理サーバ２０の制御部２１は、受信した環境名及びモジュール名をメモリに一時記憶する。そして、制御部２１は、データベースへの接続処理を実行する（ステップＳ１−１）。具体的には、制御部２１のチェック処理手段２１５は、取得した環境名に対応するデータベース３０を特定し、このデータベース３０にアクセス可能な状態にする。
【００４５】
次に、制御部２１は、１行毎にプログラムの読込処理を実行する（ステップＳ１−２）。具体的には、制御部２１のチェック処理手段２１５は、一時記憶したモジュール名に対応するソースコードをソースデータ記憶部２２からチェック対象行として最初から１行毎
に順次読み込む。ここで、コメントアウトされた行と判断した場合、チェック処理手段２１５は、この行をスキップして、次の行をチェック対象行として読み込む。
【００４６】
そして、読み込んだチェック対象行がプログラムの最後でない場合（ステップＳ１−３において「ＮＯ」の場合）には、制御部２１は、プロジェクト標準化マッチング処理を実行する（ステップＳ１−４）。具体的には、制御部２１のチェック処理手段２１５は、標準化マッチングデータとチェック対象行の記述とを比較して、マッチングしない記述（標準化違反の記述）がこのチェック対象行にあるか否かを検索する。
【００４７】
次に、制御部２１は、プロジェクト標準化チェック処理を実行する（ステップＳ１−５）。具体的には、制御部２１のチェック処理手段２１５は、チェック対象行の記述が、この標準化チェックデータに適合しない記述（標準化違反の記述）か否かを検索する。
【００４８】
そして、標準化違反が検出された場合（ステップＳ１−６において「ＹＥＳ」の場合）には、制御部２１は、違反情報登録処理を実行する（ステップＳ１−７）。具体的には、制御部２１のチェック処理手段２１５は、ステップＳ１−４においてマッチングしていない記述があった場合、又はステップＳ１−５においてチェックデータに適合していない記述があった場合には、違反情報に関するデータをメモリに記録する。この違反情報には、チェック対象行の行番号と、該当する箇所と、違反された標準化の内容とが含まれる。
【００４９】
一方、標準化違反が検出されなかった場合（ステップＳ１−６において「ＮＯ」の場合）には、制御部２１は、読み込んだチェック対象行がＳＱＬ文であるか否かの判定処理を実行する（ステップＳ１−８）。ここで、ＳＱＬ文判定条件データと一致するキーワードがチェック対象行にある場合には、制御部２１のチェック処理手段２１５は、ＳＱＬ文であると判定し、ＳＱＬ文判定フラグを一時的に記録する。チェック処理手段２１５は、このＳＱＬ文判定フラグを、ＳＱＬ文の終了キーワードを検出するまで保持する。そして、チェック処理手段２１５は、ＳＱＬ文判定フラグを記録している場合には、ＳＱＬ文であると判定する。
【００５０】
このようにＳＱＬ文であると判定した場合（ステップＳ１−６において「ＹＥＳ」の場合）には、制御部２１は、ＳＱＬ文マッチング処理を実行する（ステップＳ１−９）。具体的には、制御部２１のチェック処理手段２１５は、ＳＱＬ文影響パターンデータと、チェック対象行の記述とを比較して、ＳＱＬ文影響パターンに一致する記述がチェック対象行にあるか否かを検索する。
【００５１】
次に、チェック処理手段２１５は、学習データ記憶部２５に記録された影響パターンとのマッチング処理を実行する。この場合、確認済データのパターン識別子により特定される検索データについてはマッチング処理を行なわない。具体的には、チェック処理手段２１５は、メモリに一時記憶した環境名及びサブ名を含む確認済データを学習データ記憶部２５から抽出する。チェック処理手段２１５は、抽出した確認済データのパターン識別子を含む影響パターンデータ以外の影響パターンデータを学習データ記憶部２５から抽出する。そして、チェック処理手段２１５は、この抽出した影響パターンデータの検索パターンと、チェック対象行の記述とを比較して、影響パターンに一致する記述がチェック対象行にあるか否かを検索する。
【００５２】
そして、このＳＱＬ文マッチング処理においてマッチングした場合（ステップＳ１−１０において「ＹＥＳ」の場合）には、制御部２１は、エラー情報登録処理を実行する（ステップＳ１−１１）。具体的には、制御部２１のチェック処理手段２１５は、エラー情報をメモリに記録する。このエラー情報には、このチェック対象行の行番号と、一致した検索パターンの記述と、この検索パターンを含む前後所定数の文字（例えば前後１０文字）
とが含まれる。
【００５３】
一方、チェック対象行にＳＱＬ文判定条件データに一致する記述がない場合、又はＳＱＬ文判定フラグが記録されていない場合には、チェック処理手段２１５は、ＳＱＬ文でないと判定する。この場合（ステップＳ１−８において「ＮＯ」の場合）、又はＳＱＬ文マッチング処理でマッチングしなかった場合（ステップＳ１−１０において「ＮＯ」の場合）には、制御部２１は、ループ文であるか否かの判定処理を実行する（ステップＳ１−１２）。ここで、ループ文判定条件データと一致するキーワードがチェック対象行に含まれている場合には、制御部２１のチェック処理手段２１５は、ループ文であると判定し、ループ文判定フラグを一時的に記録する。チェック処理手段２１５は、このループ文判定フラグを、ループ文の終了キーワードを検出するまで保持する。そして、チェック処理手段２１５は、ループ文判定フラグを記録している場合には、ループ文であると判定する。
【００５４】
ここで、ループ文であった場合には、制御部２１は、ループ文マッチング処理を実行する（ステップＳ１−１３）。具体的には、制御部２１のチェック処理手段２１５は、ループ文影響パターンとチェック対象行の記述とを比較して、ループ文影響パターンがチェック対象行に含まれているか否かを検出する。
【００５５】
そして、このループ文マッチング処理においてマッチングした場合（ステップＳ１−１４において「ＹＥＳ」の場合）には、制御部２１は、エラー情報登録処理を実行する（ステップＳ１−１１）。具体的には、制御部２１のチェック処理手段２１５は、エラー情報をメモリに記録する。このエラー情報には、このチェック対象行の行番号と、チェック対象行に含まれている検索パターンの記述と、この記述を含む前後所定数の文字（例えば前後１０文字）のコーディングの記述とが含まれる。
【００５６】
一方、ループ文でない場合（ステップＳ１−１２において「ＮＯ」の場合）、又はループ文マッチング処理でマッチングしなかった場合（ステップＳ１−１４において「ＮＯ」の場合）には、制御部２１は、次の行についてプログラムの読込処理（ステップＳ１−２）を実行し、このステップＳ１−２以降の処理を繰り返して実行する。
【００５７】
そして、プログラムの読込処理において読み込んだチェック対象行が最後であった場合（ステップＳ１−３において「ＹＥＳ」の場合）、制御部２１は、結果出力処理を実行する（ステップＳ１−１５）。ここで、制御部２１のチェック処理手段２１５は、まず、チェック処理で接続したシステム環境の環境名と、処理プログラムのモジュール名と、ステップＳ１−７において記録された違反情報と、ステップＳ１−１１において記録されたエラー情報とを含むチェック結果画面データを生成する。更に、チェック処理手段２１５は、環境名、モジュール名及びエラー情報の行番号を含むハイパーリンク情報をチェック結果画面データに含める。このハイパーリンク情報は、本実施形態では、所定範囲のコーディングを表示するためのコーディング情報取得手段として機能する。そして、チェック処理手段２１５は、生成したチェック結果画面データを作業者端末１０に送信する。作業者端末１０は、チェック結果画面をディスプレイに表示する。
【００５８】
このチェック結果画面には、違反情報とエラー情報とが含まれる。更に、エラー情報の行番号は、クリッカブルに表示されている。ここで、作業者が、エラー情報の行番号を選択すると、作業者端末１０は、コーディング情報取得要求を処理サーバ２０に送信する。このコーディング情報取得要求には、チェック結果画面に含まれる環境名、モジュール名及び選択された行番号とが含められる。
【００５９】
処理サーバ２０の制御部２１は、コーディング情報取得要求に含まれる環境名から特定されるデータベース３０に接続する。制御部２１は、コーディング情報取得要求に含まれ
る環境名及びモジュール名からソースデータ記憶部２２から処理プログラムのソースコードを抽出し、このソースコードのうち、選択された行番号の前後所定行（例えば、前後１０行）の所定範囲のソースコードを抽出する。そして、制御部２１は、抽出したソースコードを含むコーディング情報画面データとしてのチェック詳細画面データを生成して、作業者端末１０に送信する。作業者端末１０は、チェック詳細画面を表示する。作業者は、このチェック詳細画面を用いて、処理プログラムのソースコードの更新を行なう。そして、更新したソースコードをソースデータ記憶部２２に登録する。
【００６０】
（モジュール実行処理）
その後、作業者が、処理プログラムの実行を指示すると、作業者端末１０は、実行する処理プログラムの環境名、サブ名及びモジュール名を含む処理プログラム実行指示依頼を処理サーバ２０の制御部２１に送信する。この場合、処理サーバ２０の制御部２１は、モジュール実行処理を実行する。
【００６１】
このモジュール実行処理において、まず、制御部２１は、取得したモジュール名に対応するソースコードをソースデータ記憶部２２から抽出する。制御部２１は、抽出したソースコードをコンパイルして処理プログラムを実行する。
【００６２】
ここで、ソースコードに動的ＳＱＬが含まれている場合には、ＳＱＬ文の発行処理を実行する。この場合、モジュール実行手段２１１は、公知のように、ＳＱＬ文の解析処理、ＳＱＬ文の書き換え処理及び実行計画の作成処理を実行した後、ＳＱＬ文の実行処理を行なう。ここで、ＳＱＬ文の実行においては、作業者端末１０から取得した環境名から特定されるデータベース３０に記録された処理対象データが用いられる。この場合、ＳＱＬ文の実行処理において、モジュール実行手段２１１は、生成されたＳＱＬ先頭文、アドレス、ハッシュ値、実行に要した実行時間を、ＳＱＬ関連データ記憶部２３に記憶する。更に、モジュール実行手段２１１は、実行計画を作成した場合には、この実行計画に関するデータを実行計画データ記憶部２４に記憶する。
【００６３】
（学習処理）
次に、学習処理について、図３を用いて説明する。
この学習処理において、まず、処理サーバ２０の制御部２１は、チューニング対象ＳＱＬ文の抽出処理を実行する（ステップＳ２−１）。具体的には、制御部２１の学習処理手段２１６は、モジュール実行処理の終了を検出すると、ＳＱＬ関連データ記憶部２３に記録されたＳＱＬ関連データの実行時間としきい値とを比較する。そして、学習処理手段２１６は、しきい値を超過した実行時間を記録したＳＱＬ関連データをチューニング対象として抽出して、メモリに一時記憶する。
【００６４】
次に、制御部２１は、抽出したＳＱＬ文が既に確認済か否かを判断する（ステップＳ２−２）。具体的には、制御部２１の学習処理手段２１６は、モジュール実行処理において取得した環境名及びサブ名に関連付けられている確認済データを学習データ記憶部２５から抽出する。学習処理手段２１６は、抽出した確認済データのパターン識別子を含む影響パターンデータを学習データ記憶部２５から抽出する。そして、学習処理手段２１６は、抽出した影響パターンデータの影響パターンと、ステップＳ２−１においてメモリに記憶したＳＱＬ関連データのＳＱＬ先頭文とを比較する。ここで、抽出した影響パターンがＳＱＬ先頭文に含まれている場合には、このＳＱＬ文は確認済であると判定する。一方、抽出した影響パターンデータと一致しない場合には、このＳＱＬ文は未確認であると判定して、この未確認のＳＱＬ文に関するデータをメモリに一時記憶する。
【００６５】
そして、抽出したＳＱＬ文のすべてが確認済の場合（ステップＳ２−２において「ＹＥＳ」の場合）には、学習処理手段２１６は、既に確認済であるとして処理を終了する。
一方、未確認のＳＱＬ文に関するデータがメモリに一時記憶されている場合（ステップＳ２−２において「ＮＯ」の場合）、学習処理手段２１６は、未確認のチューニング対象ＳＱＬ文の出力処理を実行する（ステップＳ２−３）。具体的には、学習処理手段２１６は、チューニング対象のＳＱＬ情報を一覧表示するためのチューニング画面データを生成する。この場合、学習処理手段２１６は、抽出したＳＱＬ関連データのＳＱＬ先頭文及び実行時間と、実行計画ハイパーリンクとを、未確認のＳＱＬ文の情報としてチューニング画面データに含める。更に、学習処理手段２１６は、各実行計画ハイパーリンクに関連付けて、抽出したＳＱＬ関連データのアドレス及びハッシュ値をチューニング画面データに含める。
【００６６】
そして、学習処理手段２１６は、生成したチューニング画面データを作業者端末１０に送信する。作業者端末１０は、チューニング画面をディスプレイに表示する。このチューニング画面には、未確認のＳＱＬ文の情報が一覧表示されている。更に、このチューニング画面には終了ボタンが含まれている。
【００６７】
ここで、このチューニング画面において、作業者が、実行計画ハイパーリンクを選択した場合、作業者端末１０は、この実行計画ハイパーリンクに関連付けられているアドレス及びハッシュ値を含む実行計画取得依頼を処理サーバ２０に送信する。
【００６８】
次に、処理サーバ２０の制御部２１は、ＳＱＬ文に関連する実行計画の特定処理を実行する（ステップＳ２−４）。具体的には、制御部２１の学習処理手段２１６は、受信したアドレス及びハッシュ値を含む実行計画データを実行計画データ記憶部２４において検索する。ここで、該当する実行計画データを抽出できない場合、制御部２１は、実行計画がない旨の警告メッセージデータを生成して、作業者端末１０に送信する。この場合、作業者端末１０は、警告メッセージをディスプレイに表示する。
【００６９】
一方、該当する実行計画データを抽出できた場合、処理サーバ２０の制御部２１は、影響パターン候補の出力処理を実行する（ステップＳ２−５）。具体的には、制御部２１の学習処理手段２１６は、検索パターン候補画面データとしての実行計画画面データを生成する。学習処理手段２１６は、この実行計画画面データに、環境名とモジュール名と、チューニング画面において表示したＳＱＬ先頭文及び実行時間と、抽出した実行計画データとを含ませる。
【００７０】
ここで、学習処理手段２１６は、チューニング対象ＳＱＬ文に対応する検索パターンが既に登録されているか否かを判断する。具体的には、学習処理手段２１６は、チューニング対象ＳＱＬ文のＳＱＬ先頭文と、学習データ記憶部２５に記憶した検索パターンとを比較し、検索パターンに一致する記述がＳＱＬ先頭文にあるか否かを判断する。この場合、検索パターンが既に登録済の場合には、学習処理手段２１６は、この検索パターンのパターン識別子に関連付けた確認ボタンを実行計画画面データに含める。そして、制御部２１の学習処理手段２１６は、生成した実行計画画面データを作業者端末１０に送信する。作業者端末１０は、検索パターン候補画面としての実行計画画面をディスプレイに表示する。
【００７１】
この実行計画画面には、ＳＱＬ先頭文、実行時間及び実行計画とともに、影響パターン入力欄、登録ボタン及び戻りボタンが含まれている。更に、登録されている検索パターンがこのチューニング対象ＳＱＬ文の記述に含まれていた場合には、この実行計画画面には確認ボタンが含まれる。
【００７２】
ここで、ＳＱＬ先頭文の記述及び実行計画を閲覧した作業者が、このチューニング対象ＳＱＬ文に、パフォーマンスの悪い記述パターン（検索パターン）が含まれていると判断
した場合には、この検索パターンを影響パターン入力欄に入力して、登録ボタンを選択する。この場合、作業者端末１０は、影響パターン登録指示を処理サーバ２０に送信する。この影響パターン登録指示には、環境名とサブ名と、影響パターン入力欄に入力された検索パターンとが含まれる。
【００７３】
そして、影響パターン登録指示を受信した場合（ステップＳ２−６において「ＹＥＳ」の場合）には、処理サーバ２０の制御部２１は、サブ名毎に影響パターンの登録処理を実行する（ステップＳ２−７）。具体的には、制御部２１の学習処理手段２１６は、取得した検索パターンに対してパターン識別子を付与する。学習処理手段２１６は、このパターン識別子と検索パターンとを含む影響パターンデータを学習データ記憶部２５に記憶する。そして、学習処理手段２１６は、ステップＳ２−２においてメモリに一時記憶したＳＱＬ文から、学習データ記憶部２５に登録した検索パターンの記述を含むＳＱＬ文を除いた未確認のＳＱＬ文を特定する。更に、学習処理手段２１６は、特定したＳＱＬ文に関するデータを用いて、ステップＳ２−３と同様に、チューニング画面データを生成して、作業者端末１０に送信する。作業者端末１０は、再び、チューニング対象ＳＱＬ画面を表示する。
【００７４】
一方、確認ボタンが含まれた実行計画画面が表示されている場合に、パフォーマンスの悪い記述パターンが含まれていないと判断した作業者は、この確認ボタンを選択する。この場合、作業者端末１０は、確認済指示を処理サーバ２０に送信する。この確認済指示には、環境名とモジュール名と、確認ボタンに関連付けられたパターン識別子とが含まれる。
【００７５】
そして、確認済指示を受信した場合（ステップＳ２−６において「ＮＯ」の場合）には、処理サーバ２０の制御部２１は、確認済データの登録処理を実行する（ステップＳ２−８）。具体的には、制御部２１の学習処理手段２１６は、確認済指示に含まれる環境名、サブ名及びパターン識別子を含む確認済データを学習データ記憶部２５に記憶する。そして、学習処理手段２１６は、チューニング画面データを生成して作業者端末１０に送信し、作業者端末１０のディスプレイにチューニング画面を表示させる。この場合、ステップＳ２−７において登録した影響パターンを有するＳＱＬ文に関するデータは、チューニング画面に表示されない。
【００７６】
なお、確認ボタンが含まれていない実行計画画面の実行計画を閲覧した作業者が、パフォーマンスの悪い記述パターンが含まれていないと判断した場合には、実行計画画面の戻りボタンを選択する。この場合、作業者端末１０は、チューニング画面要求を処理サーバ２０に行なう。このチューニング画面要求を受信した処理サーバ２０の制御部２１は、ＳＱＬ文の出力処理を実行し（ステップＳ２−３）、これ以降の処理を繰り返して行なう。なお、このＳＱＬ文の出力処理の実行においては、制御部２１は、メモリに一時記憶した未確認のＳＱＬ文に関するデータを含むチューニング画面データを生成する。そして、チューニング対象ＳＱＬ画面の終了ボタンが選択されると、学習処理手段２１６は、学習処理を終了する。
【００７７】
本実施形態によれば、以下のような効果を得ることができる。
・  本実施形態では、ＳＱＬ文であると判定した場合（ステップＳ１−８において「ＹＥＳ」）、処理サーバ２０の制御部２１は、ＳＱＬ文マッチング処理を実行する（ステップＳ１−９）。この場合、制御部２１は、ＳＱＬ文影響パターンデータと、チェック対象行の記述とを比較して、ＳＱＬ文影響パターンに一致する記述がチェック対象行にあるか否かを検索する。更に、制御部２１は、学習データ記憶部２５に記録された影響パターンとのマッチング処理を実行する。そして、このＳＱＬ文マッチング処理においてマッチングした場合（ステップＳ１−１０において「ＹＥＳ」の場合）には、制御部２１は、エラ
ー情報登録処理を実行する（ステップＳ１−１１）。その後、処理結果出力処理（ステップＳ１−１５）において、制御部２１は、チェック対象行に含まれている検索パターンの記述を含むエラー情報を含むチェック結果画面データを作業者端末１０に送信する。このため、チェック結果画面を閲覧することにより、作業者は、処理プログラムのコーディングに、パフォーマンスに影響するＳＱＬ文の記述があるか否かを容易に把握することができる。従って、作業者は、ＳＱＬ文のチューニングを効率よく行なうことができる。
【００７８】
・  本実施形態では、制御部２１は、作業者端末１０からコーディング情報取得要求を受信した処理サーバ２０の制御部２１は、処理プログラムのソースコードを抽出し、このうち所定範囲のソースコードを含むチェック詳細画面データを生成して、作業者端末１０に送信する。このチェック詳細画面には、チェック処理で検出された記述と、この記述の前後所定行の所定範囲のソースコードが表示される。このため、作業者は、検出された記述とともにその前後の記述を閲覧することができるので、コーディングを効率よくチューニングすることができる。
【００７９】
・  本実施形態では、制御部２１は、しきい値を超過した実行時間のＳＱＬ文をチューニング対象として抽出し、これを用いて未確認のチューニング対象ＳＱＬ文の出力処理を実行する（ステップＳ２−３）。この場合、制御部２１は、抽出したＳＱＬ関連データのＳＱＬ先頭文及び実行時間とを含めたチューニング画面データを生成し、作業者端末１０に送信する。作業者端末１０は、実行時間が長かったＳＱＬ文のＳＱＬ先頭文を含むチューニング画面をディスプレイに表示する。このため、作業者は、実際の実行時間が長くパフォーマンスの悪いＳＱＬ文を効率よく把握することができる。
【００８０】
・  本実施形態では、制御部２１は、各実行計画ハイパーリンクに関連付けて、抽出したＳＱＬ関連データのアドレス及びハッシュ値を含むチューニング画面データを生成して、作業者端末１０に送信する。チューニング画面において実行計画ハイパーリンクが選択された場合、作業者端末１０は、これに関連付けられているアドレス及びハッシュ値を含む実行計画取得依頼を処理サーバ２０に送信する。処理サーバ２０の制御部２１は、ＳＱＬ文に関連する実行計画の特定処理を実行し（ステップＳ２−４）、実行計画データを含む影響パターン候補の出力処理を実行する。このため、作業者は、パフォーマンスの悪いＳＱＬ文の実行計画を閲覧することにより、効率よくチューニングすることができる。
【００８１】
・  本実施形態では、実行計画画面においてチューニング対象ＳＱＬ文に、パフォーマンスの悪い記述パターンが含まれている場合には、この検索パターンを影響パターン入力欄に入力された後に、登録ボタンが選択される。作業者端末１０は、影響パターン登録指示を処理サーバ２０に送信する。この場合（ステップＳ２−６において「ＹＥＳ」の場合）、処理サーバ２０の制御部２１は、サブ名毎に影響パターンの登録処理を実行する（ステップＳ２−７）。具体的には、制御部２１は、取得した検索パターンに対してパターン識別子を付与し、このパターン識別子と検索パターンとを含む影響パターンデータを学習データ記憶部２５に記憶する。また、チェック処理のＳＱＬ文マッチング処理（ステップＳ１−９）において、制御部２１は、学習データ記憶部２５に記録された影響パターンとのマッチング処理を実行する。このため、制御部２１は、パフォーマンスの悪い検索パターンが新たに登録された場合には、これも用いてチェック処理が行なわれるので、検索パターンの情報共有を迅速に行なうことができる。
【００８２】
・  本実施形態では、影響パターン候補の出力処理（ステップＳ２−５）において、チューニング対象ＳＱＬ文に対応する検索パターンが既に登録されている場合、制御部２１は、この検索パターンのパターン識別子に関連付けた確認ボタンを含めたチェック実行計画画面データを作業者端末１０に送信して、チェック実行計画画面を表示させる。この場合、パフォーマンスの悪い記述パターンが含まれていないために、確認ボタンが選択され
ると、作業者端末１０は、確認済指示を処理サーバ２０に送信する。確認済指示を受信した場合（ステップＳ２−６において「ＮＯ」の場合）には、処理サーバ２０の制御部２１は、確認済データの登録処理を実行する（ステップＳ２−８）。その後、チェック処理のＳＱＬ文マッチング処理（ステップＳ１−９）において、制御部２１は、学習データ記憶部２５に記録された影響パターンとのマッチング処理を実行する。この場合、確認済データのパターン識別子により特定される検索データについてはマッチング処理を行なわない。このため、確認済データの確認済条件においてパフォーマンスに影響がないと作業者が許容した記述については、以降のチェック処理において検出されない。従って、同じモジュール名の処理プログラムであっても、システム環境やサブシステムに応じて、より適切な検索パターンを用いて、パフォーマンスに影響するＳＱＬ文の記述を容易に把握することができる。
【００８３】
・  本実施形態では、制御部２１は、プロジェクト標準化マッチング処理を実行し（ステップＳ１−４）、プロジェクト標準化チェック処理を実行する（ステップＳ１−５）。そして、標準化違反が検出された場合（ステップＳ１−６において「ＹＥＳ」の場合）には、制御部２１は、違反情報登録処理を実行する（ステップＳ１−７）。更に、ループ文であった場合には、パフォーマンス影響パターン（コード）マッチング処理を実行し（ステップＳ１−１３）、マッチングした場合（ステップＳ１−１４において「ＹＥＳ」の場合）には、制御部２１は、エラー情報登録処理を実行する（ステップＳ１−１１）。このため、ＳＱＬ文に限らず、プロジェクトの標準化に違反した記述やループ文においてパフォーマンスが悪い記述についてもチェックすることができる。
【００８４】
また、上記実施形態は以下のように変更してもよい。
○  上記実施形態においては、制御部２１は、作業者端末１０からチェック詳細画面要求を取得すると、処理プログラムのソースコードのうち、選択された行番号の前後所定行（例えば、前後１０行）の範囲を抽出し、これを含むチェック詳細画面データを生成して作業者端末１０に送信した。これに限らず、チェック詳細画面に含まれる前後所定行の行数を、抽出した検索パターンに応じて変更してもよい。具体的には、チェック処理手段２１５に、ＳＱＬ文の記述と、これを対応して抽出する行数（抽出行数）とを含ませたＳＱＬ文影響パターンデータを記憶させておく。あるいは、抽出行数を関連付けた影響パターンデータを学習データ記憶部２５に記憶させてもよい。そして、制御部２１は、エラー情報登録処理（ステップＳ１−１１）において、一致した検索パターンの記述に対応する抽出行数を取得してエラー情報に関連付ける。制御部２１は、チェック結果画面データのハイパーリンク情報に、エラー情報に関連付けた抽出行数も含ませておく。作業者端末１０は、この抽出行数を含むコーディング情報取得要求を行なう。処理サーバ２０の制御部２１は、抽出したソースコードのうち、選択された行番号を含み、この行番号に対して抽出行数に対応する範囲のソースコードを抽出する。そして、制御部２１は、抽出した行を含むチェック詳細画面データを生成して作業者端末１０に送信する。これにより、検索パターンに応じて、表示するチェック詳細画面のコーディングの範囲が変更されるので、チューニングに必要な記述を効率よく把握することができる。
【００８５】
○  上記実施形態において、確認済データの確認済条件として、システム環境とサブシステムとの組み合わせを確認済条件として用いた。確認済条件は、これに限られない。例えば、環境名とモジュール名とを組み合わせて用いてもよい。また、環境名、サブ名及び作業者を組み合わせて用いてもよい。この場合、チェック処理又は学習処理において、作業者端末１０からアクセスがあった場合、処理サーバ２０の制御部２１は、作業者端末１０においてログイン処理を行なった作業者を特定する作業者識別子を取得する。また、確認済データに、作業者識別子を記録する作業者識別子データ領域を設ける。そして、確認済フラグの登録処理（ステップＳ２−８）において、処理サーバ２０の制御部２１は、確認済指示に含まれる環境名、サブ名、作業者識別子及びパターン識別子を含む確認済デー
タを学習データ記憶部２５に記憶する。その後、ＳＱＬ文マッチング処理（ステップＳ１−９）において、制御部２１は、この環境名、サブ名、及び作業者端末１０から取得した作業者識別子を含む確認済データを抽出する。制御部２１は、この確認済データのパターン識別子を含む影響パターンデータ以外の影響パターンデータを抽出し、この影響パターンに一致する記述がチェック対象行にあるか否かを検索する。これにより、作業者に応じて抽出される影響パターンを変更することができる。このため、コーディングチェックを行なう作業者の知識や癖等に応じて作業者に適した確認済データを登録すれば、作業者によるばらつきの少ない、良好なパフォーマンスの記述に変更することができる。
【００８６】
○  上記実施形態においては、制御部２１は、ＳＱＬ先頭文の記述に検索パターンが含まれていた場合には、この検索パターンのパターン識別子に関連付けた確認ボタンを実行計画画面データに含めた。この場合、登録されている検索パターンがこのチューニング対象ＳＱＬ文の記述に含まれている場合には、この検索パターンを実行計画画面データに含めてもよい。これにより、実行計画画面には、ＳＱＬ先頭文とともに、登録されている検索パターンが表示される。このため、実行時間が長くパフォーマンスが悪いＳＱＬ文に、登録されている検索パターン以外の他の検索パターンが入っているか否かを効率よく把握することができる。
【００８７】
○  上記実施形態においては、チューニング対象ＳＱＬ情報と、各ＳＱＬの実行計画とを別々に表示した。これに限らず、チューニング対象ＳＱＬ情報と、ＳＱＬの実行計画とを同じ画面に含めてもよい。例えば、チューニング対象ＳＱＬ文が少ない場合（例えば１又は２つの場合）には、チューニング対象ＳＱＬ情報を容易に把握することができる。具体的には、未確認のチューニング対象のＳＱＬが１又は２であった場合、制御部２１は、これに関連する実行計画データを、アドレス及びハッシュ値に基づいて実行計画データ記憶部２４から抽出する。そして、制御部２１は、チューニング対象ＳＱＬ画面データを生成する代わりに、チューニング対象ＳＱＬ画面において表示したＳＱＬ先頭文及び実行時間と、抽出した実行計画データとを含むチェック実行計画画面データを生成して、作業者端末１０に送信する。
【図面の簡単な説明】
【００８８】
【図１】実施形態におけるシステムの概略図。
【図２】チェック処理の処理手順を説明するための流れ図。
【図３】学習処理の処理手順を説明するための流れ図。
【符号の説明】
【００８９】
１０…作業者端末、２０…処理サーバ、２１…制御部、２２…ソースデータ記憶部、２３…ＳＱＬ関連データ記憶部、２４…実行計画データ記憶部、２５…学習データ記憶部、３０…データベース、２１１…モジュール実行手段、２１５…チェック処理手段、２１６…学習処理手段。
【図１】
2009258913.tif 000003
【図２】
2009258913.tif 000004
【図３】
2009258913.tif 000005