(57)【要約】【課題】  データベース(DB)アクセスに対するモニタリング、チューニングをサービス単位で行えるようにする。【解決手段】  DBアクセス手段1は、利用者端末からサービス名を含む処理要求が入力されると、サービスを構成する各コンポーネントA,B,Cを順次実行し、実行中のコンポーネントに対する変更SQL文が上記サービス名に対応付けて格納部3に格納されている場合は、変更SQL文に従ってDBアクセスを行い、格納されていない場合は、コンポーネント中のSQL文に従ってDBアクセスを行う。また、その処理時間などを利用者端末とのセッションIDとサービス名によって特定される統計情報として格納部4に格納する。モニタリング／チューニング制御部２は、サービス名、コンポーネント名、変更SQL文を含むSQL変更指示が入力されると、それらを格納部3に格納する。【選択図】      図１
2006277179.tif 000002
【特許請求の範囲】
【請求項１】
コンポーネント制御情報格納部と、
統計情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントのコンポーネント名と前記サービス名とに対応付けて前記コンポーネント制御情報格納部に変更ＳＱＬ文が格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記利用者端末との間のセッションＩＤ及び前記サービス名によって特定される統計情報として前記変更ＳＱＬ文、その処理時間および前記コンポーネント名を追加し、変更ＳＱＬ文が格納されていない場合は、前記コンポーネント中のＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記セッションＩＤ及び前記サービス名によって特定される統計情報として前記ＳＱＬ文、その処理時間および前記コンポーネント名を追加するデータベースアクセス手段とを備えたことを特徴とするデータベースチューニング装置。
【請求項２】
コンポーネント制御情報格納部と、
統計情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力すると共に、前記セッションＩＤおよび前記サービス名からなるセッション情報を含んだ統計情報を前記統計情報格納部に格納するコンポーネント実行制御部と、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、前記データベースアクセス要求に含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記変更ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加し、前記データベースアクセス要求に含まれているＳＱＬ文に対応する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されていない場合は、前記ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加するデータベースアクセス制御部とを備えたことを特徴とするデータベースチューニング装置。
【請求項３】
サービス名を含むサービス情報に対応付けて、前記サービス名によって特定されるサービスを構成する複数のコンポーネントそれぞれのコンポーネント情報であって、コンポーネントを特定するコンポーネント名を含むコンポーネント情報が格納されたコンポーネント制御情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示に従って、前記コンポーネント制御情報格納部に格納されているコンポーネント情報の内の該当するコンポーネント情報に前記変更ＳＱＬ文を追加するモニタリング／チューニング制御部と、
統計情報格納部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記コンポーネント制御情報格納部を参照して前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力すると共に、前記セッションＩＤおよび前記サービス名からなるセッション情報を含んだ統計情報を前記統計情報格納部に格納するコンポーネント実行制御部と、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、前記コンポーネント制御情報格納部に格納されているコンポーネント情報の内の、前記データベースアクセス要求によって特定されるコンポーネント情報に変更ＳＱＬ文が含まれている場合は、該変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記変更ＳＱＬ文、その処理時間および前記データベースアクセス要求中のコンポーネント名を追加し、変更ＳＱＬ文が含まれていない場合は、前記データベースアクセス要求に含まれているＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記ＳＱＬ文、その処理時間および前記データベースアクセス要求中のコンポーネント名を追加するデータベースアクセス制御部とを備えたことを特徴とするデータベースチューニング装置。
【請求項４】
コンポーネント制御情報格納部と、
統計情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記利用者端末とのセッションを特定するセッションＩＤと前記サービス名とからなるセッション情報を含んだ統計情報を前記統計情報格納部に格納する処理を行うと共に、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、ＳＱＬ文が変更されているコンポーネントについては、前記コンポーネント制御情報格納部に格納されている該当する変更ＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力し、ＳＱＬ文が変更されていないコンポーネントについては、前記ＳＱＬ文、前記コンポーネントのコンポーネント名、前記セッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力する処理を行うコンポーネント実行制御部と、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、該データベースアクセス要求に含まれているＳＱＬ文或いは変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記ＳＱＬ文或いは変更ＳＱＬ文、その処理時間および前記データベースアクセス要求中のコンポーネント名を追加するデータベースアクセス制御部とを備えたことを特徴とするデータベースチューニング装置。
【請求項５】
サービス名を含むサービス情報に対応付けて、前記サービス名によって特定されるサービスを構成する複数のコンポーネントそれぞれのコンポーネント情報であって、コンポーネントを特定するコンポーネント名を含むコンポーネント情報が格納されたコンポーネント制御情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示に従って、前記コンポーネント制御情報格納部に格納されているコンポーネント情報の内の該当するコンポーネント情報に前記変更ＳＱＬ文を追加するモニタリング／チューニング制御部と、
統計情報格納部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記利用者端末とのセッションを特定するセッションＩＤと前記サービス名とからなるセッション情報を含んだ統計情報を前記統計情報格納部に格納する処理を行うと共に、前記コンポーネント制御情報格納部を参照して前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに対応するコンポーネント情報に変更ＳＱＬ文が含まれている場合は、該変更ＳＱＬ文、前記コンポーネントのコンポーネント名、前記セッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力し、前記コンポーネント情報に変更ＳＱＬ文が含まれていない場合は、前記コンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記セッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力するコンポーネント実行制御部と、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、該データベースアクセス要求に含まれているＳＱＬ文或いは変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記ＳＱＬ文或いは変更ＳＱＬ文と、その処理時間と、前記データベースアクセス要求中のコンポーネント名とを追加するデータベースアクセス制御部とを備えたことを特徴とするデータベースチューニング装置。
【請求項６】
コンポーネント制御情報格納部と、
統計情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力すると共に、前記セッションＩＤおよび前記サービス名からなるセッション情報を含んだ統計情報を前記統計情報格納部に格納するコンポーネント実行制御部と、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、前記データベースアクセス要求に含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行い、前記データベースアクセス要求に含まれているＳＱＬ文に対応する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されていない場合は、前記ＳＱＬ文に従ってデータベースアクセスを行うデータベースアクセス制御部とを備え、且つ、
前記コンポーネント実行制御部で実行されるコンポーネントが、自コンポーネントに含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されている場合は、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記変更ＳＱＬ文、その処理時間および自コンポーネントのコンポーネント名を追加し、自コンポーネントに含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されていない場合は、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記ＳＱＬ文、その処理時間および自コンポーネントのコンポーネント名を追加する構成を有することを特徴とするデータベースチューニング装置。
【請求項７】
請求項３または５記載のデータベースチューニング装置において、
前記コンポーネント制御情報格納部に格納されている各サービス情報が、そのサービス情報によって特定されるサービスの許容処理時間を示すサービス閾値を含み、
前記モニタリング／チューニング制御部が、前記統計情報格納部に格納されている統計情報と、前記コンポーネント制御情報格納部に格納されている各サービス毎のサービス閾値とに基づいて、処理時間が該当するサービス閾値を超えたサービスの発生を検出する構成を有することを特徴とするデータベースチューニング装置。
【請求項８】
請求項７記載のデータベースチューニング装置において、
前記モニタリング／チューニング制御部が、処理時間が該当するサービス閾値を超えたサービスの発生を検出したとき、外部装置にそのことを通知するイベント処理部を備えたことを特徴とするデータベースチューニング装置。
【請求項９】
モニタリング／チューニング制御部が、サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納し、
データベースアクセス手段が、利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントのコンポーネント名と前記サービス名とに対応付けて前記コンポーネント制御情報格納部に変更ＳＱＬ文が格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記利用者端末との間のセッションＩＤ及び前記サービス名によって特定される統計情報として前記変更ＳＱＬ文、その処理時間および前記コンポーネント名を追加し、変更ＳＱＬ文が格納されていない場合は、前記コンポーネント中のＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記セッションＩＤ及び前記サービス名によって特定される統計情報として前記ＳＱＬ文、その処理時間および前記コンポーネント名を追加することを特徴とするデータベースチューニング方法。
【請求項１０】
モニタリング／チューニング制御部が、サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納し、
コンポーネント実行制御部が、利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力すると共に、前記セッションＩＤおよび前記サービス名からなるセッション情報を含んだ統計情報を統計情報格納部に格納し、
データベースアクセス制御部が、前記コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、前記データベースアクセス要求に含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記変更ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加し、前記データベースアクセス要求に含まれているＳＱＬ文に対応する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されていない場合は、前記ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加することを特徴とするデータベースチューニング方法。
【請求項１１】
モニタリング／チューニング制御部が、サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納し、
コンポーネント実行制御部が、利用者端末からサービス名を含む処理要求が入力されたとき、前記利用者端末とのセッションを特定するセッションＩＤと前記サービス名とからなるセッション情報を含んだ統計情報を統計情報格納部に格納する処理を行うと共に、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、ＳＱＬ文が変更されているコンポーネントについては、前記コンポーネント制御情報格納部に格納されている該当する変更ＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力し、ＳＱＬ文が変更されていないコンポーネントについては、前記ＳＱＬ文、前記コンポーネントのコンポーネント名、前記セッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力する処理を行い、
データベースアクセス制御部が、前記コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、該データベースアクセス要求に含まれているＳＱＬ文或いは変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記ＳＱＬ文或いは変更ＳＱＬ文、その処理時間および前記データベースアクセス要求中のコンポーネント名を追加することを特徴とするデータベースチューニング方法。
【請求項１２】
コンポーネント制御情報格納部と、統計情報格納部とを備えたコンピュータを、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部、
利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントのコンポーネント名と前記サービス名とに対応付けて前記コンポーネント制御情報格納部に変更ＳＱＬ文が格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記利用者端末との間のセッションＩＤ及び前記サービス名によって特定される統計情報として前記変更ＳＱＬ文、その処理時間および前記コンポーネント名を追加し、変更ＳＱＬ文が格納されていない場合は、前記コンポーネント中のＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記セッションＩＤ及び前記サービス名によって特定される統計情報として前記ＳＱＬ文、その処理時間および前記コンポーネント名を追加するデータベースアクセス手段として機能させるためのプログラム。
【請求項１３】
コンポーネント制御情報格納部と、統計情報格納部とを備えたコンピュータを、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部、
利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力すると共に、前記セッションＩＤおよび前記サービス名からなるセッション情報を含んだ統計情報を前記統計情報格納部に格納するコンポーネント実行制御部、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、前記データベースアクセス要求に含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記変更ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加し、前記データベースアクセス要求に含まれているＳＱＬ文に対応する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されていない場合は、前記ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加するデータベースアクセス制御部として機能させるためのプログラム。
【請求項１４】
コンポーネント制御情報格納部と、統計情報格納部とを備えたコンピュータを、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部、
利用者端末からサービス名を含む処理要求が入力されたとき、前記利用者端末とのセッションを特定するセッションＩＤと前記サービス名とからなるセッション情報を含んだ統計情報を前記統計情報格納部に格納する処理を行うと共に、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、ＳＱＬ文が変更されているコンポーネントについては、前記コンポーネント制御情報格納部に格納されている該当する変更ＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力し、ＳＱＬ文が変更されていないコンポーネントについては、前記ＳＱＬ文、前記コンポーネントのコンポーネント名、前記セッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力する処理を行うコンポーネント実行制御部、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、該データベースアクセス要求に含まれているＳＱＬ文或いは変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記ＳＱＬ文或いは変更ＳＱＬ文、その処理時間および前記データベースアクセス要求中のコンポーネント名を追加するデータベースアクセス制御部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースアクセスのチューニング技術に関し、特に、サービス単位でデータベースアクセスをモニタリングし、モニタリング結果に基づいてデータベースアクセスをチューニングするチューニング技術に関する。
【背景技術】
【０００２】
従来からデータベースシステムにおいては、データベースアクセスをモニタリングし、モニタリング結果に基づいてデータベースアクセスをチューニングするということが行われている。
【０００３】
従来のこの種の技術としては、例えば、リレーショナルデータベースと、ＳＱＬ(Structured Query Language)によるデータアクセスを可能にする実行部と、リレーショナルデータベースの動作状況を監視する監視部と、監視部による監視結果を統計情報として格納する統計情報部と、ＳＱＬを使用したプログラムのソースコードと、ソースコードを実行形式のプログラムに変換するコンパイラと、リレーショナルデータベースを定義するインデックスを含むスクリプトと、リレーショナルデータベースの動作を制御するパラメタと、上記統計情報部に格納された統計情報を評価データベースを用いて評価し、その評価結果に基づいて、上記ソースコード、スクリプト及びパラメタの内の少なくとも１つを改善のために書き換える評価部を備えたものが知られている（例えば、特許文献１参照）。
【０００４】
また、データベースアクセスに対するモニタリング技術として、ＳＱＬ文単位でクライアントからデータベースサーバに問い合わせが届くまでの時間、データベースサーバにおける処理時間、ディスクＩ／Ｏ時間、データベースサーバからクライアントに結果が届くまでの時間をモニタリングする技術も従来から知られている（例えば、特許文献２参照）。
【０００５】
また、データベースに対するモニタリング，チューニング技術ではないが、サービス単位で処理時間を算出する技術も知られている（例えば、特許文献３参照）。
【特許文献１】特開２００２−３６６４０２号公報
【特許文献２】特開２００４−５０８５号公報
【特許文献３】特開平６−２４３０９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、特許文献１，２に記載されている従来の技術は、ＳＱＬ文単位（データベースアクセス単位）で、モニタリングやチューニングを行っているため、チューニング箇所の絞り込みに時間がかかるという問題点があると共に、チューニング作業が多くのサービスに悪影響を及ぼす可能性があるという問題があった。
【０００７】
例えば、高速処理が要求されないサービスでのみ用いられるＳＱＬ文があった場合、上記ＳＱＬ文の処理に時間がかかったとしても、上記ＳＱＬ文をチューニング（変更）する必要はない。しかし、ＳＱＬ文単位でモニタリングを行っている場合は、管理者などが人手で、上記ＳＱＬ文を用いているサービスとしてはどのようなサービスがあるのかを調べ、更に、そのサービスが高速処理を要求しているサービスなのか否かを調べなければ、上記ＳＱＬ文に対してチューニングが必要であるか否かを判断できず、管理者などに多くの負担がかかってしまう。
【０００８】
また、上記の例とは反対に、高速処理が要求されているサービスでのみ用いられるＳＱＬ文があった場合、もし、上記ＳＱＬ文の処理に時間がかかるようであれば、直ちに上記ＳＱＬ文をチューニングすることが必要になる。しかし、この場合も、管理者などが人手で、チューニングが必要であるか否かを判断しなければならないため、迅速なチューニング作業を行うことが困難である。
【０００９】
また、例えば、高速処理が要求されているサービスｘと、高速処理が要求されていないサービスｙとの両方から利用されるＳＱＬ文があった場合、もし、上記ＳＱＬ文の処理に時間がかかるようであれば、上記ＳＱＬ文をチューニングすることが必要になる。しかし、この場合も、管理者などが人手でチューニングが必要であるか否かを判断しなければならないため、迅速なチューニング作業を行うことが困難である。また、上記ＳＱＬ文のチューニング作業時に、高速処理が要求されているサービスｘに対して何らかの悪影響（例えば、サービスｘが利用できなくなる）を及ぼすのは仕方がないとしても、高速処理が要求されていないサービスｙに対しても悪影響を及ぼす可能性があるという問題もある。
【００１０】
〔発明の目的〕
そこで、本発明の目的は、データベースアクセスに対するモニタリング及びチューニングをサービス単位で行えるようにすることにある。
【課題を解決するための手段】
【００１１】
本発明にかかる第１のデータベースチューニング装置は、
コンポーネント制御情報格納部と、
統計情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントのコンポーネント名と前記サービス名とに対応付けて前記コンポーネント制御情報格納部に変更ＳＱＬ文が格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記利用者端末との間のセッションＩＤ及び前記サービス名によって特定される統計情報として前記変更ＳＱＬ文、その処理時間および前記コンポーネント名を追加し、変更ＳＱＬ文が格納されていない場合は、前記コンポーネント中のＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記セッションＩＤ及び前記サービス名によって特定される統計情報として前記ＳＱＬ文、その処理時間および前記コンポーネント名を追加するデータベースアクセス手段とを備えたことを特徴とする。
【００１２】
本発明にかかる第２のデータベースチューニング装置は、
コンポーネント制御情報格納部と、
統計情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力すると共に、前記セッションＩＤおよび前記サービス名からなるセッション情報を含んだ統計情報を前記統計情報格納部に格納するコンポーネント実行制御部と、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、前記データベースアクセス要求に含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記変更ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加し、前記データベースアクセス要求に含まれているＳＱＬ文に対応する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されていない場合は、前記ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加するデータベースアクセス制御部とを備えたことを特徴とする。
【００１３】
本発明にかかる第３のデータベースチューニング装置は、
サービス名を含むサービス情報に対応付けて、前記サービス名によって特定されるサービスを構成する複数のコンポーネントそれぞれのコンポーネント情報であって、コンポーネントを特定するコンポーネント名を含むコンポーネント情報が格納されたコンポーネント制御情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示に従って、前記コンポーネント制御情報格納部に格納されているコンポーネント情報の内の該当するコンポーネント情報に前記変更ＳＱＬ文を追加するモニタリング／チューニング制御部と、
統計情報格納部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記コンポーネント制御情報格納部を参照して前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力すると共に、前記セッションＩＤおよび前記サービス名からなるセッション情報を含んだ統計情報を前記統計情報格納部に格納するコンポーネント実行制御部と、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、前記コンポーネント制御情報格納部に格納されているコンポーネント情報の内の、前記データベースアクセス要求によって特定されるコンポーネント情報に変更ＳＱＬ文が含まれている場合は、該変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記変更ＳＱＬ文、その処理時間および前記データベースアクセス要求中のコンポーネント名を追加し、変更ＳＱＬ文が含まれていない場合は、前記データベースアクセス要求に含まれているＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記ＳＱＬ文、その処理時間および前記データベースアクセス要求中のコンポーネント名を追加するデータベースアクセス制御部とを備えたことを特徴とする。
【００１４】
本発明にかかる第４のデータベースチューニング装置は、
コンポーネント制御情報格納部と、
統計情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記利用者端末とのセッションを特定するセッションＩＤと前記サービス名とからなるセッション情報を含んだ統計情報を前記統計情報格納部に格納する処理を行うと共に、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、ＳＱＬ文が変更されているコンポーネントについては、前記コンポーネント制御情報格納部に格納されている該当する変更ＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力し、ＳＱＬ文が変更されていないコンポーネントについては、前記ＳＱＬ文、前記コンポーネントのコンポーネント名、前記セッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力する処理を行うコンポーネント実行制御部と、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、該データベースアクセス要求に含まれているＳＱＬ文或いは変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記ＳＱＬ文或いは変更ＳＱＬ文、その処理時間および前記データベースアクセス要求中のコンポーネント名を追加するデータベースアクセス制御部とを備えたことを特徴とする。
【００１５】
本発明にかかる第５のデータベースチューニング装置は、
サービス名を含むサービス情報に対応付けて、前記サービス名によって特定されるサービスを構成する複数のコンポーネントそれぞれのコンポーネント情報であって、コンポーネントを特定するコンポーネント名を含むコンポーネント情報が格納されたコンポーネント制御情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示に従って、前記コンポーネント制御情報格納部に格納されているコンポーネント情報の内の該当するコンポーネント情報に前記変更ＳＱＬ文を追加するモニタリング／チューニング制御部と、
統計情報格納部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記利用者端末とのセッションを特定するセッションＩＤと前記サービス名とからなるセッション情報を含んだ統計情報を前記統計情報格納部に格納する処理を行うと共に、前記コンポーネント制御情報格納部を参照して前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに対応するコンポーネント情報に変更ＳＱＬ文が含まれている場合は、該変更ＳＱＬ文、前記コンポーネントのコンポーネント名、前記セッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力し、前記コンポーネント情報に変更ＳＱＬ文が含まれていない場合は、前記コンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記セッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力するコンポーネント実行制御部と、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、該データベースアクセス要求に含まれているＳＱＬ文或いは変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記ＳＱＬ文或いは変更ＳＱＬ文と、その処理時間と、前記データベースアクセス要求中のコンポーネント名とを追加するデータベースアクセス制御部とを備えたことを特徴とする。
【００１６】
本発明にかかる第６のデータベースチューニング装置は、
コンポーネント制御情報格納部と、
統計情報格納部と、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部と、
利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力すると共に、前記セッションＩＤおよび前記サービス名からなるセッション情報を含んだ統計情報を前記統計情報格納部に格納するコンポーネント実行制御部と、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、前記データベースアクセス要求に含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行い、前記データベースアクセス要求に含まれているＳＱＬ文に対応する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されていない場合は、前記ＳＱＬ文に従ってデータベースアクセスを行うデータベースアクセス制御部とを備え、且つ、
且つ前記コンポーネント実行制御部で実行されているコンポーネントが、自コンポーネントに含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されている場合は、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記変更ＳＱＬ文、その処理時間および自コンポーネントのコンポーネント名を追加し、自コンポーネントに含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されていない場合は、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記ＳＱＬ文、その処理時間および自コンポーネントのコンポーネント名を追加する構成を有することを特徴とする。
【００１７】
本発明にかかる第７のデータベースチューニング装置は、第３または第５のデータベースチューニング装置において、
前記コンポーネント制御情報格納部に格納されている各サービス情報が、そのサービス情報によって特定されるサービスの許容処理時間を示すサービス閾値を含み、
前記モニタリング／チューニング制御部が、前記統計情報格納部に格納されている統計情報と、前記コンポーネント制御情報格納部に格納されている各サービス毎のサービス閾値とに基づいて、処理時間が該当するサービス閾値を超えたサービスの発生を検出する構成を有することを特徴とする。
【００１８】
本発明にかかる第８のデータベースチューニング装置は、第７のデータベースチューニング装置において、
前記モニタリング／チューニング制御部が、処理時間が該当するサービス閾値を超えたサービスの発生を検出したとき、外部装置にそのことを通知するイベント処理部を備えたことを特徴とする
【００１９】
本発明にかかる第１のデータベースチューニング方法は、
モニタリング／チューニング制御部が、サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納し、
データベースアクセス手段が、利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントのコンポーネント名と前記サービス名とに対応付けて前記コンポーネント制御情報格納部に変更ＳＱＬ文が格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記利用者端末との間のセッションＩＤ及び前記サービス名によって特定される統計情報として前記変更ＳＱＬ文、その処理時間および前記コンポーネント名を追加し、変更ＳＱＬ文が格納されていない場合は、前記コンポーネント中のＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記セッションＩＤ及び前記サービス名によって特定される統計情報として前記ＳＱＬ文、その処理時間および前記コンポーネント名を追加することを特徴とする。
【００２０】
本発明にかかる第２のデータベースチューニング方法は、
モニタリング／チューニング制御部が、サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納し、
コンポーネント実行制御部が、利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力すると共に、前記セッションＩＤおよび前記サービス名からなるセッション情報を含んだ統計情報を統計情報格納部に格納し、
データベースアクセス制御部が、前記コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、前記データベースアクセス要求に含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記変更ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加し、前記データベースアクセス要求に含まれているＳＱＬ文に対応する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されていない場合は、前記ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加することを特徴とする。
【００２１】
本発明にかかる第３のデータベースチューニング方法は、
モニタリング／チューニング制御部が、サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納し、
コンポーネント実行制御部が、利用者端末からサービス名を含む処理要求が入力されたとき、前記利用者端末とのセッションを特定するセッションＩＤと前記サービス名とからなるセッション情報を含んだ統計情報を統計情報格納部に格納する処理を行うと共に、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、ＳＱＬ文が変更されているコンポーネントについては、前記コンポーネント制御情報格納部に格納されている該当する変更ＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力し、ＳＱＬ文が変更されていないコンポーネントについては、前記ＳＱＬ文、前記コンポーネントのコンポーネント名、前記セッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力する処理を行い、
データベースアクセス制御部が、前記コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、該データベースアクセス要求に含まれているＳＱＬ文或いは変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記ＳＱＬ文或いは変更ＳＱＬ文、その処理時間および前記データベースアクセス要求中のコンポーネント名を追加することを特徴とする。
【００２２】
本発明にかかる第１のプログラムは、
コンポーネント制御情報格納部と、統計情報格納部とを備えたコンピュータを、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部、
利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントのコンポーネント名と前記サービス名とに対応付けて前記コンポーネント制御情報格納部に変更ＳＱＬ文が格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記利用者端末との間のセッションＩＤ及び前記サービス名によって特定される統計情報として前記変更ＳＱＬ文、その処理時間および前記コンポーネント名を追加し、変更ＳＱＬ文が格納されていない場合は、前記コンポーネント中のＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に、前記セッションＩＤ及び前記サービス名によって特定される統計情報として前記ＳＱＬ文、その処理時間および前記コンポーネント名を追加するデータベースアクセス手段として機能させる。
【００２３】
本発明にかかる第２のプログラムは、
コンポーネント制御情報格納部と、統計情報格納部とを備えたコンピュータを、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部、
利用者端末からサービス名を含む処理要求が入力されたとき、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力すると共に、前記セッションＩＤおよび前記サービス名からなるセッション情報を含んだ統計情報を前記統計情報格納部に格納するコンポーネント実行制御部、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、前記データベースアクセス要求に含まれているＳＱＬ文に対する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されている場合は、前記変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記変更ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加し、前記データベースアクセス要求に含まれているＳＱＬ文に対応する変更ＳＱＬ文が前記コンポーネント制御情報格納部に格納されていない場合は、前記ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、前記ＳＱＬ文、その処理時間および前記データベースアクセス要求に含まれているコンポーネント名を追加するデータベースアクセス制御部として機能させる。
【００２４】
本発明にかかる第３のプログラムは、
コンポーネント制御情報格納部と、統計情報格納部とを備えたコンピュータを、
サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、前記コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部、
利用者端末からサービス名を含む処理要求が入力されたとき、前記利用者端末とのセッションを特定するセッションＩＤと前記サービス名とからなるセッション情報を含んだ統計情報を前記統計情報格納部に格納する処理を行うと共に、前記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、ＳＱＬ文が変更されているコンポーネントについては、前記コンポーネント制御情報格納部に格納されている該当する変更ＳＱＬ文、前記コンポーネントのコンポーネント名、前記利用者端末とのセッションを特定するセッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力し、ＳＱＬ文が変更されていないコンポーネントについては、前記ＳＱＬ文、前記コンポーネントのコンポーネント名、前記セッションＩＤおよび前記処理要求中のサービス名を含むデータベースアクセス要求を出力する処理を行うコンポーネント実行制御部、
該コンポーネント実行制御部からデータベースアクセス要求が出力されたとき、該データベースアクセス要求に含まれているＳＱＬ文或いは変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、前記統計情報格納部に格納されている統計情報の内の、セッション情報が前記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に前記ＳＱＬ文或いは変更ＳＱＬ文、その処理時間および前記データベースアクセス要求中のコンポーネント名を追加するデータベースアクセス制御部として機能させる。
【００２５】
〔作用〕
図１に示すように、データベースアクセス手段１は、利用者端末からサービス名を含む処理要求が入力されると、上記サービス名によって特定されるサービスを構成する各コンポーネントＡ，Ｂ，Ｃを順次実行し、実行中のコンポーネント（例えば、コンポーネントＡ）のコンポーネント名と上記サービス名とに対応付けてコンポーネント制御情報格納部３に変更ＳＱＬ文が格納されている場合は、変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、利用者端末とのセッションを特定するセッションＩＤ及び上記サービス名によって特定される統計情報として上記変更ＳＱＬ文、その処理時間およびコンポーネントＡのコンポーネント名を統計情報格納部４の統計情報に追加する。これに対して、変更ＳＱＬ文が格納されていない場合は、コンポーネントＡ中のＳＱＬ文「ＳＱＬ−１」に従ってデータベースアクセスを行うと共に、統計情報格納部４に、上記セッションＩＤ及び上記サービス名によって特定される統計情報としてＳＱＬ文「ＳＱＬ−１」、その処理時間およびコンポーネントＡのコンポーネント名を追加する。
【００２６】
このように、統計情報格納部４には、サービス単位で、そのサービスを構成する各コンポーネント中のＳＱＬ文の処理時間を含む統計情報が格納されるので、チューニング箇所を容易に絞り込むことが可能になる。例えば、或るサービスの統計情報中に、処理時間がかかるＳＱＬ文が存在した場合、上記或るサービスが高速処理が要求されているサービスであるか否かを調べるだけで良いので、上記ＳＱＬ文をチューニングすることが必要であるか否かを容易に判断することが可能になる。
【００２７】
管理者などは、統計情報格納部４に格納されている統計情報に基づいて、或るサービスαで用いられる或るコンポーネント（例えば、コンポーネントＢ）中のＳＱＬ文をチューニング（変更）することが必要であると判断した場合、上記サービスαのサービス名と、コンポーネントＢのコンポーネント名と、変更後のＳＱＬ文（変更ＳＱＬ文）を含んだＳＱＬ文変更指示を入力する。これにより、モニタリング／チューニング制御部２が、コンポーネント制御情報格納部３に、サービスαのサービス名およびコンポーネントＢのコンポーネント名に関連付けて上記変更ＳＱＬ文を格納する。これにより、サービスαにおいてコンポーネントＢを用いる場合には、コンポーネントＢ中のＳＱＬ文「ＳＱＬ−２」ではなく、コンポーネント制御情報格納部３中の該当する変更ＳＱＬ文が使用される。即ち、サービス単位で、チューニングを行うことが可能になる。
【発明の効果】
【００２８】
本発明は、サービス単位でデータベースアクセスに対するモニタリングを行うことができるので、チューニング箇所の絞り込みを容易に行うことが可能になり、更に、サービス単位でチューニングを行うことができるので、チューニング作業が及ぼす影響を最小限に抑えることができる。
【００２９】
サービス単位でデータベースアクセスに対するモニタリングを行うことができる理由は、利用者端末からサービス名を含む処理要求が入力されたとき、利用者端末とのセッションを特定するセッションＩＤおよび上記サービス名からなるセッション情報を含んだ統計情報を統計情報格納部に格納する処理を行うと共に、上記サービス名のサービスを構成するコンポーネントを実行する毎に、上記コンポーネントのＳＱＬ文或いは変更ＳＱＬ文と、処理時間と、コンポーネント名とを統計情報に追加するデータベースアクセス手段を備えているからである。
【００３０】
また、サービス単位でチューニングを行うことができる理由は、サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、コンポーネント制御情報格納部に、前記サービス名およびコンポーネント名に関連付けて前記変更ＳＱＬ文を格納するモニタリング／チューニング制御部を備えると共に、コンポーネントの実行時に、そのコンポーネントのコンポーネント名と実行要求されたサービスのサービス名とに対応付けて変更ＳＱＬ文が格納されている場合は、変更ＳＱＬ文に従ってデータベースアクセスを行うデータベースアクセス手段を備えているからである。
【発明を実施するための最良の形態】
【００３１】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００３２】
〔第１の実施の形態〕
図２を参照すると、本発明にかかるデータベースチューニング装置の第１の実施の形態は、コンポーネント実行制御部１１と、データベース（ＤＢ）アクセス制御部１２と、リレーショナルデータベース管理システム（ＲＤＢＭＳ；Relational Database Management System)１３と、モニタリング／チューニング制御部１４と、イベント処理部１５と、コンポーネント情報登録部１６と、コンポーネント制御情報格納部１７と、統計情報格納部１８と、リレーショナルデータベース（ＲＤＢ）１９と、表示部２０とから構成されている。
【００３３】
コンポーネント制御情報格納部１７には、システムが提供している各サービス毎に、そのサービスを構成しているコンポーネントに関する情報が登録されている。図３にコンポーネント制御情報格納部１７の内容例を示す。図３を参照すると、コンポーネント制御情報格納部１７には、サービス情報３１と、サービス情報３１によって特定されるサービスを構成する３個のコンポーネントに関するコンポーネント情報３２〜３４とが登録されている。
【００３４】
サービス情報３１は、サービス名αと、サービス閾値Ｔｈαと、変更フラグ“１”とを含んでいる。サービス閾値は、サービス名αで特定されるサービスが要求された場合の許容処理時間（サービスの処理要求を受けてからその処理が完了するまでの許容時間）を示す。変更フラグは、下位階層のコンポーネント情報に、変更ＳＱＬ文を含むものが存在するか否かを表示する。なお、本実施の形態では、変更ＳＱＬ文が存在する場合は、変更フラグを“１”とし、変更ＳＱＬ文が存在しない場合は、変更フラグを“０”とする。
【００３５】
コンポーネント情報３２，３３，３４は、それぞれコンポーネント名ａ，ｂ，ｃと、コンポーネント閾値Ｔｈａ，Ｔｈｂ，Ｔｈｃとを含んでいる。更に、コンポーネント情報３３は、変更ＳＱＬ文「ＳＱＬ−２'」を含んでいる。コンポーネント閾値は、そのコンポーネントに関連するＳＱＬ文の許容処理時間を示す。また、変更ＳＱＬ文は、そのコンポーネント内のＳＱＬ文の代わりに使用するＳＱＬ文を示す。
【００３６】
コンポーネント情報登録部１６は、管理者の指示に従って、コンポーネント制御情報格納部１７に図３に示すような情報３１〜３４を格納する機能を有する。
【００３７】
コンポーネント実行制御部１１は、図示を省略した利用者端末からサービス名を含む処理要求が入力されたとき、コンポーネント制御情報格納部１７を参照して上記サービス名によって特定されるサービスを構成する各コンポーネントを実行し、そのコンポーネントに含まれるＳＱＬ文、そのコンポーネントのコンポーネント名、利用者端末とのセッションを特定するセッションＩＤおよび処理要求中のサービス名を含むデータベースアクセス要求をデータベースアクセス制御部１２に対して出力する機能や、上記セッションＩＤおよび上記サービス名からなるセッション情報を含んだ統計情報を統計情報格納部１８に格納するする機能を有する。
【００３８】
データベースアクセス制御部１２は、次のような機能を有する。
【００３９】
・コンポーネント実行制御部１１からデータベースアクセス要求が出力されたとき、コンポーネント制御情報格納部１７に格納されているコンポーネント情報の内の、上記データベースアクセス要求によって特定されるコンポーネント情報に変更ＳＱＬ文が含まれているか否かを調べる機能。
・変更ＳＱＬ文が含まれている場合には、変更ＳＱＬ文に従ってデータベースアクセスを行うと共に、統計情報格納部１８に格納されている統計情報の内の、セッション情報がデータベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に、変更ＳＱＬ文、その処理時間およびデータベースアクセス要求中のコンポーネント名を追加する機能。
・変更ＳＱＬ文が含まれていない場合には、上記データベースアクセス要求に含まれているＳＱＬ文に従ってデータベースアクセスを行うと共に、統計情報格納部１８に格納されている統計情報の内の、セッション情報が上記データベースアクセス要求中のセッションＩＤ及びサービス名と一致する統計情報に上記ＳＱＬ文、その処理時間およびデータベースアクセス要求中のコンポーネント名を追加する機能。
【００４０】
統計情報格納部１８には、利用者端末から入力された処理要求に従って実行した一連のサービス処理毎に、処理時間などを含む統計情報が登録される。図４に統計情報格納部１８の内容例を示す。図４を参照すると、統計情報格納部１８には、セッション情報４１と、３個のコンポーネント情報４２とが登録されている。
【００４１】
セッション情報４１は、利用者端末から入力された処理要求に従って実行したサービス処理を識別するための情報であり、上記利用者端末とのセッションを特定するセッションＩＤと、要求されたサービス名と、サービス処理の要した処理時間とを含んでいる。なお、このセッション情報４１は、コンポーネント実行制御部１１によって登録されるものである。
【００４２】
コンポーネント情報４２〜４４は、その上位階層のセッション情報４１によって示されるサービス処理を実行する際に使用されたコンポーネントに関する情報であり、コンポーネント名と、ＳＱＬ文と、その処理時間とを含んでいる。これらの情報は、データベースアクセス制御部１２によって登録される。
【００４３】
モニタリング／チューニング制御部１４は、次のような機能を有する。
【００４４】
・管理者などによって、サービス名、コンポーネント名および変更後の変更ＳＱＬ文を含むＳＱＬ文変更指示が入力されたとき、データベースアクセス制御部１２を利用して、コンポーネント制御情報格納部１７に格納されているコンポーネント情報の内の、該当するコンポーネント情報に変更ＳＱＬ文を追加する機能を有する。例えば、サービス名α、コンポーネント名ｂ、変更ＳＱＬ文ＳＱＬ−２'を含むＳＱＬ文変更指示が入力された場合には、図３に示すようにコンポーネント情報３３に変更ＳＱＬ文ＳＱＬ−２'を追加する。
・統計情報格納部１８に格納されている統計情報と、コンポーネント制御情報格納部１７に格納されている各サービス毎のサービス閾値とに基づいて、処理時間が該当するサービス閾値を超えたサービスが発生したと判断した場合、上記サービスに関連する統計情報を表示部２０に表示する機能。
・管理者からの指示に従って、統計情報格納部１８に蓄積された統計情報を基に、サービス単位にデータベースアクセスに要した処理時間や全体に対する割合などを求め、それらを表示部２０に表示する機能。
・管理者が指定したサービスについて、ＳＱＬ文変更前の統計情報（例えば、ＳＱＬ文変更前の統計情報の内の最新のもの）とＳＱＬ文変更後の統計情報（例えば、ＳＱＬ文変更後の統計情報の内の最新のもの）を統計情報格納部１８から検索し、両者を表示部２０に表示する機能。その際、両者の処理時間の差分を求め、この差分も合わせて表示する機能。
【００４５】
イベント処理部１５は、モニタリング／チューニング制御部１４によって処理時間がサービス閾値を超えたサービスが発生したと判断された場合、外部装置（例えば、保守員や管理者が携帯している携帯電話機や、ポケットベルなど）に、そのことを通知する機能を有する。
【００４６】
なお、コンポーネント実行制御部１１，データベースアクセス制御部１２，リレーショナルデータベース管理システム１３，モニタリング／チューニング制御部１４，イベント処理部１５，コンポーネント情報登録部１６は、コンピュータによって実現可能なものであり、コンピュータによって実現する場合は、例えば、次のようにする。コンピュータを、コンポーネント実行制御部１１，データベースアクセス制御部１２，リレーショナルデータベース管理システム１３，モニタリング／チューニング制御部１４，イベント処理部１５，コンポーネント情報登録部１６として機能させるためのプログラムを記録したディスク，半導体メモリ，その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、コンポーネント実行制御部１１，データベースアクセス制御部１２，リレーショナルデータベース管理システム１３，モニタリング／チューニング制御部１４，イベント処理部１５，コンポーネント情報登録部１６を実現する。
【００４７】
〔第１の実施の形態の動作の説明〕
次に、本実施の形態の動作について詳細に説明する。
【００４８】
利用者は、サービスを利用する場合、利用したいサービスのサービス名を含む処理要求を、自身の利用者端末からコンポーネント実行制御部１１へ送信する。
【００４９】
コンポーネント実行制御部１１は、サービス名を含む処理要求を受け付けると、図５のフローチャートに示すように、上記サービス名と、要求元の利用者端末とのセッションを特定するセッションＩＤとを含むセッション情報を統計情報格納部１８に登録する（ステップＳ５１）。今、例えば、処理要求がサービス名αを含み、セッションＩＤが「ＩＤ１」であったとすると、図４に示すようなセッション情報４１が統計情報格納部１８に格納される。但し、この時点では、処理時間Ｔαは含まれていない。
【００５０】
次いで、コンポーネント実行制御部１１は、処理要求中のサービス名αをキーにしてコンポーネント制御情報格納部１７を検索し、該当するサービス情報を検索する（ステップＳ５２）。今、コンポーネント制御情報格納部１７の内容が図３に示すものであるとすると、コンポーネント実行制御部１１は、サービス情報３１を検索することになる。
【００５１】
その後、コンポーネント実行制御部１１は、ステップＳ５２で検索したサービス情報３１の下位階層に存在するコンポーネント３２〜３４の内の、第１番目のコンポーネント情報に注目する（ステップＳ５３，Ｓ５４）。この例の場合、第１番目のコンポーネント情報としてコンポーネント情報３２が存在するので（ステップＳ５５がＹＥＳ）、コンポーネント実行制御部１１は、コンポーネント情報３２に含まれているコンポーネント名ａによって特定されるコンポーネントＡを実行し、コンポーネントＡに含まれているＳＱＬ文「ＳＱＬ−１」と、コンポーネントａと、セッションＩＤ「ＩＤ１」と、サービス名αとを含むデータベースアクセス要求を、データベースアクセス制御部１２に対して発行する（ステップＳ５６，Ｓ５７）。
【００５２】
データベースアクセス制御部１２は、コンポーネント実行制御部１１からのデータベースアクセス要求を受け付けると、図６のフローチャートに示すように、それに含まれているサービス名αとコンポーネント名ａとをキーにしてコンポーネント制御情報格納部１７から該当するコンポーネント情報を検索する（ステップＳ６１）。コンポーネント制御情報格納部１７の内容が、図３に示すものである場合、サービス名αを含んでいるサービス情報３１の下位階層に存在する、コンポーネント名ａを有するコンポーネント情報３２が検索される。
【００５３】
その後、データベースアクセス制御部１２は、検索したコンポーネント情報３２に変更ＳＱＬ文が含まれているか否かを判断する（ステップＳ６２）。この例の場合、コンポーネント３２には、変更ＳＱＬ文が含まれていないので（ステップＳ６２がＮＯ）、データベースアクセス制御部１２は、データベースアクセス要求に含まれているＳＱＬ文「ＳＱＬ−１」に従って、リレーショナルデータベース管理システム１３に対して実行要求を行い、実行結果を取得するとそれをコンポーネント実行制御部１１に返す（ステップＳ６３）。その後、データベースアクセス制御部１２は、セッションＩＤ「ＩＤ１」およびサービス名「α」をキーにして統計情報格納部１８からセッション情報４１を検索し、その下位階層に、コンポーネント名ａと、ＳＱＬ文「ＳＱＬ−１」と、その処理時間Ｔａとを含むコンポーネント情報４２を追加する（ステップＳ６５）。
【００５４】
一方、コンポーネント実行制御部１１は、データベースアクセス制御部１２から実行結果が返されると、次のコンポーネント情報３３に注目する（図５のステップＳ５８，Ｓ５４）。その後、コンポーネント情報３３中のコンポーネント名ｂによって特定されるコンポーネントＢを実行し、それに含まれているＳＱＬ文「ＳＱＬ−２」と、コンポーネント名ｂと、セッションＩＤ「ＩＤ1」と、サービス名αとを含むデータベースアクセス要求をデータベースアクセス制御部１２に対して発行する（ステップＳ５７）。
【００５５】
データベースアクセス制御部１２は、上記データベースアクセス要求を受け付けると、それに含まれているサービス名αとコンポーネント名ｂとをキーにしてコンポーネント制御情報格納部１７から該当するコンポーネント情報を検索する（図６のステップＳ６１）。この例の場合、サービス名αを含んでいるサービス情報３１の下位階層に存在する、コンポーネント名ｂを含んだコンポーネント情報３３が検索される。
【００５６】
今回、検索したコンポーネント情報３３には、変更ＳＱＬ文「ＳＱＬ−２'」が含まれているので（ステップＳ６２がＹＥＳ）、データベースアクセス制御部１２は、変更ＳＱＬ文「ＳＱＬ−２'」に従って、リレーショナルデータベース管理システム１３に対して実行要求を行い、実行結果を取得するとそれをコンポーネント実行制御部１１に返す（ステップＳ６４）。その後、データベースアクセス制御部１２は、セッションＩＤ「ＩＤ１」およびサービス名「α」をキーにして統計情報格納部１８からセッション情報４１を検索し、その下位階層に、コンポーネント名ｂと、変更ＳＱＬ文「ＳＱＬ−２'」と、その処理時間Ｔｂとを含むコンポーネント情報４３を追加する（ステップＳ６５）。
【００５７】
一方、コンポーネント実行制御部１１は、データベースアクセス制御部１２から実行結果が返却されると、第３番目のコンポーネント情報３４によって特定されるコンポーネントＣを実行し（図５のステップＳ５８，Ｓ５４，Ｓ５６）、それに含まれているＳＱＬ文「ＳＱＬ−３」と、コンポーネント名ｃと、セッションＩＤ「ＩＤ1」と、サービス名αとを含むデータベースアクセス要求をデータベースアクセス制御部１２に対して発行する（ステップＳ５７）。
【００５８】
これにより、データベースアクセス制御部１２は、第１番目のデータベースアクセス要求を受け付けた場合と同様の処理を行い、実行結果をコンポーネント実行制御部１１に返却すると共に、セッション情報４１の下位階層に、コンポーネント名ｃと、ＳＱＬ文「ＳＱＬ−３」と、その処理時間Ｔｃとを含むコンポーネント情報４４を追加する（図６のステップＳ６１，Ｓ６２がＮＯ，Ｓ６３，Ｓ６５）。
【００５９】
一方、コンポーネント実行制御部１１は、データベースアクセス制御部１２から実行結果が返却されると、未注目のコンポーネント情報が存在しないので（図５ステップＳ５５がＮＯ）、ステップＳ５９の処理を行う。ステップＳ５９では、先ず、利用者端末からの処理要求の受信時刻と現在時刻との差分を求めることにより、サービス処理に要した処理時間（Ｔαであったとする）を求め、その後、求めた処理時間Ｔαと、処理要求に含まれていたサービス名αと、利用者端末とのセッションを特定するセッションＩＤ「ＩＤ１」とを含む処理時間通知をデータベースアクセス制御部１２へ送る。
【００６０】
データベースアクセス制御部１２は、コンポーネント実行制御部１１から上記処理時間通知が送られてくると、それに含まれているサービス名αおよびセッションＩＤ「ＩＤ１」をキーにして統計情報格納部１８から該当するセッション情報４１を検索し、そのセッション情報４１に図４に示すように処理時間Ｔαを追加する（図７のステップＳ７１，Ｓ７２）。その後、データベースアクセス制御部１２は、モニタリング／チューニング制御部１４に対して、上記サービス名αおよびセッションＩＤ「ＩＤ１」を通知する（ステップＳ７３）。
【００６１】
これにより、モニタリング／チューニング制御部１４は、図８のフローチャートに示すように、上記サービス名αおよびセッションＩＤ「ＩＤ１」をキーにして統計情報格納部１８を検索し、該当するセッション情報４１を検索する（ステップＳ８１）。その後、モニタリング／チューニング制御部１４は、セッション情報４１に含まれている処理時間Ｔαが、サービス名αのサービスに対するサービス閾値Ｔｈαを超えているか否かを判断する（ステップＳ８２）。なお、上記サービス閾値Ｔｈαは、コンポーネント制御情報格納部１７に格納されているサービス情報の内の、サービス名αによって特定されるサービス情報３１に含まれているので、サービス名αをキーにしてコンポーネント制御情報格納部１７を検索することにより求めることができる。また、サービス閾値Ｔｈαを求める際、サービス情報３１の下位階層に存在する各コンポーネント３２〜３４に含まれているコンポーネント閾値Ｔｈａ，Ｔｈｂ，Ｔｈｃも求めておく。
【００６２】
そして、処理時間Ｔαがサービス閾値Ｔｈαを超えていない場合（ステップＳ８２がＮＯ）は、モニタリング／チューニング制御部１４は、その処理を終了する。
【００６３】
これに対して、処理時間Ｔαがサービス閾値Ｔｈαを超えている場合（ステップＳ８２がＹＥＳ）は、セッション情報４１の下位階層のコンポーネント情報４２〜４４の中から、それに含まれている処理時間Ｔａ，Ｔｂ，Ｔｃが、対応するコンポーネント閾値Ｔｈａ，Ｔｈｂ，Ｔｈｃを超えているものを探し出す（ステップＳ８３）。次いで、モニタリング／チューニング制御部１４は、ステップＳ８１で検索したセッション情報４１と、その下位階層に存在するコンポーネント情報４２〜４４とからなる統計情報を、表示部２０に表示する（ステップＳ８４）。その際、ステップＳ８３で探し出したコンポーネント情報の表示形態を、他のコンポーネント情報の表示形態と異なる、特定の表示形態とする（例えば、探し出したコンポーネント情報の表示色を赤にし、他のコンポーネントの表示色を黒にする）。そして、最後に、イベント処理部１５に対して、処理時間がサービス閾値を超えたサービスが発生したことを通知し（ステップＳ８５）、その処理を終了する。イベント処理部１５は、上記通知を受けると、保守員や管理者が携帯している携帯電話機や、ポケットベルなどに、そのことを通知する。
【００６４】
管理者は、処理時間がサービス閾値を超えたサービスの統計情報が表示部２０に表示されると、表示形態が赤になっているコンポーネント情報中のＳＱＬ文をチューニングした変更ＳＱＬ文を作成する。今、例えば、図９に示すように、表示部２０に、セッション情報４１と、コンポーネント情報４２〜４４とからなる、サービス名αのサービスについての統計情報が表示され、コンポーネント情報４３の表示色が赤になっていたとすると、管理者は、コンポーネント情報４３に含まれているＳＱＬ文「ＳＱＬ−２'」をチューニングした変更ＳＱＬ文「ＳＱＬ−２''」を作成することになる。
【００６５】
その後、管理者は、作成した変更ＳＱＬ文「ＳＱＬ−２''」と、サービス名αと、コンポーネント名ｂとを含むＳＱＬ文変更指示をモニタリング／チューニング制御部１４に出力する。これにより、モニタリング／チューニング制御部１４は、データベースアクセス制御部１２を利用して、上記ＳＱＬ文変更指示中のサービス名α及びコンポーネント名ｂによって特定される、コンポーネント制御情報格納部１７に格納されているコンポーネント情報３３中の変更ＳＱＬ文「ＳＱＬ−２'」を「ＳＱＬ−２''」に置き換える。なお、この例では、コンポーネント情報３３に変更ＳＱＬ文「ＳＱＬ−２'」が含まれているので、それを変更ＳＱＬ文「ＳＱＬ−２''」に置き換える処理を行ったが、もし、コンポーネント情報３３に変更ＳＱＬ文「ＳＱＬ−２'」が含まれていなかったら、コンポーネント情報３３に変更ＳＱＬ文「ＳＱＬ−２''」を追加する処理を行う。
【００６６】
また、上記したＳＱＬ文変更指示は、変更ＳＱＬ文「ＳＱＬ−２''」の他に、サービス名αとコンポーネント名ｂとを含んでいるが、変更ＳＱＬ文「ＳＱＬ−２''」とコンポーネント名ｂとを含み、サービス名αは含んでいないＳＱＬ文変更指示が入力された場合は、モニタリング／チューニング制御部１４は、コンポーネント制御情報格納部１７に登録されている、コンポーネント名ｂを含む全てのコンポーネント情報を対象にして、変更ＳＱＬ文「ＳＱＬ−２'」の追加あるいは置き換え処理を行う。
【００６７】
〔第１の実施の形態の効果〕
本実施の形態は、サービス単位でデータベースアクセスに対するモニタリングを行うことができるので、チューニング箇所の絞り込みを容易に行うことが可能になり、更に、サービス単位でチューニングを行うことができるので、チューニング作業が及ぼす影響を最小限に抑えることができる。
【００６８】
サービス単位でデータベースアクセスに対するモニタリングを行うことができる理由は、利用者端末からサービス名を含む処理要求が入力されたとき、利用者端末とのセッションを特定するセッションＩＤおよび上記サービス名からなるセッション情報を含んだ統計情報を統計情報格納部１８に格納する処理を行うと共に、上記サービス名のサービスを構成するコンポーネントを実行する毎に、上記コンポーネントのＳＱＬ文或いは変更ＳＱＬ文と、処理時間と、コンポーネント名とを統計情報に追加するデータベースアクセス手段（コンポーネント実行制御部１１及びデータベースアクセス制御部１２から構成される）を備えているからである。
【００６９】
また、本実施の形態によれば、処理時間が該当するサービス閾値を超えたサービスの発生を容易に検出することが可能になる。その理由は、統計情報格納部１８に格納されている統計情報と、コンポーネント制御情報格納部１７に格納されている各サービス毎のサービス閾値とに基づいて、処理時間が該当するサービス閾値を超えたサービスの発生を検出するモニタリング／チューニング制御部１４を備えているからである。
【００７０】
また、本実施の形態によれば、処理時間が該当するサービス閾値を超えたサービスが発生した場合、迅速に対応することが可能になる。その理由は、処理時間が該当するサービス閾値を超えたサービスが発生したとき、そのことを管理者の携帯電話機やポケットベルなどの外部装置に通知するイベント処理部１５を備えているからである。
【００７１】
〔第２の実施の形態の構成〕
次に本発明の第２の実施の形態について説明する。本実施の形態は、コンポーネント実行制御部１１に、図５のフローチャートに示す処理の代わりに、図１０のフローチャートに示す処理を実行させ、データベースアクセス制御部１２に、図６のフローチャートに示す処理の代わりに、図１１のフローチャートに示す処理を実行させることにより実現される。なお、図１０，図１１において、図５，図６と同一処理を行うステップには、同一の番号を付してある。
【００７２】
〔第２の実施の形態の動作の説明〕
図１０を参照すると、コンポーネント実行制御部１１は、利用者端末からサービス名（例えば、サービス名α）を含む処理要求が送られてくると、第１の実施の形態で説明したステップＳ５１〜Ｓ５６の処理を行う。その後、ステップＳ５７の代わりに、ステップＳ１０１〜Ｓ１０３の処理を行う。
【００７３】
ステップＳ１０１では、ステップＳ５４で注目したコンポーネント情報に変更ＳＱＬ文が含まれているか否かを判断する。
【００７４】
例えば、ステップＳ５４において、図３に示したコンポーネント情報３２に注目したとすると、ステップＳ１０１の判断結果がＮＯとなるので、コンポーネント実行制御部１１は、処理要求に含まれているサービス名αと、要求元の利用者端末とのセッションを特定するセッションＩＤ（例えば、ＩＤ１）と、コンポーネント情報３２に含まれているコンポーネント名ａと、実行中のコンポーネントＡに含まれているＳＱＬ文「ＳＱＬ−１」とを含むデータベースアクセス要求をデータベースアクセス制御部１２に対して発行する（ステップＳ１０２）。
【００７５】
データベースアクセス制御部１２は、コンポーネント実行制御部１１からＳＱＬ文「ＳＱＬ−１」を含んだデータベースアクセス要求が送られてくると、図１１のフローチャートに示すように、データベースアクセス要求に含まれているＳＱＬ文「ＳＱＬ−１」に従って、リレーショナルデータベース管理システム１３に対して実行要求を行い、実行結果を取得するとそれをコンポーネント実行制御部１１に返す（ステップＳ１１１）。その後、データベースアクセス制御部１２は、第１の実施の形態で説明したステップＳ６５の処理を行う。
【００７６】
一方、コンポーネント実行制御部１１は、データベースアクセス制御部１２から実行結果が返却されると、次のコンポーネント情報３３に注目し、該当するコンポーネントＢを実行する（図１０のステップＳ５８，Ｓ５４，Ｓ５６）。その後、コンポーネント実行制御部１１は、注目しているコンポーネント情報３３に変更ＳＱＬ文「ＳＱＬ−２'」が含まれているので（ステップＳ１０１がＹＥＳ）、サービス名αと、セッションＩＤ「ＩＤ１」と、コンポーネント情報３３に含まれているコンポーネント名ｂと、変更ＳＱＬ文「ＳＱＬ−２'」とを含むデータベースアクセス要求をデータベースアクセス制御部１２に対して発行する（ステップＳ１０３）。
【００７７】
データベースアクセス制御部１２は、コンポーネント実行制御部１１から変更ＳＱＬ文「ＳＱＬ−２'」を含んだデータベースアクセス要求が送られてくると、図１１のフローチャートに示すように、データベースアクセス要求に含まれている変更ＳＱＬ文「ＳＱＬ−２'」に従って、リレーショナルデータベース管理システム１３に対して実行要求を行い、実行結果を取得するとそれをコンポーネント実行制御部１１に返す（ステップＳ１１１）。その後、データベースアクセス制御部１２は、第１の実施の形態で説明したステップＳ６５の処理を行う。
【００７８】
〔第２の実施の形態の効果〕
本実施の形態によれば、第１の実施の形態の効果に加え、データベースアクセス制御部１２が行う検索処理の回数を少なくすることができるという効果を得ることができる。その理由は、第１の実施の形態では、データベースアクセス制御部１２がコンポーネント制御情報格納部１７を検索して変更ＳＱＬ文があるか否かを判断し、判断結果に基づいて、ＳＱＬ文に従った実行要求を行うのか、変更ＳＱＬ文に従った実行要求を行うのかを切り分けているが（ステップＳ６１〜Ｓ６４）、本実施の形態では、コンポーネント実行制御部１１が、変更ＳＱＬ文が存在する場合には、変更ＳＱＬ文を含んだデータベースアクセス要求をデータベースアクセス制御部１２に発行し、存在しない場合は、実行しているコンポーネント中のＳＱＬ文を含んだデータベースアクセス要求をデータベースアクセス制御部１２に対して発行するようにしているからである（ステップＳ１０１〜Ｓ１０３）。
【００７９】
〔第３の実施の形態の構成〕
次に、本発明にかかるデータベースチューニング装置の第３の実施の形態について説明する。図１２は本実施の形態にかかるデータベースチューニング装置の構成例を示すブロック図であり、本実施の形態のデータベースチューニング装置と、図２に示した第１の実施の形態のデータベースチューニング装置との相違点は、コンポーネントＡ〜Ｃが統計情報の登録処理を行う統計情報登録部１１１Ａ〜１１１Ｃを備えている点と、コンポーネント実行制御部１１の代わりにコンポーネント実行制御部１１ａを備えている点と、データベースアクセス制御部１２の代わりにデータベースアクセス制御部１２ａを備えている点である。
【００８０】
〔第３の実施の形態の動作〕
図１３のフローチャートを参照すると、コンポーネント実行制御部１１ａは、利用者端末からサービス名（例えば、サービス名α）を含んだ処理要求が入力されると、第１の実施の形態で説明したステップＳ５１〜Ｓ５６の処理を行い、上記サービス名αのサービスを構成するコンポーネントの内の第１番目のコンポーネントを実行する。今、例えば、図１２に示すコンポーネントＡ（コンポーネント名はａとする）を実行したとすると、コンポーネント実行制御部１１ａは、サービス名αと、利用者端末とのセッションを特定するセッションＩＤ（ＩＤ１とする）、コンポーネントＡ中のＳＱＬ文「ＳＱＬ−１」と、コンポーネント名ａとを含んだデータベースアクセス要求をデータベースアクセス制御部１２に対して発行する（ステップＳ５７）。
【００８１】
これにより、データベースアクセス制御部１２ａは、図１４のフローチャートに示す処理を行い、実行結果をコンポーネント実行制御部１１ａに返却する。図１４のフローチャートと、データベースアクセス制御部１２の処理例を示した図６のフローチャートとの相違点は、ステップＳ６５が削除されている点である。
【００８２】
コンポーネント実行制御部１１ａ上で実行されているコンポーネントＡの統計情報登録部１１１Ａは、データベースアクセス制御部１２ａから実行結果が返却されると、図１３のフローチャートに示すステップＳ１３１の処理を行う。ステップＳ１３１において、統計情報登録部１１１Ａは、先ず、コンポーネント制御情報格納部１７に登録されている自コンポーネント名ａに関するコンポーネント情報３２に変更ＳＱＬ文が含まれているか否かを調べる。そして、変更ＳＱＬ文が含まれていない場合は、自コンポーネントＡ中のＳＱＬ文「ＳＱＬ−１」と、自コンポーネントＡのコンポーネント名ａと、その処理時間Ｔａとを含むコンポーネント情報４２を、セッション情報４１の下位階層に追加する。これに対して、コンポーネント情報３２に変更ＳＱＬ文が含まれている場合は、上記変更ＳＱＬ文と、自コンポーネントＡのコンポーネント名ａと、処理時間Ｔａとを含むコンポーネント情報４２を、セッション情報４１の下位階層に追加する。以上が、ステップＳ１３１で行う処理である。
【００８３】
その後、コンポーネント実行制御部１１ａは、次のコンポーネント情報に注目し（ステップＳ５８，Ｓ５４）、前述した処理と同様の処理を行う。そして、未注目のコンポーネント情報がなくなると（ステップＳ５５がＮＯ）、その処理を終了する。
【００８４】
本実施の形態によれば、第１の実施の形態の効果に加え、データベースアクセス制御部１２ａの負荷を低減できるという効果を得ることができる。その理由は、各コンポーネントＡ〜Ｃに統計情報登録部１１１Ａ〜１１１Ｃを設けたからである。
【産業上の利用可能性】
【００８５】
本発明は、データベースを利用したアプリケーション開発やシステム運用を行う分野で利用が可能である。
【図面の簡単な説明】
【００８６】
【図１】本発明の作用を説明するための図である。
【図２】本発明にかかるデータベースチューニング装置の第１の実施の形態の構成例を示すブロック図である。
【図３】コンポーネント制御情報格納部１７の内容例を示す図である。
【図４】統計情報格納部１８の内容例を示す図である。
【図５】コンポーネント実行制御部１１の処理例を示すフローチャートである。
【図６】データベースアクセス要求が入力されたときの、データベースアクセス制御部１２の処理例を示すフローチャートである。
【図７】処理時間通知が入力されたときのデータベースアクセス制御部１２の処理例を示すフローチャートである。
【図８】モニタリング／チューニング制御部１４の処理例を示すフローチャートである。
【図９】表示部２０に表示された統計情報の一例を示す図である。
【図１０】本発明の第２の実施の形態において、コンポーネント実行制御部１１が行う処理例を示すフローチャートである。
【図１１】本発明の第２の実施の形態において、データベースアクセス制御部１２が行う処理例を示すフローチャートである。
【図１２】本発明にかかるデータベースチューニング装置の第３の実施の形態の構成例を示すブロック図である。
【図１３】コンポーネント実行制御部１１ａの処理例を示すフローチャートである。
【図１４】データベースアクセス制御部１２ａの処理例を示すフローチャートである。
【符号の説明】
【００８７】
１…データベースアクセス手段
２…モニタリング／チューニング制御部
３…コンポーネント制御情報格納部
４…統計情報格納部
１１，１１ａ…コンポーネント実行制御部
１２，１２ａ…データベースアクセス制御部
１３…リレーショナルデータベース管理システム（ＲＤＢＭＳ）
１４…モニタリング／チューニング制御部
１５…イベント処理部
１６…コンポーネント情報登録部
１７…コンポーネント制御情報格納部
１８…統計情報格納部
１９…リレーショナルデータベース（ＲＤＢ）
２０…表示部
Ａ〜Ｃ…コンポーネント
【図１】
2006277179.tif 000003
【図２】
2006277179.tif 000004
【図３】
2006277179.tif 000005
【図４】
2006277179.tif 000006
【図５】
2006277179.tif 000007
【図６】
2006277179.tif 000008
【図７】
2006277179.tif 000009
【図８】
2006277179.tif 000010
【図９】
2006277179.tif 000011
【図１０】
2006277179.tif 000012
【図１１】
2006277179.tif 000013
【図１２】
2006277179.tif 000014
【図１３】
2006277179.tif 000015
【図１４】
2006277179.tif 000016