(57)【要約】【課題】  ＤＢＭＳのアクセスデータをストレージに対して先読み指示するプログラムがある。ＤＢＭＳは先読みを意識したアクセスプランを生成し、ＤＢへアクセスできる。しかし、ＤＢＭＳは先読みを指示するプログラムの停止を認識できず、適切なＩ／Ｏコストでアクセスプランを生成することができない。【解決手段】  ＤＢＭＳサーバ１、２・・・は、管理サーバ５の先読みプログラムを監視し、先読みプログラムが停止したことを把握し、先読みプログラムが停止した時に変更したＩ／Ｏコストを用いてストレージ装置３、４・・・に対するアクセスの実行プランを最適化する処理を行う。【選択図】  図１
2006127418.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからの要求に応じて、データベース管理プログラムに基づいた最適化処理を行ってデータベースへアクセスする計算機システムにおいて、
前記データベース管理プログラムが動作する一又は複数の第一の計算機と、
前記データベースに格納されたデータの先読みを指示する先読みプログラムが動作する一又は複数の第二の計算機と、
前記データの先読みのためにキャッシュメモリを有する制御部及び前記データベース管理プログラムにより操作されるデータベースを格納する一又は複数の物理ディスク装置を有し、前記第一の計算機と前記第二の計算機と接続される一又は複数の記憶装置とを有する計算機システムであって、
前記第一の計算機は、
前記第一の計算機と前記第二の計算機が正常に動作していることを確認するための確認情報を前記第一の計算機及び前記第二の計算機が送受信して、前記データベース管理プログラムが前記データベースへアクセスする実行プランを作成する先読みプラン作成手段と、
前記第二の計算機が停止した場合には第一の計算機がこれを把握し、前記データベース管理プログラムが前記データベースへアクセスする実行プランを変更する先読みプラン変更手段と
を備えたことを特徴とする計算機システム。
【請求項２】
前記第一の計算機は、前記第二の計算機の前記先読みプログラムの状態を保存するための記憶領域を有し、前記第二の計算機の前記先読みプログラムが起動後に前記第一の計算機へ起動情報を送信し、前記第一の計算機が前記起動情報を受信し、前記先読みプログラムの状態を前記記憶領域に保存することを特徴とする請求項１記載の計算機システム。
【請求項３】
前記データベース管理プログラムが、前記データベースへアクセスする前記実行プランの計算に必要なコスト情報としてＩ／Ｏ速度を用い、前記第二の計算機が停止した場合、前記データベース管理プログラムが前記コスト情報を変更することを特徴とする請求項１記載の計算機システム。
【請求項４】
前記第二の計算機は、前記第一の計算機から受信した前記データベースへアクセスする前記実行プランを一時的に保存するための記憶領域を有することを特徴とする請求項１記載の計算機システム。
【請求項５】
前記第二の計算機は、前記記憶装置への先読み指示開始から終了に至る時間から前記記憶装置の負荷状況を把握することを特徴とする請求項１記載の計算機システム。
【請求項６】
前記第二の計算機は、複数の前記第一の計算機へ前記負荷状況から得られるコスト情報を送信し、前記第一の計算機の前記データベース管理プログラムが前記コスト情報を変更することを特徴とする請求項５記載の計算機システム。
【請求項７】
クライアントからの要求に応じて、最適化処理を行ってデータベースへアクセスするためのデータベース管理プログラムが動作する一又は複数の第一の計算機であって、
前記データベースへアクセスする情報に基づいて前記データベースに格納されたデータの先読みを指示する先読みプログラムが動作する第二の計算機、及び前記データの先読みのためにキャッシュメモリを有する制御部及び前記データベース管理プログラムにより操作されるデータベースを格納する一又は複数の物理ディスク装置を有する記憶装置と通信可能に接続されるインタフェース手段と、
前記第二の計算機の前記先読みプログラムが起動後に送信する起動情報を受信し、前記データベース管理プログラムが前記記憶装置に格納された前記データベースへアクセスする実行プランを取得して前記第二の計算機へ送信する先読みプラン送信手段と、
前記第二の計算機が正常に動作していることを確認するための確認情報を前記第二の計算機との間で送受信して前記データベース管理プログラムが前記データベースへアクセスする実行プランを作成する先読みプラン作成手段と、
前記確認情報に基づいて前記第二の計算機の停止状態を把握し前記データベース管理プログラムが前記データベースへアクセスする実行プランを変更する先読みプラン変更手段と
を備えたことを特徴とする計算機。
【請求項８】
前記第二の計算機の前記先読みプログラムの状態を保存するための記憶領域を有し、前記第二の計算機の前記先読みプログラムが起動後に送信する前記起動情報を受信し、前記先読みプログラムの状態を前記記憶領域に保存することを特徴とする請求項７記載の計算機。
【請求項９】
前記データベース管理プログラムが前記データベースへアクセスする前記実行プランの計算に必要なコスト情報としてＩ／Ｏ速度を用い、前記第二の計算機が停止した場合、前記データベース管理プログラムが前記コスト情報を変更することを特徴とする請求項７記載の計算機。
【請求項１０】
クライアントからの要求に応じて、データベース管理プログラムに基づいた最適化処理を行ってデータベースへアクセスするデータベースアクセス方法において、
一又は複数の第一の計算機において前記データベース管理プログラムが動作すると、
一又は複数の第二の計算機において前記データベースに格納されたデータの先読みを指示する先読みプログラムが動作し、
前記第一の計算機は、前記第二の計算機の前記先読みプログラムが起動後に前記第一の計算機へ前記先読みプログラムの起動情報を送信する前記起動情報を受信し、
前記データベース管理プログラムが前記データベースへアクセスする実行プランを前記第二の計算機へ送信し、
前記第一の計算機と前記第二の計算機と接続される一又は複数の記憶装置において前記データベース管理プログラムにより操作されるデータベースを格納する一又は複数の物理ディスク装置からキャッシュメモリへの先読みが指示され、
前記第一の計算機と前記第二の計算機が正常に動作していることを確認するために確認情報を前記第一の計算機及び前記第二の計算機が送受信し、
前記第二の計算機が停止した場合には第一の計算機がこれを把握し前記データベース管理プログラムが前記データベースへアクセスする実行プランを変更する
ことを特徴とするデータベースアクセス方法。
【請求項１１】
前記第一の計算機は、前記第二の計算機の前記先読みプログラムの状態を保存するための記憶領域を有し、前記第二の計算機の前記先読みプログラムが起動後に前記第一の計算機へ起動情報を送信し、前記第一の計算機が前記起動情報を受信し、前記先読みプログラムの状態を保存することを特徴とする請求項１０記載のデータベースアクセス方法。
【請求項１２】
前記データベース管理プログラムが、前記データベースへアクセスする前記実行プランの計算に必要なコスト情報としてＩ／Ｏ速度をコスト情報として用い、前記第二の計算機が停止した場合、前記データベース管理プログラムが前記コスト情報を変更することを特徴とする請求項１０記載のデータベースアクセス方法。
【請求項１３】
前記第二の計算機は、前記第一の計算機から受信した前記データベースへアクセスする前記実行プランを記憶領域に一時的に保存することを特徴とする請求項１０記載のデータベースアクセス方法。
【請求項１４】
前記第二の計算機は、前記記憶装置への先読み指示開始から終了に至る時間から前記記憶装置の負荷状況を把握することを特徴とする請求項１０記載のデータベースアクセス方法。
【請求項１５】
前記第二の計算機は、複数の前記第一の計算機へ前記コスト情報を送信し、前記第一の計算機の前記データベース管理プログラムが前記コスト情報を変更することを特徴とする請求項１４記載のデータベースアクセス方法。
【請求項１６】
クライアントからの要求に応じて、データベース管理プログラムに基づいた最適化処理を行ってデータベースへアクセスするデータベースシステムにおいて、
前記データベース管理プログラムが動作するサーバと、
前記データベース管理プログラムにより操作されるデータベースを格納するストレージと、
前記サーバ、前記ストレージ、又は前記サーバと前記ストレージとの間の経路上に設けられ、前記データベースに格納されたデータの先読みを指示する先読みプログラムとを備えるデータベースシステムであって、
前記先読みプログラムが起動後に前記データベース管理プログラムへ前記先読みプログラムの起動情報を送信する前記起動情報を受信し、前記データベース管理プログラムが前記データベースへアクセスする実行プランを前記先読みプログラムへ送信する先読みプラン送信手段と、
前記データベース管理プログラムに基づいて前記先読みプログラムが前記ストレージにおいて一又は複数の物理ディスク装置からキャッシュメモリへの先読みを指示する先読み指示手段と、
前記データベース管理プログラムと前記先読みプログラムが正常に動作していることを確認するために確認情報を前記データベース管理プログラム及び前記先読みプログラムが送受信して前記データベース管理プログラムが前記データベースへアクセスする実行プランを作成する先読みプラン作成手段と、
前記先読みプログラムが停止した場合にはデータベース管理プログラムがこれを把握し前記データベース管理プログラムが前記データベースへアクセスする実行プランを変更する先読みプラン変更手段と
を備えたことを特徴とするデータベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに用いられるストレージシステム、特にデータベース（ＤＢ）に使用されるストレージシステム（以下「ＤＢシステム」と言う）に関する。
【背景技術】
【０００２】
現在、企業等の組織では膨大な量のデータが格納されるＤＢを管理し、ＤＢからデータを収集するデータベース管理システム（以下「ＤＢＭＳ」と言う）が重要なものとなっている。このＤＢＭＳが動作する計算機（以下「サーバ」と言う）とストレージ装置とが接続され、ＤＢデータは、ストレージ装置に格納されることが一般的である。ＤＢＭＳは、膨大なデータを扱うため処理速度などの性能向上が要求されている。
【０００３】
一般的にＤＢＭＳは、クライアントから問合せを受け、その問合せを実行するのに最も効率が良い実行プランを選択するという最適化処理を行い、ＤＢへアクセスする。この最適化の方式にはルールベースとコストベースの二種類がある。ルールベースの最適化方式は、クライアントから問合せを行うコード（ＳＱＬ文）の記載方法等に基づいて実行プランを決定する方式である。また、コストベースの最適化方式は、ＤＢＭＳが動作するサーバのＣＰＵ速度（ＣＰＵコスト）等の情報に基づいて実行プランを決定する方式である。ここで、コストとは、各部の処理速度をパラメータで変換した値である。ルールベースの最適化方式は、クライアント側に相当の知識を要する。このため一般的なＤＢＭＳでは、コストベースの最適化方式が採用されている。
【０００４】
例えば、ＤＢＭＳのコストベース最適化方式のパラメータにハードウエアコスト（ＣＰＵコスト、Ｉ／Ｏ速度（Ｉ／Ｏコスト）、ネットワーク速度（ネットワークコスト））を含め、ＤＢＭＳがハードウエア性能を考慮したコストベース最適化方式で、より適した実行プランを出力する技術が開示されている（特許文献１参照）。
【０００５】
また、ストレージ装置では、自身に接続されるサーバから発行される書き込み要求や読み出し要求の処理の高速化を以下のように行っている。ストレージ装置はデータを記憶する不揮発性記憶媒体（ハードディスクドライブ等。以下「ディスク装置」と言う）に加え、データを一時的に格納する揮発性の記憶媒体（半導体メモリ等。以下「キャッシュメモリ」と言う）を有している。サーバからデータの読み出し（あるいは書き込み）要求を受けつけた際、要求されたデータがキャッシュメモリに格納されている場合、ストレージ装置は、キャッシュメモリからのデータの読み出し(またはキャッシュメモリへのデータの書き込み）を行った時点で処理を終了し、その処理が終了したことをサーバへ応答する。
【０００６】
一般的にキャッシュメモリはディスク装置に比べてシーク機構などのメカニカルな部分がない分読み出し等のスピードが速い。従って、ディスク装置への処理を省略することで、ストレージ装置はサーバへの応答処理を高速化することができる。上述したように、ストレージ装置自身でシーケンシャルアクセス（連続したデータへのアクセス）が行われている時にキャッシュメモリへのデータの先読みを行う技術がストレージ装置に実装されているが、不連続なデータアクセスにはあまり先読み効果がない。
【０００７】
これに関連して、例えば、先読み技術として今後サーバからストレージ装置へアクセスが行われるデータをディスク装置からキャッシュメモリへ格納するよう指示する技術が提案されている（特許文献２参照）。
【特許文献１】特開２００１−１５５０１８号公報
【特許文献２】特開２００３−３３７７２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述した従来技術に示した先読み技術においては、管理サーバ（管理プログラム）が設けられ、サーバがストレージ装置へアクセスするときに、管理サーバ（管理プログラム）から今後アクセスされるデータをストレージ装置のディスク装置からキャッシュメモリへ格納するように指示を出すようにしていた。このため、サーバ上でＤＢＭＳが動作し、管理サーバ（管理プログラム）からの指示によりＤＢＭＳがストレージ装置に格納されるＤＢへアクセスする場合、以下の問題が発生する。つまり、ストレージ装置のキャッシュメモリにＤＢＭＳがアクセスするデータが読み出されている場合と読み出されていない場合とではＤＢＭＳが動作するサーバの入出力処理速度に対応するＩ／Ｏコストに大きな差が生ずることになる。
【０００９】
ここで、管理プログラムが管理サーバの障害等の理由で停止した場合、管理プログラムからストレージ装置へデータの先読みの指示が出されなくなる。しかし、ＤＢＭＳは管理プログラムの停止を認識することができない。このため、ＤＢＭＳは、管理プログラムの停止によってＤＢＭＳがアクセスするデータがストレージ装置のキャッシュメモリに格納されているのか否かを区別することができなくなる。従って、ＤＢＭＳは予め定められた固定情報のＩ／Ｏコストしか認識できないため、不適切なＩ／Ｏコストでアクセスプランを生成するという不都合がある。
【００１０】
この場合、管理プログラムが動作中には、ＤＢＭＳから管理プログラムを介してストレージ装置のデータのキャッシュメモリへの先読みを行う先読みシーケンスを実行し、管理プログラムが停止中には、ＤＢＭＳから直接ストレージ装置のデータの読み出しを行う通常シーケンスを実行するようにすることが要求される。
【００１１】
そこで、本発明は、管理プログラムの状態情報をＤＢＭＳにフィードバックし、この状態情報に基づいてＤＢＭＳがストレージ装置に対するアクセス動作のコストを変更することにより適切なＤＢアクセスを実行できるようにする計算機システム、計算機、データベースアクセス方法及びデータベースシステムを提供することを目的とするものである。
【課題を解決するための手段】
【００１２】
上記課題を解決し、本発明の目的を達成するため、本発明は、ＤＢへのアクセスプランをＤＢＭＳから受け、ストレージ装置へ先読みを指示するプログラムが何らかの原因によって停止した場合に、ＤＢＭＳがＩ／Ｏコストの変更指示を受け、アクセスプランを変更するものである。
【００１３】
更に、ストレージ装置へ先読みを指示するプログラムが、先読み開始から先読み完了に至るまでの応答時間からストレージ装置の状況を推測し、ＤＢＭＳへＩ／Ｏコストの変更を指示するものである。
【発明の効果】
【００１４】
本発明によれば、ＤＢＭＳは、ストレージ装置のキャッシュメモリにＤＢＭＳがアクセスするデータが載っているか否かを把握することができるため、適切なＩ／Ｏコストでアクセスプランを生成することができる。
【発明を実施するための最良の形態】
【００１５】
以下に、適宜、図面を参照しながら本発明の実施形態を説明する。
本実施の形態例では、管理サーバの先読みマネージャが何らかの原因で停止したときに、ＤＢＭＳサーバのプラン作成マネージャが管理サーバの先読みマネージャが停止したことを把握し、ＤＢＭＳがクライアントプログラムからの問合せ処理を適切なＩ／Ｏコストを用いてコスト計算し、実行プランを決定する場合について説明する。
【００１６】
図１は、本実施の形態例における計算機システムのシステム構成例を示す図である。本実施の形態例の計算機システムは、複数のサーバ１、２・・・、複数のストレージ装置３、４・・・、１台の管理サーバ５並びに複数のサーバ１、２・・・、複数のストレージ装置３、４・・・及び１台の管理サーバ５とを相互に接続するネットワーク１０、複数のサーバ１、２・・・及び複数のストレージ装置３、４・・・を相互に接続するネットワーク６、７、８、９・・・を有する。
【００１７】
また、ネットワーク１０、６、７、８、９・・・に限らず、複数のサーバ１、２・・・と複数のストレージ装置３、４・・・並びに、複数のサーバ１、２・・・、複数のストレージ装置３、４・・・及び１台の管理サーバ５を相互に接続するスイッチ等のネットワーク機器を用いても良い。ネットワーク機器の具体例としては、ルータ等がある。図１のネットワークの具体例として、ローカルエリアネットワーク（以下「ＬＡＮ」と言う）、ファイバチャネル（以下「ＦＣ」と言う）等の物理ケーブルがある。
【００１８】
なお、本実施の形態例では、サーバ１、２・・・は、ＤＢＭＳというプログラムを実行する（以下、ＤＢＭＳを実行するサーバを「ＤＢＭＳサーバ」と言う）。ここでＤＢＭＳとは、ストレージ装置３、４・・・に格納されているＤＢの内容の更新、検索、テーブル作成、定義等、データベースを制御するためにサーバで実行されるプログラムである。
【００１９】
また、上述したＤＢＭＳサーバ１、２・・・に限らず、図１には記載していないが、ＤＢＭＳへアクセスを行う機能を持ったクライアントとなる計算機が外部からアクセス可能に加わる形態でも構わない。
【００２０】
図２は、ＤＢＭＳサーバ１、２・・・の構成例を示す図である。ＤＢＭＳサーバ１は、プロセッサ１２、記憶領域１６、管理サーバ５とストレージ装置３、４・・・を含めた他の装置であるクライアント等と接続する為の１つ以上のインタフェース１５（以下「Ｅｔｈｅｒ  Ｉ／Ｆ」と言う）、ストレージ装置３、４・・・と接続する為の１つ以上のインタフェース１４（以下「ＦＣ  Ｉ／Ｆ」と言う）及びＤＢＭＳサーバ１のプロセッサ１２で実行される各種プログラムの実行結果を出力する出力装置１３を有する。これらの各装置は、内部バス等の通信路１１を介して相互に接続される。なお、各構成部分の個数は任意である。上述したクライアントはアクセス要求を実行するクライアントプログラム２８を有する。
【００２１】
記憶領域１６には、オペレーティングシステム（以下「ＯＳ」と言う）２４、ＤＢＭＳ２５、ＤＢＭＳ２５へアクセスを行うプログラムであるクライアントプログラム２３、ＤＢＭＳサーバＩ／Ｆ管理テーブル１７、ＤＢファイルシステム情報テーブル２２、ＤＢスキーマ情報テーブル１８、先読みマネージャ管理テーブル２１、データ領域情報テーブル１９及びコスト管理テーブル２０が格納される。また、ＤＢＭＳ２５にはプラン作成マネージャ２６及びコスト管理マネージャ２７が存在する。プロセッサ１２は、記憶領域１６に格納されるプログラムを読み出して実行する。なお、記憶領域１６には、プロセッサ１２で実行される図示しない他のアプリケーションプログラムも格納される。ここで、クライアントプログラム２３は、ＤＢＭＳサーバ１、２・・・内に限らず、ＤＢＭＳサーバ１、２・・・外のクライアントからのクライアントプログラム２８等に基づいたものでもよい。
【００２２】
ＤＢＭＳサーバＩ／Ｆ管理テーブル１７は、ＤＢＭＳサーバ１がＥｔｈｅｒ  Ｉ／Ｆのインタフェース１５及びＦＣ  Ｉ／Ｆのインタフェース１４を制御する際に使用するテーブルである。ＤＢスキーマ情報テーブル１８には、ＤＢＭＳ２５が管理するテーブルやインデクスなどのスキーマに関する設定情報が登録される。データ領域情報テーブル１９には、ＯＳ２４が管理するデータ領域情報に関する設定情報が登録される。また、コスト管理テーブル２０には、Ｉ／Ｏコスト等のコスト情報に関する設定情報が登録される。プラン作成マネージャ２６は、クライアントプログラム２３からの問合せを最適化するために問合せコスト計算を行う。この計算時にＩ／Ｏコスト等のコスト情報が格納されるコスト管理テーブル２０を参照する。コスト管理マネージャ２７は、管理サーバ５から情報を受け、コスト管理テーブル２０の設定情報を更新する。
【００２３】
図３は、ストレージ装置３、４・・・の構成例を示す図である。ストレージ装置３は、ストレージ装置３内の制御を行うコントローラ３１、記憶領域３６、ＤＢＭＳサーバ１、２・・・を含めた他の装置と接続されるＩ／Ｆ２９（Ｅｔｈｅｒ  Ｉ／Ｆ）、ＤＢＭＳサーバ１、２・・・と接続されるＩ／Ｆ３０（ＦＣ  Ｉ／Ｆ）及び１つ以上の物理ディスク装置３２、３３、３４、３５・・・を有する。これらの装置は、コントローラ３１を介して相互に接続される。
【００２４】
記憶領域３６は、不揮発性のメモリ装置である。記憶領域３６は、キャッシュメモリ３９として使用される領域とその他の情報が格納される領域を有する。その他の情報が格納される領域には、ストレージＩ／Ｆ管理テーブル３８及びストレージ先読みプログラム３７が格納される。
【００２５】
ストレージＩ／Ｆ管理テーブル３８は、コントローラ３１がＥｔｈｅｒ  Ｉ／ＦのＩ／Ｆ２９及びＦＣ  Ｉ／ＦのＩ／Ｆ３０を制御する際に使用するテーブルである。ストレージ先読みプログラム３７は、管理サーバ５からの要求に応じて物理ディスク３２、３３、３４、３５に格納されているデータをキャッシュメモリ３９に格納するプログラムである。
【００２６】
なお、ストレージ装置３、４・・・が有するＥｔｈｅｒ  Ｉ／ＦのＩ／Ｆ２９、ＦＣ  Ｉ／ＦのＩ／Ｆ３０及び物理ディスク装置３２、３３、３４、３５の個数は１つ以上であれば幾つであってもよい。
【００２７】
図４は、管理サーバ５の構成例を示す図である。管理サーバ５は、ＤＢＭＳ２５からのアクセス情報を解析し、ストレージ装置３、４・・・に先読み指示を行う端末である。管理サーバ５は、プロセッサ４１、記憶領域４４、ＤＢＭＳサーバ１、２・・・とストレージ装置３、４・・・と接続を行うための１つ以上のＩ／Ｆ４３（Ｅｔｈｅｒ  Ｉ／Ｆ）と管理者が操作を行う際に用いる出力装置４２を有する。これらの各装置は、内部バス等の通信路４８を介して相互に接続される。
【００２８】
記憶領域４４には、ＤＢＭＳ１、２・・・のアクセス情報を解析し、ストレージ装置３、４・・・に先読み指示を行うプログラムである先読みマネージャ４５、先読み状態を管理する先読み管理テーブル４７及び管理サーバＩ／Ｆ管理テーブル４６が格納される。
【００２９】
なお、他の実施の形態として、管理サーバ５がＤＢＭＳサーバ１、２・・・と同一の計算機で構成されても良い。この場合、上述した先読みマネージャ４５が、ＤＢＭＳサーバ１、２・・・に組み込まれる。
【００３０】
図５（ａ）は、ＤＢＭＳサーバ１、２・・・が持つＤＢＭＳサーバＩ／Ｆ管理テーブル５０(図１で示した１７に対応する)の一例を示す図である。ＤＢＭＳサーバＩ／Ｆ管理テーブル５０は、ＤＢＭＳサーバ１、２・・・が使用するストレージ装置３、４・・・の数分のレコード及び、ＤＢＭＳサーバ１、２・・・が通信を行う管理サーバ５の数分のレコードを有する。各レコードは、レコードに対応するストレージ装置３、４及び管理サーバ５への接続Ｉ／Ｆ識別子、具体的には、ＤＢＭＳサーバ１、２・・・に具備される接続Ｉ／ＦのポートＩＤの情報が登録されるＤＢ−Ｉ／Ｆ欄５１及び欄５１に登録された接続Ｉ／Ｆ識別子に与えられる名称の情報が登録される名前欄５２を有する。
【００３１】
図５（ｂ）は、ＤＢＭＳサーバ１、２・・・が持つＤＢスキーマ情報テーブル５３(図２で示した１８に対応する)の一例を示す図である。ＤＢスキーマ情報テーブル５３は、ＤＢＭＳ２５が管理するＤＢスキーマに関する情報である。ＤＢスキーマ情報テーブル５３の各レコードは、ＤＢＭＳ２５がＤＢスキーマを識別するための識別子が登録されるスキーマＩＤ欄５４、ＤＢスキーマの名称が登録されるスキーマ名欄５５、ＤＢスキーマの種別が登録されるスキーマ種別欄５６、ＤＢスキーマが保存されるデータ領域の識別子が登録されるデータ領域ＩＤ欄５７、ＤＢスキーマのデータサイズが登録されるスキーマサイズ欄５８、ＤＢスキーマが保存されているデータ領域の先頭オフセットアドレスが登録される先頭オフセットアドレス欄５９を有する。
【００３２】
図５（ｃ）は、ＤＢＭＳサーバ１、２・・・が持つデータ領域情報テーブル６０(図２で示した１９に対応する)の一例を示す図である。データ領域情報テーブル６０は、ＤＢＭＳ２５が管理するデータ領域の設定情報であり、ＤＢファイルシステム数分のレコードを有する。データ領域情報テーブル６０の各レコードは、ＤＢＭＳ２５がデータ領域を識別するための識別子が登録されるデータ領域ＩＤ欄６１、データ領域の名称が登録される領域名欄６２、ＤＢファイルシステムの名称が登録されるＤＢファイルシステム名欄６３、ＤＢファイルシステムの領域サイズが登録される領域サイズ欄６４を有する。
【００３３】
図５（ｄ）は、ＤＢＭＳサーバ１、２・・・が持つＤＢファイルシステム情報テーブル６５(図２で示した２２に対応する)の一例を示す図である。ＤＢファイルシステム情報テーブル６５は、ＤＢＭＳサーバ１、２・・・のＯＳ２４がデータの書き込みや読み出しを行う時に用いる情報であり、データ領域数分のレコードを有する。ＤＢファイルシステム情報テーブル６５の各レコードは、ＤＢファイルシステムの名称が登録されるＤＢファイルシステム名欄６６、ＯＳ２４がストレージ装置３、４・・・へアクセスするときに用いる論理ユニット番号が登録される論理ユニット番号欄６７、ＯＳ２４がストレージ装置３、４・・・を識別するための名称（例えばWorld Wide Name（ＷＷＮ））が登録されるストレージアドレス欄６８を有する。
【００３４】
図６（ａ）は、ＤＢＭＳサーバ１、２・・・が持つコスト管理テーブル７０(図２で示した２０に対応する)の一例を示す図である。コスト管理テーブル７０は、ＤＢＭＳ２５がＤＢへアクセスするときにどのようなプランでアクセスを行うのか、コストを元に決定する際のコスト情報である。コスト管理テーブル７０の各レコードは、ＤＢが格納されているストレージ装置３、４・・・を識別するための名称（例えばＷＷＮ）が登録されているストレージアドレス欄７１、ストレージ装置３、４・・・へアクセスするときに用いる論理ユニット番号が登録される論理ユニット番号欄７２、ＤＢＭＳ２５がＤＢへアクセスする際のコスト情報が登録される現在値Ｉ／Ｏコスト欄７３、ストレージ装置３、４・・・のキャッシュメモリ３９上に格納されているデータへアクセスする際のコスト情報が登録されるキャッシュＩ／Ｏコスト欄７４、ストレージ装置３、４・・・の物理ディスク３２、３３、３４、３５に格納されているデータへアクセスする際のコスト情報が登録されているディスクＩ／Ｏコスト欄７５を有する。
【００３５】
現在値Ｉ／Ｏコスト欄７３内には、シーケンシャルアクセスのＩ／Ｏコストが登録されるシーケンシャル欄７６、ランダムアクセスのＩ／Ｏコストが登録されるランダム欄７７を有し、キャッシュＩ／Ｏコスト欄７４内には、シーケンシャルアクセスのＩ／Ｏコストが登録されるシーケンシャル欄７８、ランダムアクセスのＩ／Ｏコストが登録されるランダム欄７９を有し、ディスクＩ／Ｏコスト欄７５内には、シーケンシャルアクセスのＩ／Ｏコストが登録されるシーケンシャル欄８０、ランダムアクセスのＩ／Ｏコストが登録されるランダム欄８１を有する。
【００３６】
図６（ｂ）は、ＤＢＭＳサーバ１、２・・・が持つ先読みマネージャ管理テーブル８２(図２で示した２１に対応する)の一例を示す図である。先読みマネージャ管理テーブル８２は、管理サーバ５の先読みマネージャ４５が正常に起動しているか否かをＤＢＭＳサーバ１、２・・・が判断するために必要な先読みマネージャ４５の状態情報を示すテーブルである。先読みマネージャ管理テーブル８２の各レコードは、先読みマネージャ４５が動作する管理サーバアドレスが登録される管理サーバアドレス欄８３、管理サーバアドレス欄８３に登録される管理サーバ５上で動作する先読みマネージャ４５の実行状態が登録される先読みマネージャ状態欄８４を有する。
【００３７】
図７（ａ）は、管理サーバ５が持つ管理サーバＩ／Ｆ管理テーブル９０ (図４で示した４６に対応する) の一例を示す図である。管理サーバＩ／Ｆ管理テーブル９０の各レコードは、レコードに対応するストレージ装置３、４・・・及びＤＢＭＳサーバ１、２・・・に対する接続Ｉ／Ｆ識別子、具体的には、管理サーバ５に具備される接続Ｉ／ＦのポートＩＤの情報が登録されるＭ−Ｉ／Ｆ欄９１及び欄９１に登録された接続Ｉ／Ｆ識別子に与えられる名称の情報が登録される名前欄９２を有する。
【００３８】
図７（ｂ）は、管理サーバ５が持つ先読み管理テーブル９３(図４で示した４７に対応する)の一例を示す図である。先読み管理テーブル９３の各レコードは、先読み指示を出す管理サーバ５の先読みマネージャ４５がストレージ装置３、４・・・を識別するための名称が登録されるストレージアドレス欄９４、管理サーバ５の先読みマネージャ４５がストレージ装置３、４・・・へアクセスするときに用いる論理ユニット番号が登録される論理ユニット番号欄９５、管理サーバ５の先読みマネージャ４５が当該ストレージ装置へ先読み指示を行うに当りデータの先頭アドレスが登録される論理ブロックアドレス欄９６及び、先読みサイズが登録されるデータサイズ欄９７、先読みマネージャ４５が当該ストレージ装置３、４・・・へ先読み指示を出しているのか識別するための情報が登録される状態欄９８を有する。
【００３９】
図８は、ストレージ装置３、４・・・が持つストレージＩ／Ｆ管理テーブル１００(図３で示した３８に対応する)の一例を示す図である。ストレージＩ／Ｆ管理テーブル１００の各レコードは、レコードに対応するＤＢＭＳサーバ１、２・・・及び管理サーバ５への接続Ｉ／Ｆ識別子が登録されるＳ−Ｉ／Ｆ欄１０１、及びＳ−Ｉ／Ｆ欄１０１に登録された接続Ｉ／Ｆ識別子に与えられる名称の情報が登録される名前欄１０２を有する。
【００４０】
図９（ａ）は、ＤＢＭＳ２５がＤＢへアクセスを行うときのＤＢアクセス情報の構成例及び、ＤＢアクセス情報の一例を示す図である。ＤＢアクセス情報１１０は、ＤＢＭＳサーバ１、２・・・で動作するＤＢＭＳ識別子が登録されるＤＢＭＳ−ＩＤ欄１１１、実行する問い合わせであるクエリを識別するための識別子が登録されるクエリＩＤ欄１１２、クエリ内で実行されるスキャンを識別するための情報が登録されるスキャン識別欄１１３、ＤＢが格納されているストレージ装置３、４・・・を識別するための名称が登録されるストレージアドレス欄１１４、データが格納されている論理ユニットを識別するための番号が登録される論理ユニット番号欄１１５、データへアクセスするための先頭アドレスを示す情報が登録される先頭論理ブロックアドレス欄１１６、アクセスするデータのサイズが登録されるデータサイズ欄１１７を有する。
【００４１】
図９（ｂ）は、管理サーバ５がストレージ装置３、４・・・へ先読み指示を行うときのプリフェッチ指示情報の一例を示す図である。プリフェッチ指示情報１１８は、先読み指示を行うストレージ装置３、４・・・を識別するためのストレージ名称が登録されるストレージアドレス欄１１９、データが格納されている論理ユニットを識別するための番号が登録される論理ユニット番号欄１２０、先読み指示を行うデータの先頭アドレス情報が登録される論理ブロックアドレス欄１２１、先読み指示を行うデータのデータサイズが登録されるデータサイズ欄１２２を有する。
【００４２】
次に図１０のフローチャートに基づいて、本発明の実施の形態例の動作を説明する。
図１０（ａ）は、ＤＢＭＳサーバ１、２・・・のプラン作成マネージャ２６がクライアントプログラム２３からの問合せを受け、ストレージ装置３、４・・・に格納されているＤＢへアクセスするアクセスプランを決定し、ストレージ装置３、４・・・へアクセスを行う処理手順例を示すフローチャートである。
プラン作成マネージャ２６は、ＤＢＭＳ２５と同時に起動し、以下に示す処理フローを実行する。また、ＤＢＭＳ２５が終了するときに共に終了する。
【００４３】
まず、通信相手を探索するためにＤＢＭＳサーバ１、２・・・のプラン作成マネージャ２６は起動後一旦スリープ状態となって、クライアントプログラム２３からのアクセス要求である問合せの受信を待つ（ステップＳ１）。その後、プラン作成マネージャ２６はクライアントプログラム２３からＤＢへのアクセス要求である問合せを受信する（ステップＳ２）。
【００４４】
ここで、ＤＢＭＳサーバ１、２・・・のプラン作成マネージャ２６は、クライアントプログラム２３からのＤＢアクセス要求の問い合わせ構文を解析し（ステップＳ３）、アクセスプランの最適化処理を実行する（ステップＳ４）。具体的には、プラン作成マネージャ２６は問合せ構文からプランを生成し、コスト管理テーブル７０の現在値Ｉ／Ｏコスト欄７３に登録されているＩ／Ｏコストを参照してコスト計算を行い、実行プランを決定する。ステップＳ４のアクセスプランの最適化処理については、図１１（ａ）に示すコスト最適化処理のフローチャートに基づいて後述する。
【００４５】
このようにプラン作成マネージャ２６はアクセスプランを決定した後に、以下に示すようにストレージ装置３、４・・・に格納されているＤＢへの問合せ実行及び、管理サーバ５の先読みマネージャ４５へのアクセスプラン通知処理を行う。
【００４６】
ここで、ＤＢＭＳサーバ１、２・・・のプラン作成マネージャ２６は、管理サーバ５の先読みマネージャ４５が起動しているか否かを判断する（ステップＳ５）。具体的には、先読みマネージャ管理テーブル８２の管理サーバアドレス欄８３に登録される当該管理サーバの先読みマネージャ状態欄８４に登録される先読みマネージャ４５の状態が「ＡＬＩＶＥ」であるか否か確認する。先読みマネージャ状態欄８４が「ＡＬＩＶＥ」である場合、プラン作成マネージャ２６は、管理サーバ５の先読みマネージャ４５が正常に動作していると判断しステップＳ７に移る。先読みマネージャ状態欄８４が「ＡＬＩＶＥ」でない場合、プラン作成マネージャ２６は、管理サーバ５の先読みマネージャ４５が停止していると判断しステップＳ６に移る（ステップＳ５）。
【００４７】
次に、プラン作成マネージャ２６がステップＳ５で先読みマネージャ４５が停止していると判断した場合、ＤＢファイルシステム情報テーブル６５、ＤＢスキーマ情報テーブル５３を参照してデータが格納されているストレージ装置３、４・・・へ通常の問合せ処理を実行し、ステップＳ１へ移る（ステップＳ６）。
【００４８】
また、プラン作成マネージャ２６がステップＳ５で先読みマネージャ４５が正常に動作していると判断した場合、ステップＳ６と同様にストレージ装置３、４・・・へ先読みの問合せ処理を行うと同時に管理サーバ５へＤＢアクセス情報を通知する（ステップＳ７）。
【００４９】
図１０（ｂ）は、ＤＢＭＳサーバ１、２・・・のプラン作成マネージャ２６が管理サーバ５の先読みマネージャ４５からの起動メッセージ受信処理手順の一例を示すフローチャートである。
プラン作成マネージャ２６は、ＤＢＭＳ２５と同時に起動し、以下に示す処理フローを実行する。また、ＤＢＭＳ２５が終了するときに共に終了する。
【００５０】
まず、起動メッセージ受信処理において、プラン作成マネージャ２６は起動後スリープして、管理サーバ５の先読みマネージャ４５から起動メッセージの受信を待つ（ステップＳ１１）。次に、プラン作成マネージャ２６は先読みマネージャ４５から起動メッセージを受ける（ステップＳ１２）。次に、プラン作成マネージャ２６は、先読みマネージャ管理テーブル８２の該当管理サーバアドレスの先読みマネージャ状態欄８４を更新する（ステップＳ１３）。
【００５１】
図１１（ａ）は、ＤＢＭＳサーバ１、２・・・の図２に示すプラン作成マネージャ２６がクライアントプログラム２３からの問合せを受け、アクセスプランの最適化を行う処理手順例を示すフローチャートである。
ここでプラン作成マネージャ２６は、図１０（ａ）のステップＳ３で処理したクライアントプログラム２３からの問合せ構文解析結果からアクセスプランを生成し、そのコスト計算及びコスト比較を行ってアクセスプランを決定する処理を行う。
【００５２】
本処理フローでは、例として図１１（ｂ）に示す問合せ１３０の場合を考える。
図１１（ｂ）に示す問合せ１３０では、表Ｔ１と表Ｔ２の結合が行われる。この結合手法として、ネストループ、ソートマージ、ハッシュなどの手法がある。図１１（ａ）の例では、表Ｔ１と表Ｔ２をネストループ結合する（表Ｔ１を内表とするネストループ結合）プラン１及び、表Ｔ１と表Ｔ２をハッシュ結合するプラン２を例として挙げている。
【００５３】
まず、図１０（ａ）のステップＳ４の最適化処理を行うに当たり、プラン作成マネージャ２６は、図１０（ａ）のステップＳ３で処理したクライアントプログラム２３からの問合せ構文解析結果からアクセスプランを生成する（ステップＳ２１）。例えば、プラン１のネストループ結合では、テーブルスキャンによりシーケンシャルアクセスされる表Ａと、インデクススキャンによりランダムアクセスされる表Ｂとをネストループ結合する。また、プラン２のハッシュ結合では、インデクススキャンによりランダムアクセスされる表Ａと、インデクススキャンによりランダムアクセスされる表Ｂとをハッシュ結合する。このプラン１のネストループ結合とプラン２のハッシュ結合による結合手法及び、シーケンシャルアクセスとランダムアクセスによるアクセスの組み合わせによって各種コストが計算され、このコストに基づいてプランが作成される。次に、ステップＳ２１で生成した各プランのコスト計算を行う。具体的には、コスト管理テーブル２０に登録されているＩ／Ｏコスト情報を用いて計算する（ステップＳ２２）。次に、ステップＳ２２で計算したコスト計算結果から最も低いコストであるアクセスプランをＤＢＭＳ２５が実行するアクセスプランとして決定する（ステップＳ２３）。プラン作成マネージャ２６は、ステップＳ２３の処理が終了した後に最適化処理を終了する。
【００５４】
図１２は、ＤＢＭＳサーバ１、２・・・が管理サーバ５の先読みマネージャ４５が正常に動作しているのか確認するための処理手順例を示すフローチャートである。
まず、プラン作成マネージャ２６は、管理サーバ５の先読みマネージャ４５が正常に動作しているのか確認するプログラムを起動する。次に、先読みマネージャ管理テーブル８２に登録される管理サーバ５の先読みマネージャ４５と一定間隔の探索を行うハートビート等の通信を行う（ステップＳ３１）。続いて、管理サーバ５の先読みマネージャ４５から応答があるかどうかを判断する（ステップＳ３２）。ステップＳ３１で送信したデータに対してステップＳ３２で管理サーバ５の先読みマネージャ４５から応答があると判定された場合、プラン作成マネージャ２６は、先読みマネージャ４５は正常に動作していると判断し、ステップＳ３１へ戻る。また、ステップＳ３２で、先読みマネージャ４５からステップＳ３１で送信したデータに対する応答がないと判定された場合、プラン作成マネージャ２６は、先読みマネージャ４５が停止していると判断し、ステップＳ３３へ移る。
【００５５】
ステップＳ３２で応答がない場合、すなわち、プラン作成マネージャ２６は、先読みマネージャ４５が停止していると判断した場合、先読みマネージャ管理テーブル８２の先読みマネージャ状態欄８４欄を「Ｈａｌｔ」に変更する。また、プラン作成マネージャ２６は、管理サーバ５の先読みマネージャ４５が停止し、アクセスするデータがストレージ装置３、４・・・のキャッシュメモリ３９に載っていないと判断し、ＤＢＭＳサーバ１、２・・・のコスト管理マネージャ２７へ現在のＩ／Ｏコスト欄の値をディスクアクセスＩ／Ｏコスト欄の値へ変更するように指示する。その後にステップＳ３１へ戻る（ステップＳ３３）。
【００５６】
図１３は、ＤＢＭＳサーバ１、２・・・のプラン作成マネージャ２６がＩ／Ｏコストを計測する処理手順例を示すフローチャートである。本処理は、コスト管理テーブル７０の現在値Ｉ／Ｏコスト欄７３、キャッシュＩ／Ｏコスト欄７４、ディスクＩ／Ｏコスト欄７５のいずれかが未登録である場合にＤＢＭＳサーバ１、２・・・のプラン作成マネージャ２６が実行する。
【００５７】
まず、プラン作成マネージャ２６は、Ｉ／Ｏコストを計測するプログラムを起動する。次に、プラン作成マネージャ２６は、先読みマネージャ４５が起動しているか否かを確認する（ステップＳ４１）。具体的には、プラン作成マネージャ２６は、先読みマネージャ管理テーブル８２の先読みマネージャ状態欄８４を参照し、管理サーバ５の先読みマネージャ４５が「ＡＬＩＶＥ」状態（正常に動作している）か否かを判断する（ステップＳ４１）。ステップＳ４１で、先読みマネージャ４５が正常に動作していると判断された場合、プラン作成マネージャ２６は、ＤＢＭＳ２５がストレージ装置３、４・・・へ問合せを行う図１０（ａ）のステップＳ７で先読みアクセスのＩ／Ｏ時間を計測する（ステップＳ４２）。
【００５８】
ステップＳ４１で先読みマネージャ４５が正常に動作していない（停止している）と判断された場合、プラン作成マネージャ２６は、ＤＢＭＳ２５がストレージ装置３、４・・・へ問合せを行うステップ図１０（ａ）のＳ６で通常アクセスのＩ／Ｏ時間を計測する（ステップＳ４４）。その後にステップＳ４３へ移る（ステップＳ４４）。次に、計測した先読みアクセス又は通常アクセスのＩ／Ｏ時間をパラメータを用いてコスト情報として変換し、Ｉ／Ｏコスト更新指示をＤＢＭＳサーバ１、２・・・のコスト管理マネージャ５へ出し、処理を終了する（ステップＳ４３）。
【００５９】
図１４は、ＤＢＭＳサーバ１、２・・・のコスト管理マネージャ２７がコスト管理テーブル２０を更新する処理手順例を示すフローチャートである。
コスト管理マネージャ２７は、ＤＢＭＳ２５と同時に起動し、以下に示す処理フローを実行する。また、ＤＢＭＳ２５が終了するときに共に終了する。
【００６０】
まず、コスト管理マネージャ２７は、コスト管理テーブル２０を更新処理するプログラムを起動する。次に、コスト管理マネージャ２７は、コスト管理テーブル２０を更新処理するプログラムを起動後スリープさせて、プラン作成マネージャ２６からＤＢへのアクセスＩ／Ｏコスト更新指示の受信を待つ（ステップＳ５１）。そして、コスト管理マネージャ２７は、プラン作成マネージャ２６からＤＢへのアクセスＩ／Ｏコスト更新指示を受ける（ステップＳ５２）。次に、コスト管理マネージャ２７はコスト管理テーブル２０の該当欄のコスト情報を更新処理し、その後にステップＳ５１に戻る（ステップＳ５３）。ここで、コスト管理マネージャ２７に限らず、管理サーバ５の先読みマネージャ４５がＩ／Ｏコスト更新指示をしてもよい。
【００６１】
図１５は、管理サーバ５の先読みマネージャ４５がＤＢＭＳサーバ１、２・・・からアクセスプランを受信し、ストレージ装置３、４・・・へ先読み指示する処理手順例を示すフローチャートである。先読みマネージャ４５は、起動後以下に示す処理フローを実行する。
【００６２】
まず、先読みマネージャ４５は、先読み指示するプログラムを起動する。次に、先読みマネージャ４５は、ＤＢＭＳサーバ１、２・・・へ先読みマネージャ４５が起動したという起動メッセージを送信する（ステップＳ６１）。先読みマネージャ４５の先読みを指示するプログラムは、起動後スリープして、ＤＢＭＳサーバ１、２・・・からアクセスプランの受信を待つ（ステップＳ６２）。そして、先読みマネージャ４５はＤＢＭＳサーバ１、２・・・からアクセスプランを受信する（ステップＳ６３）。次に、先読みマネージャ４５は、ステップＳ６３で受信したアクセスプランの情報を元に先読み管理テーブル９３の更新処理を行い、受信したアクセスプランの情報を元にストレージ装置３、４・・・へ先読み指示を行う（ステップＳ６４）。
【００６３】
この時、ストレージ装置３、４・・・へ先読み指示を行うデータタイプは、図９（ｂ）に示す通りである。この図９（ｂ）に示すデータ１１８にヘッダ情報を加え、ストレージ装置３、４・・・へ先読み指示を行う。
本実施の形態例において、管理サーバ５はストレージ装置３、４・・・とＬＡＮ等の通信経路１０を使用して通信を行うとしているが、ＤＢＭＳサーバ１、２・・・とストレージ装置３、４・・・間でＤＢＭＳ２５がアクセスを行う際に使用される経路であるＦＣ等の通信路６、８を管理サーバ５が用いる実施形態であってもよい。
また、ステップＳ６４のヘッダ情報の種類によってはストレージ装置３、４・・・から先読み指示に対する応答を行う処理がある場合も考えられる。
【００６４】
本実施の形態例により、管理サーバ５の先読みマネージャ４５が何らかの原因で処理が停止した場合、ＤＢＭＳサーバ１、２・・・のプラン先読みマネージャ２７は、管理サーバ５の先読みマネージャ４５が停止したことを把握し、クライアントプログラム２３から問合せを受け、アクセスコストを最適化するときにより適した実行アクセスプランを選択することが可能になる。この時、ＤＢＭＳサーバ１、２・・・のプラン作成マネージャ２６が管理者へ上記アクセスプラン変更処理を通知する表示例を図１６に示す。
【００６５】
以下、本発明の他の実施の形態について、説明する。この他の実施の形態は、ＤＢＭＳサーバが複数設けられたときに、複数のＤＢＭＳサーバから複数のアクセス要求があったときの管理サーバの動作を示すものである。
本実施の形態例では、管理サーバ５の先読みマネージャ４５がストレージ装置３、４・・・へ先読み指示を出してからその完了応答をストレージ装置３、４・・・から受けるまでの応答時間を計測し、その計測情報からストレージ装置３、４・・・の状況を把握し、ＤＢＭＳサーバ１、２・・・へＩ／Ｏコストの変更を指示する。
【００６６】
図１７は、管理サーバ５に管理者が指定する応答時間指定情報の一例を示す図である。応答時間指定情報１７０は、管理サーバ５の先読みマネージャ４５がストレージ装置３、４・・・へ先読みを行った時に、その応答時間が本情報に指定される時間以上（以下）になったかどうか判断する情報である。応答時間指定情報１７０は、応答時間（遅延）欄１７１、応答時間（回復）欄１７２及び、遅延コスト欄１７３を有する。
【００６７】
また、遅延コスト欄１７３は、シーケンシャル欄１７４及び、ランダム欄１７５を有する。応答時間（遅延）欄１７１に登録される情報は、管理サーバ５がストレージ装置３、４・・・へ先読み指示を出してから、先読み終了の応答をストレージ装置３、４・・・から受け取るまでの応答時間と比較して応答時間（遅延）欄１７１の値以上の時間になった場合に、ＤＢＭＳサーバ１、２・・・のコスト管理マネージャ２７へ遅延コスト欄１７３に登録されるＩ／Ｏコストへの変更指示を行うための情報である。応答時間（回復）欄１７２に登録される情報は、管理サーバ５がストレージ装置３、４・・・へ先読み指示を出してから、先読み終了の応答をストレージ装置３、４・・・から受け取るまでの応答時間と比較して応答時間（回復）欄１７２の値以上の時間になった場合に、ＤＢＭＳサーバ１、２・・・のコスト管理マネージャ２７へＩ／Ｏコストの変更を行うための判断する情報である。この応答時間情報は管理者によって登録される。
【００６８】
図１８は、管理サーバ５の先読みマネージャ４５がストレージ装置３、４・・・へ先読み指示を行った応答の時間を計測し、ストレージ装置３、４・・・の状態を応答時間から推測してＩ／Ｏコストの変更をＤＢＭＳサーバ１、２・・・のコスト管理マネージャ２７へ指示する処理手順例を示すフローチャートである。先読みマネージャ４５は、起動後以下に示す処理フローを実行する。
【００６９】
まず、先読みマネージャ４５は、ストレージ装置３、４・・・に先読み指示を行ってからストレージ装置３、４・・・から先読み終了の応答を受け取るまでの時間を計測する（ステップＳ７１）。次に、先読みマネージャ４５は、ステップＳ７１で計測した応答時間が、応答時間指定情報１７０の応答時間（遅延）欄１７１に登録される時間以上になったかどうかを比較する（ステップＳ７２）。その結果、応答時間指定情報１７０の応答時間（遅延）欄１７１に登録される時間以上であった場合はステップＳ７５へ移り、時間以内であった場合にはステップＳ７３へ移る。
【００７０】
ステップＳ７２で、応答時間指定情報１７０の応答時間（遅延）欄１７１に登録される時間以下であると判断された場合は、次に、先読みマネージャ４５は、ステップＳ７１で計測した応答時間が、応答時間指定情報１７０の応答時間（回復）欄１７２に登録される時間以下になったかどうかを比較する（ステップＳ７３）。その結果、応答時間指定情報１７０の応答時間（回復）欄１７２に登録される時間以上であった場合はステップＳ７１へ戻り、時間以内であった場合にはステップＳ７４へ移る。
【００７１】
そして、ステップＳ７３で応答時間指定情報１７０の応答時間（回復）欄１７２に登録される時間以内であったと判断された場合、先読みマネージャ４５は、ステップＳ７１で計測した応答時間をＤＢＭＳサーバ１、２・・・のコスト管理マネージャ２７へ通知し、コスト管理テーブル７０の現在値欄７３に登録される値を変更する指示を出し（ステップＳ７４）、その後にステップＳ７１へ戻る。
【００７２】
ステップＳ７２で応答時間指定情報１７０の応答時間（遅延）欄１７１に登録される時間よりもステップＳ７１で計測した応答時間が長いと判断された場合、先読みマネージャ４５は、ＤＢＭＳサーバ１、２・・・のコスト管理マネージャ２７へコスト管理テーブル７０の現在値欄７３を応答時間指定情報１７０の遅延コスト欄１７３に登録されるコストへ変更するように指示を出し（ステップＳ７５）、その後にステップＳ７１に戻る。
【００７３】
本実施の形態例により、管理サーバ５からの先読み要求もしくはＤＢＭＳサーバ１、２・・・からのアクセス要求が多くなった時に、ストレージ装置３、４・・・の状態を先読みマネージャ４５が先読み指示を出してからその終了をストレージ装置３、４・・・から受け取るまでの応答時間で把握することによって、ストレージ装置３、４・・・の負荷に応じて適切なＩ／ＯをＤＢＭＳサーバ１、２・・・のＤＢＭＳ２５が用いてアクセスすることができる。
【００７４】
なお、上述した本実施の形態により本発明が限定されるものではない。上述した本実施の形態に限らず、本発明の範囲内であれば、適宜、変更しうることはいうまでもない。
【図面の簡単な説明】
【００７５】
【図１】計算機システムの構成例を示す図である。
【図２】ＤＢＭＳサーバの構成例を示す図である。
【図３】ストレージ装置の構成例を示す図である。
【図４】管理サーバの構成例を示す図である。
【図５】ＤＢＭＳサーバが持つ各種テーブルの構成例を示す図である。
【図６】ＤＢＭＳサーバが持つ各種テーブルの構成例を示す図である。
【図７】管理サーバが持つ各種テーブルの構成例を示す図である。
【図８】ストレージ装置が持つテーブルの構成例を示す図である。
【図９】ＤＢＭＳサーバと管理サーバ及び、管理サーバとストレージ装置間でやり取りが行われるデータの構成例を示す図である。
【図１０】ＤＢＭＳサーバがクライアントから問合せ要求を受け、ＤＢへ問合せを実行する処理の一例を示すフローチャートである。
【図１１】ＤＢＭＳサーバが実行プランを決定する最適化処理の一例を示すフローチャートである。
【図１２】プラン作成マネージャによる管理サーバの先読みマネージャが正常に動作しているかを確認する処理の一例を示すフローチャートである。
【図１３】プラン作成マネージャがＩ／Ｏコストを確認する処理の一例を示すフローチャートである。
【図１４】コスト管理マネージャがコスト管理テーブルを操作する処理の一例を示すフローチャートである。
【図１５】先読みマネージャがストレージ装置へ先読みを指示する処理の一例を示すフローチャートである。
【図１６】先読みマネージャが停止し、ＤＢＭＳサーバでプランを変更するという内容表示の一例を示す図である。
【図１７】管理サーバが持つ応答時間指定情報テーブルの構成例を示す図である。
【図１８】先読みマネージャが先読み処理の中でストレージ装置のＩ／Ｏコストを把握し、ＤＢＭＳサーバへＩ／Ｏコストの変更指示を出す処理の一例を示すフローチャートである。
【符号の説明】
【００７６】
１、２・・・…ＤＢＭＳサーバ、３、４・・・…ストレージ装置、５…管理サーバ、２５…ＤＢＭＳ、２６…プラン作成マネージャ、２７…コスト管理マネージャ、４５…先読みマネージャ
【図１】
2006127418.tif 000003
【図２】
2006127418.tif 000004
【図３】
2006127418.tif 000005
【図４】
2006127418.tif 000006
【図５】
2006127418.tif 000007
【図６】
2006127418.tif 000008
【図７】
2006127418.tif 000009
【図８】
2006127418.tif 000010
【図９】
2006127418.tif 000011
【図１０】
2006127418.tif 000012
【図１１】
2006127418.tif 000013
【図１２】
2006127418.tif 000014
【図１３】
2006127418.tif 000015
【図１４】
2006127418.tif 000016
【図１５】
2006127418.tif 000017
【図１６】
2006127418.tif 000018
【図１７】
2006127418.tif 000019
【図１８】
2006127418.tif 000020