(57)【特許請求の範囲】
【請求項１】
データベース管理システムが動作する一又は複数のデータベース計算機と、前記データベース管理システムによって操作されるデータベースを格納する記憶装置と、前記データベース計算機及び前記記憶装置を管理する管理計算機と、を有する計算機システムであって、
前記記憶装置は、データを一時的に格納するキャッシュメモリ及び前記データベースを格納する物理ディスク装置を有し、
前記管理計算機は、
当該データベース管理システムが動作するデータベース計算機へ割り当てられている前記キャッシュメモリの割当量を変更し、
前記変更したキャッシュメモリの割当量に応じて、前記データベースに対するクエリに応じた前記データベースへのアクセス方法を示すアクセスプランの変更を前記データベース管理システムへ指示することを特徴とする計算機システム。
【請求項２】
前記管理計算機は、
前記データベース計算機へ割り当てられている前記キャッシュメモリの割当量が増加すると、前記キャッシュメモリの使用量が多いアクセスプランへの変更を前記データベース管理システムへ指示し、
前記データベース計算機へ割り当てられている前記キャッシュメモリの割当量が減少すると、前記キャッシュメモリの使用量が少ないアクセスプランへの変更を前記データベース管理システムへ指示することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記管理計算機は、前記一又は複数のデータベース計算機の一つで動作するデータベース管理システムが使い終わったデータを格納しているキャッシュメモリ上の領域を、他のデータベース管理システムが動作するデータベース計算機に割り当てることによって、前記キャッシュメモリの割当量を変更することを特徴とする請求項１に記載の計算機システム。
【請求項４】
前記管理計算機は、前記キャッシュメモリの割当量の変更において、前記キャッシュメモリ上の複数領域における一部の領域の割り当てを維持しながら、アクセス頻度が前記一部の領域のデータよりも低いデータが記憶されている領域の割り当てを変更することを特徴とする請求項１に記載の計算機システム。
【請求項５】
前記管理計算機は、
前記データベース管理システムが前記キャッシュメモリへアクセスする頻度を監視し、
前記監視したアクセス頻度を記憶し、
前記記憶したアクセス頻度に基づいて、前記キャッシュメモリの割当量を変更することを特徴とする請求項４に記載の計算機システム。
【請求項６】
データベース管理システムが動作する一又は複数のデータベース計算機と、データを一時的に格納するキャッシュメモリ及び前記データベース管理システムによって操作されるデータベースを格納する物理ディスク装置を有する記憶装置と、を管理する管理計算機であって、
当該データベース管理システムが動作するデータベース計算機へ割り当てられている前記キャッシュメモリの割当量を変更し、
前記変更したキャッシュメモリの割当量に応じて、前記データベースに対するクエリに応じた前記データベースへのアクセス方法を示すアクセスプランの変更を前記データベース管理システムへ指示することを特徴とする管理計算機。
【請求項７】
前記データベース計算機へ割り当てられている前記キャッシュメモリの割当量が増加すると、前記キャッシュメモリの使用量が多いアクセスプランへの変更を前記データベース管理システムへ指示し、
前記データベース計算機へ割り当てられている前記キャッシュメモリの割当量が減少すると、前記キャッシュメモリの使用量が少ないアクセスプランへの変更を前記データベース管理システムへ指示することを特徴とする請求項６に記載の管理計算機。
【請求項８】
前記一又は複数のデータベース計算機の一つで動作するデータベース管理システムが使い終わったデータを格納しているキャッシュメモリ上の領域を、他のデータベース管理システムが動作するデータベース計算機に割り当てることによって、前記キャッシュメモリの割当量を変更することを特徴とする請求項６に記載の管理計算機。
【請求項９】
前記キャッシュメモリの割当量の変更において、前記キャッシュメモリ上の複数領域における一部の領域の割り当てを維持しながら、アクセス頻度が前記一部の領域のデータよりも低いデータが記憶されている領域の割り当てを変更することを特徴とする請求項６に記載の管理計算機。
【請求項１０】
前記データベース管理システムが前記キャッシュメモリへアクセスする頻度を監視し、
前記監視したアクセス頻度を記憶し、
前記記憶したアクセス頻度に基づいて、前記キャッシュメモリの割当量を変更することを特徴とする請求項９に記載の管理計算機。
【請求項１１】
データベース管理システムが動作する一又は複数のデータベース計算機と、前記データベース管理システムによって操作されるデータベースを格納する記憶装置と、前記データベース計算機及び前記記憶装置を管理する管理計算機と、を有する計算機システムにおけるデータベース管理システムの制御方法であって、
前記記憶装置は、データを一時的に格納するキャッシュメモリ及び前記データベースを格納する物理ディスク装置を有し、
前記管理計算機は、
当該データベース管理システムが動作するデータベース計算機へ割り当てられている前記キャッシュメモリの割当量を変更し、
前記変更したキャッシュメモリの割当量に応じて、前記データベースに対するクエリに応じた前記データベースへのアクセス方法を示すアクセスプランの変更を前記データベース管理システムへ指示することを特徴とするデータベース管理システムの制御方法。
【請求項１２】
前記管理計算機は、
前記データベース計算機へ割り当てられている前記キャッシュメモリの割当量が増加すると、前記キャッシュメモリの使用量が多いアクセスプランへの変更を前記データベース管理システムへ指示し、
前記データベース計算機へ割り当てられている前記キャッシュメモリの割当量が減少すると、前記キャッシュメモリの使用量が少ないアクセスプランへの変更を前記データベース管理システムへ指示することを特徴とする請求項１１に記載のデータベース管理システムの制御方法。
【請求項１３】
前記管理計算機は、前記一又は複数のデータベース計算機の一つで動作するデータベース管理システムが使い終わったデータを格納しているキャッシュメモリ上の領域を、他のデータベース管理システムが動作するデータベース計算機に割り当てることによって、前記キャッシュメモリの割当量を変更することを特徴とする請求項１１に記載のデータベース管理システムの制御方法。
【請求項１４】
前記管理計算機は、前記キャッシュメモリの割当量の変更において、前記キャッシュメモリ上の複数領域における一部の領域の割り当てを維持しながら、アクセス頻度が前記一部の領域のデータよりも低いデータが記憶されている領域の割り当てを変更することを特徴とする請求項１１に記載のデータベース管理システムの制御方法。
【請求項１５】
前記管理計算機は、
前記データベース管理システムが前記キャッシュメモリへアクセスする頻度を監視し、
前記監視したアクセス頻度を記憶し、
前記記憶したアクセス頻度に基づいて、前記キャッシュメモリの割当量を変更することを特徴とする請求項１４に記載のデータベース管理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースを操作するデータベース管理システムを有する計算機システムに関し、特に、最適なアクセスプランを選択する技術に関する。
【背景技術】
【０００２】
現在、企業等の組織では、データベース（ＤＢ）に膨大な量のデータが格納されている。そのため、ＤＢからデータを収集するデータベース管理システム（ＤＢＭＳ）が重要になっている。
【０００３】
一般的には、ＤＢＭＳはサーバ上で動作する。そして、当該サーバは、ストレージ装置に接続され、接続されているストレージ装置にＤＢデータを格納する。
【０００４】
ここで、ＤＢＭＳの処理について説明する。
【０００５】
まず、ＤＢＭＳは、クライアントから問合せを受けると、最適化処理を行う。最適化処理は、クライアントからの問合せを実行するのに最も効率が良いアクセスプランを選択する処理である。そして、ＤＢＭＳは、選択したアクセスプランによって、ＤＢへアクセスする。
【０００６】
なお、最適化処理として、ルールベース又はコストベースが知られている。
【０００７】
ルールベースの最適化処理は、クライアントから問合せを行うコード（ＳＱＬ文）の記載方法等に基づいて、アクセスプランを決定する。一方、コストベースの最適化処理は、ＤＢＭＳが動作しているサーバのＣＰＵ速度（ＣＰＵコスト）等の情報に基づいて、アクセスプランを決定する。
【０００８】
ＤＢＭＳにルールベースの最適化処理を採用するためには、クライアントに相当の知識が必要とされる。このため、一般的なＤＢＭＳには、コストベースの最適化処理が採用されている。
【０００９】
ＤＢＭＳは、アクセスプランを実行中に、実行可能且つ低コストな他のアクセスプランを発見すると、アクセスプランを変更する技術が知られている（例えば、非特許文献１参照。）。
【００１０】
ストレージ装置は、接続されているサーバからの要求（書き込み要求又は読み出し要求）を受けると、以下のように処理する。
【００１１】
ストレージ装置は、ディスク装置及びキャッシュメモリを備える。ディスク装置は、データを記憶する不揮発性記憶媒体（例えば、ハードディスクドライブ等。）である。キャッシュメモリは、データを一時的に記憶する揮発性記憶媒体（例えば、半導体メモリ等。）である。
【００１２】
ストレージ装置は、サーバから読み出し要求を受けると、要求されたデータがキャッシュメモリに格納されているか否かを判定する。
【００１３】
キャッシュメモリに格納されていると、キャッシュメモリからデータを読み出す。そして、読み出したデータをサーバへ応答し、処理を終了する。
【００１４】
一般的に、キャッシュメモリは、データ読み出し速度がディスク装置より速い。よって、ストレージ装置は、ディスク装置でなくキャッシュメモリからデータを読み出すことによって、サーバへの応答を高速化できる。
【００１５】
通常、ストレージ装置は、一つのキャッシュメモリを備える。また、ストレージ装置は、複数のサーバに接続されている。この場合、キャッシュメモリは、当該ストレージ装置に接続されている複数のサーバで共用される。そして、それぞれのサーバは、キャッシュメモリの使用量を規制されていない。
【００１６】
このため、一つのサーバが大量のデータの読み出し要求を行うと、キャッシュメモリが当該サーバによって占有されてしまう。このため、キャッシュメモリを共用する他のサーバのアプリケーションの性能が劣化するという問題があった。
【００１７】
この問題を解決するために、キャッシュメモリ上の記憶領域をサーバごとに割り当てる技術が知られている（例えば、非特許文献２参照。）。この技術では、それぞれのサーバは、割り当てられた記憶領域を占有する。
【００１８】
また、キャッシュメモリ上の記憶領域をサーバごとに割り当てた後、割り当てを変更する技術が知られている（例えば、特許文献１参照。）。この技術では、サーバは、アプリケーションの性能要求を満たさなくなると、他のサーバに割り当てられているキャッシュメモリ上の記憶領域を供出してもらう。そして、サーバは、他のサーバから供出してもらった記憶領域を使用することによって、アプリケーションの性能要求を満たす。
【特許文献１】特開２００４−２９５７９０号公報
【非特許文献１】Volker Markl、Vijayshankar Raman、David Simmen、Guy Lohman、Hamid Pirahes、Miso Cilimdzic：「Robust query processing through progressive optimization」、Proc. of the 2004 ACM SIGMOD International Conference on Management of Data、2004年、ｐ.659-670
【非特許文献２】Hitachi TagmaStore Universal Storage Platform、インターネット（ＵＲＬ：http://www.hds.com/pdf/wp168_tagmastore_virtualization.pdf）
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかし、従来技術（特許文献１）によると、ＤＢＭＳは、自身が動作しているサーバに割り当てられているキャッシュメモリの記憶領域の容量（キャッシュ割当量）の変更を認識できなかった。そのため、ＤＢＭＳは、キャッシュ割当量の変更を考慮せずに、ＤＢへアクセスするアクセスプランを作成していた。よって、ＤＢＭＳは、キャッシュ割当量を有効に利用できず、性能を向上できなかった。
【００２０】
本発明は、前述した問題点に鑑みてなされたものであり、ＤＢＭＳがキャッシュ割当量を有効に利用する計算機システムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明は、データベース管理システムが動作する一又は複数のデータベース計算機と、前記データベース管理システムによって操作されるデータベースを格納する記憶装置と、前記データベース計算機及び前記記憶装置を管理する管理計算機と、を有する計算機システムであって、前記記憶装置は、データを一時的に格納するキャッシュメモリ及び前記データベースを格納する物理ディスク装置を有し、前記管理計算機は、当該データベース管理システムが動作するデータベース計算機へ割り当てられている前記キャッシュメモリの割当量を変更し、前記変更したキャッシュメモリの割当量に応じて、前記データベースに対するクエリに応じた前記データベースへのアクセス方法を示すアクセスプランの変更を前記データベース管理システムへ指示することを特徴とする。
【発明の効果】
【００２２】
本発明のＤＢＭＳは、ストレージ装置のキャッシュメモリの記憶領域を有効に利用できる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を図面を参照して説明する。
【００２４】
図１は、本発明の実施の形態の計算機システムのブロック図である。
【００２５】
計算機システムは、ＤＢＭＳサーバ２０００、ストレージ装置３０００及び管理サーバ１０３０を備える。
【００２６】
ＤＢＭＳサーバ２０００、ストレージ装置３０００及び管理サーバ１０３０は、ネットワーク１０２０を介して、相互に接続されている。ネットワーク１０２０は、例えば、ローカルエリアネットワーク（ＬＡＮ）である。また、ネットワーク１０２０には、ルータ等のネットワーク機器が備えられていてもよい。
【００２７】
また、ＤＭＭＳサーバ２０００とストレージ装置３０００とは、ネットワーク１０００を介して、相互に接続されている。ネットワーク１０００は、例えば、ファイバチャネル（ＦＣ）である。また、ネットワーク１０００には、ＦＣスイッチ等のネットワーク機器が備えられていてもよい。
【００２８】
ストレージ装置３０００は、図３で後述するが、データベース（ＤＢ）が格納される物理ディスクを備える。なお、ストレージ装置３０００は、二台を図示しているが、何台備えられていてもよい。
【００２９】
ＤＢＭＳサーバ２０００は、図２で後述するが、データベース管理システム（ＤＢＭＳ）を実行する。ＤＢＭＳは、ＤＢＭＳサーバ２０００で実行されるプログラムであり、ストレージ装置３０００に格納されているＤＢを制御する。ＤＢの制御には、ＤＢの更新、ＤＢの検索、テーブルの作成及びテーブルの定義等が含まれる。なお、ＤＢＭＳサーバ２０００は、二台を図示しているが、何台備えられていてもよい。
【００３０】
管理サーバ１０３０は、図４で後述するが、ＤＢＭＳサーバ２０００及びストレージ装置３０００を管理する。
【００３１】
具体的には、管理サーバ１０３０は、ストレージ装置３０００のキャッシュメモリの割り当ての変更を検知すると、キャッシュ割当量が変更されたＤＢＭＳサーバ２０００からアクセスプランを取得する。次に、管理サーバ１０３０は、取得したアクセスプランを参照して、変更されたキャッシュ割当量に応じたアクセスプランを作成する。そして、管理サーバ１０３０は、作成したアクセスプランへの変更をＤＢＭＳサーバ２０００に指示する。すると、ＤＢＭＳサーバ２０００は、指示されたアクセスプランに変更する。これによって、ＤＢＭＳサーバ２０００は、高速に処理できるアクセスプランを選択できる。
【００３２】
なお、管理サーバ１０３０は、独立した計算機であってもよいし、ＤＢＭＳサーバ２０００又はストレージ装置３０００に含まれていてもよい。
【００３３】
計算機システムには、ＤＢＭＳサーバ２０００へアクセスする計算機（クライアント）が備えられていてもよい。
【００３４】
図２は、本発明の実施の形態のＤＢＭＳサーバ２０００のブロック図である。
【００３５】
ＤＢＭＳサーバ２０００は、プロセッサ２０１２、記憶領域２０１６、Ｅｔｈｅｒ  Ｉ／Ｆ２０１５、ＦＣ  Ｉ／Ｆ２０１４及び出力装置２０１３を備える。
【００３６】
ＤＢＭＳサーバ２０００を構成するこれらの装置は、内部バス等の通信路２０１１を介して相互に接続されている。Ｅｔｈｅｒ  Ｉ／Ｆ２０１５及びＦＣ  Ｉ／Ｆ２０１４は、一つずつを図示しているが、複数備えられていてもよい。
【００３７】
プロセッサ２０１２は、記憶領域２０１６に記憶されているプログラムを実行することによって、各種処理を行う。
【００３８】
Ｅｔｈｅｒ  Ｉ／Ｆ２０１５は、ネットワーク１０２０を介して、外部の装置と接続するインタフェースである。Ｅｔｈｅｒ  Ｉ／Ｆ２０１５は、イーサネットプロトコルを用いて通信する。Ｅｔｈｅｒ  Ｉ／Ｆ２０１５が接続する外部の装置には、管理サーバ１０３０、ストレージ装置３０００及びクライアント等が含まれる。
【００３９】
ＦＣ  Ｉ／Ｆ２０１４は、ネットワーク１０００を介して、外部の装置と接続するインタフェースである。ＦＣ  Ｉ／Ｆ２０１４は、ファイバチャネルプロトコルを用いて通信する。ＦＣ  Ｉ／Ｆ２０１４が接続する外部の装置には、ストレージ装置３０００等が含まれる。
【００４０】
出力装置２０１３は、例えば、ディスプレイ等であり、各種情報を出力する。
【００４１】
記憶領域２０１６には、オペレーティングシステム（ＯＳ）２００７、ＤＢＭＳ２００８、クライアントプログラム２００６、ＤＢスキーマ情報テーブル５１００、データ領域情報テーブル５２００、ＤＢファイルシステム情報テーブル５３００及びＤＢＭＳ領域情報テーブル５４００等が記憶されている。
【００４２】
ＯＳ２００７は、ＤＢＭＳサーバ２０００の全体を管理する。また、ＯＳ２００７は、ＤＢファイルシステムを含む。ＤＢファイルシステムは、ストレージ装置３０００に格納されているＤＢからファイルを取得し、取得したファイルを他のプログラムに提供する。
【００４３】
クライアントプログラム２００６は、クライアントからデータを要求されると、要求されたデータをＤＢＭＳ２００８へ問い合わせる。
【００４４】
ＤＢＭＳ２００８は、プラン作成マネージャ２００９を含み、ストレージ装置３０００に格納されているＤＢを制御する。プラン作成マネージャ２００９は、クライアントプログラム２００６から問い合せを受けると、アクセスプランを作成する。
【００４５】
なお、記憶領域２０１６には、ＤＢＭＳ２００８が複数記憶されていてもよい。この場合、それぞれのＤＢＭＳ２００８には、一意な識別子が付与される。
【００４６】
ＤＢスキーマ情報テーブル５１００は、図５Ａで後述するが、ＤＢＭＳ２００８が管理するＤＢの論理的構造（ＤＢスキーマ）に関する情報を示す。
【００４７】
データ領域情報テーブル５２００は、図５Ｂで後述するが、ＯＳ２００７が管理するデータ領域に関する情報を示す。
【００４８】
ＤＢファイルシステム情報テーブル５３００は、図５Ｃで後述するが、ＯＳ２００７がＤＢにアクセスする際に必要な情報を示す。
【００４９】
ＤＢＭＳ領域情報テーブル５４００は、図５Ｄで後述するが、ＤＢＭＳ２００８がアクセスするストレージ装置３０００の物理ディスクに関する情報を示す。
【００５０】
図３は、本発明の実施の形態のストレージ装置３０００のブロック図である。
【００５１】
ストレージ装置３０００は、コントローラ３００５、記憶領域３００４、物理ディスク３００６、Ｅｔｈｅｒ  Ｉ／Ｆ３００７及びＦＣ  Ｉ／Ｆ３００８を備える。
【００５２】
なお、Ｅｔｈｅｒ  Ｉ／Ｆ３００７及びＦＣ  Ｉ／Ｆ３００８は、それぞれ一つを図示するが、複数備えられていてもよい。また、物理ディスク３００６は、四台を図示しているが、いくつ備えられていてもよい。
【００５３】
コントローラ３００５は、ストレージ装置３０００の全体を制御する。また、コントローラ３００５は、ＣＰＵ等を備え、記憶領域３００４に記憶されているプログラムを実行することによって、各種処理を行う。
【００５４】
Ｅｔｈｅｒ  Ｉ／Ｆ３００７は、ネットワーク１０２０を介して、外部の装置と接続するインタフェースである。Ｅｔｈｅｒ  Ｉ／Ｆ３００７が接続する外部の装置には、管理サーバ１０３０及びＤＢＭＳサーバ２０００等が含まれる。
【００５５】
ＦＣ  Ｉ／Ｆ３００８は、ネットワーク１０００を介して、外部の装置と接続するインタフェースである。ＦＣ  Ｉ／Ｆ３００８が接続する外部の装置には、ＤＢＭＳサーバ２０００等が含まれる。
【００５６】
物理ディスク３００６には、ＤＢを含む情報が記憶されている。なお、ＤＢＭＳサーバ２０００は、物理ディスク３００６を論理ユニットとして認識する。つまり、ＤＢＭＳサーバ２０００は、論理ユニット番号及びオフセットアドレスを使って、物理ディスク３００６に格納されているデータにアクセスする。オフセットアドレスは、当該論理ユニット内の相対的なアドレスである。
【００５７】
なお、物理ディスク３００６は、ＲＡＩＤ構成であってもよい。この場合、ＤＢＭＳサーバ２０００は、論理ユニット番号及び論理アドレスを使って、物理ディスク３００６に格納されているデータにアクセスする。
【００５８】
記憶領域３００４は、不揮発性のメモリ装置である。記憶領域３００４には、キャッシュメモリ３００３として使用される領域が含まれる。また、記憶領域３００４には、キャッシュ割当管理テーブル８４００、キャッシュデータ管理テーブル８５００及び制御マネージャ３００１等が記憶されている。
【００５９】
キャッシュ割当管理テーブル８４００は、図６Ａで後述するが、キャッシュメモリ３００３の割り当ての状況に関する情報を示す。
【００６０】
キャッシュデータ管理テーブル８５００は、図６Ｂで後述するが、キャッシュメモリ３００３が記憶しているデータに関する情報を示す。
【００６１】
制御マネージャ３００１は、管理サーバ１０３０からの要求に応じて物理ディスク３００６に格納されているデータを呼び出し、呼び出したデータをキャッシュメモリ３００３に格納する。
【００６２】
図４は、本発明の実施の形態の管理サーバ１０３０のブロック図である。
【００６３】
管理サーバ１０３０は、プロセッサ１０３１、記憶領域１０３４、Ｅｔｈｅｒ  Ｉ／Ｆ１０３３及び出力装置１０３２を備える。管理サーバ１０３０を構成するこれらの装置は、内部バス等の通信路１０３５を介して相互に接続されている。
【００６４】
なお、Ｅｔｈｅｒ  Ｉ／Ｆ１０３３は、一つを図示しているが、複数備えられていてもよい。
【００６５】
Ｅｔｈｅｒ  Ｉ／Ｆ１０３３は、ネットワーク１０２０を介して、外部の装置と接続するインタフェースである。Ｅｔｈｅｒ  Ｉ／Ｆ１０３３が接続する外部の装置には、ＤＢＭＳサーバ２０００及びストレージ装置３０００等が含まれる。
【００６６】
出力装置１０３２は、例えば、ディスプレイ等であり、各種情報を出力する。
【００６７】
記憶領域１０３４には、管理マネージャ１０５０、アクセスプラン情報テーブル７２００、ストレージキャッシュ管理テーブル７３００、ストレージキャッシュ割当管理テーブル７４００、ＤＢＭＳ統計情報テーブル７５００、構成情報テーブル７６００及びＤＢＭＳ性能情報テーブル７７００等が記憶されている。
【００６８】
管理マネージャ１０５０は、ストレージ装置３０００のキャッシュメモリ３００３の割り当ての変更を検知すると、ＤＢＭＳ２００８へアクセスプランの変更を指示する。管理マネージャ１０５０の処理の詳細は、図１２及び図１３で後述する。
【００６９】
アクセスプラン情報テーブル７２００は、図７Ａで後述するが、ＤＢＭＳサーバ２０００が作成したアクセスプランに関する情報を示す。
【００７０】
ストレージキャッシュ管理テーブル７３００は、図７Ｂで後述するが、ストレージ装置３０００のキャッシュメモリ３００３に格納されているデータに関する情報を示す。
【００７１】
ストレージキャッシュ割当管理テーブル７４００は、図７Ｃで後述するが、ストレージ装置３０００のキャッシュメモリ３００３の割り当ての変更履歴を示す。
【００７２】
ＤＢＭＳ統計情報テーブル７５００は、図７Ｄで後述するが、ストレージ装置３０００に格納されているＤＢに含まれる表及び索引に関する情報を示す。
【００７３】
構成情報テーブル７６００は、図７Ｅで後述するが、ストレージ装置３０００に格納されているＤＢに関する情報を示す。
【００７４】
ＤＢＭＳ性能情報テーブル７７００は、図７Ｆで後述するが、ＤＢＭＳサーバ２０００のＤＢＭＳ２００８の性能に関する情報を示す。
【００７５】
図５Ａは、本発明の実施の形態のＤＢＭＳサーバ２０００が有するＤＢスキーマ情報テーブル５１００の構成図である。
【００７６】
ＤＢスキーマ情報テーブル５１００は、ＤＢＭＳ２００８が管理するＤＢスキーマに関する情報である。ＤＢスキーマ情報テーブル５１００は、スキーマＩＤ５１０１、スキーマ名５１０２、スキーマ種別５１０３、データ領域ＩＤ５１０４、スキーマサイズ５１０５及び先頭オフセットアドレス５１０６を含む。
【００７７】
スキーマＩＤ５１０１は、ＤＢＭＳ２００８が管理するＤＢスキーマの一意な識別子である。スキーマ名５１０２は、当該ＤＢスキーマの名称である。スキーマ種別５１０３は、当該ＤＢスキーマの種別であり、「表」又は「索引」等が格納される。
【００７８】
データ領域ＩＤ５１０４は、当該ＤＢスキーマが格納されているデータ領域の一意な識別子である。スキーマサイズ５１０５は、当該ＤＢスキーマの大きさである。先頭オフセットアドレス５１０６は、当該ＤＢスキーマが格納されている物理ディスク３００６上の記憶領域のオフセットアドレスの先頭の値である。なお、ＤＢスキーマは、ストレージ装置３０００の物理ディスク３００６上の記憶領域に格納されている。
【００７９】
図５Ｂは、本発明の実施の形態のＤＢＭＳサーバ２０００が有するデータ領域情報テーブル５２００の構成図である。
【００８０】
データ領域情報テーブル５２００は、ＯＳ２００７が管理するデータ領域に関する情報である。
【００８１】
データ領域情報テーブル５２００は、データ領域ＩＤ５２０１、領域名５２０２、ＤＢファイルシステム名５２０３及び領域サイズ５２０４を含む。データ領域情報テーブル５２００は、ＤＢＭＳサーバ２０００のＯＳ２００７に含まれるＤＢファイルシステムの数と同数のレコードを有する。
【００８２】
データ領域ＩＤ５２０１は、ＤＢＭＳ２００８がデータ領域を一意に識別する識別子である。領域名５２０２は、当該データ領域の名称である。ＤＢファイルシステム名５２０３は、当該データ領域を管理するＤＢファイルシステムの名称である。領域サイズ５２０４は、当該データ領域の大きさである。
【００８３】
図５Ｃは、本発明の実施の形態のＤＢＭＳサーバ２０００が有するＤＢファイルシステム情報テーブル５３００の構成図である。
【００８４】
ＤＢファイルシステム情報テーブル５３００は、ＤＢＭＳサーバ２０００のＯＳ２００７がデータを読み書きする際に用いる情報である。ＤＢファイルシステム情報テーブル５３００は、ＤＢファイルシステム名５３０１、論理ユニット番号５３０２及びストレージＩＤ５３０３を含む。
【００８５】
ＤＢファイルシステム名５３０１は、ＤＢＭＳサーバ２０００のＯＳ２００７に含まれるＤＢファイルシステムの名称である。
【００８６】
論理ユニット番号５３０２は、当該ＤＢファイルシステムが管理する論理ユニットの一意な識別子である。
【００８７】
ストレージＩＤ５３０３は、当該ＤＢファイルシステムが管理する論理ユニットが属するストレージ装置の一意な識別子である。例えば、ストレージＩＤ５３０３には、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ（ＷＷＮ））が格納されてもよい。
【００８８】
図５Ｄは、本発明の実施の形態のＤＢＭＳサーバ２０００が有するＤＢＭＳ領域情報テーブル５４００の構成図である。
【００８９】
ＤＢＭＳ領域情報テーブル５４００は、ＤＢＭＳ  ＩＤ５４０１、ストレージＩＤ５４０２、論理ユニット番号５４０３及びオフセットアドレス５４０４を含む。
【００９０】
ＤＢＭＳ  ＩＤ５４０１は、ＤＢＭＳサーバ２０００で動作するＤＢＭＳ２００８の一意な識別子である。
【００９１】
ストレージＩＤ５４０２は、当該ＤＢＭＳ２００８が使用する物理ディスク３００６上の記憶領域を有するストレージ装置３０００の一意な識別子である。論理ユニット番号５４０３は、当該ＤＢＭＳ２００８が使用する論理ユニットの一意な識別子である。オフセットアドレス５４０４は、当該ＤＢＭＳ２００８が使用する物理ディスク３００６上の記憶領域のオフセットアドレスである。
【００９２】
図６Ａは、本発明の実施の形態のストレージ装置３０００が有するキャッシュ割当管理テーブル８４００の構成図である。
【００９３】
キャッシュ割当管理テーブル８４００は、ストレージ装置３０００のキャッシュメモリ３００３の割り当ての状況を示す。
【００９４】
キャッシュ割当管理テーブル８４００は、キャッシュ割当ホストＩＤ８４０１及びキャッシュアドレス８４０２を含む。
【００９５】
キャッシュ割当ホストＩＤ８４０１は、ストレージ装置３０００のキャッシュメモリ３００３上の記憶領域（キャッシュ領域）が割り当てられているＤＢＭＳサーバ２０００の一意な識別子である。
【００９６】
キャッシュアドレス８４０２は、当該ＤＢＭＳサーバ２０００に割り当てられているキャッシュ領域のアドレス（キャッシュアドレス）である。
【００９７】
図６Ｂは、本発明の実施の形態のストレージ装置３０００が有するキャッシュデータ管理テーブル８５００の構成図である。
【００９８】
キャッシュデータ管理テーブル８５００は、キャッシュメモリ３００３に記憶されているデータと物理ディスク３００６に記憶されているデータとの関係を示す。
【００９９】
キャッシュデータ管理テーブル８５００は、キャッシュアドレス８５０１、論理ユニット番号８５０２及びオフセットアドレス８５０３を含む。
【０１００】
キャッシュアドレス８５０１は、データが記憶されているキャッシュ領域のアドレスである。
【０１０１】
論理ユニット番号８５０２は、当該キャッシュ領域に記憶されているデータと同一のデータが記憶されている論理ユニットの一意な識別子である。オフセットアドレス８５０３は、当該キャッシュ領域に記憶されているデータと同一のデータが記憶されている物理ディスク上３００６の記憶領域のオフセットアドレスである。
【０１０２】
図７Ａは、本発明の実施の形態の管理サーバ１０３０が有するアクセスプラン情報テーブル７２００の構成図である。
【０１０３】
アクセスプラン情報テーブル７２００は、ノードプラン名７２０１、プラン親ノード名７２０２、ノード処理７２０３、アクセスデータ構造７２０４、処理順番７２０５及びノード処理詳細７２０６を含む。
【０１０４】
ノードプラン名７２０１は、アクセスプランに含まれるノードプランの名称である。
【０１０５】
プラン親ノード名７２０２は、当該ノードプランに対応する親ノードプランの名称である。ノード処理７２０３は、当該ノードプランの処理内容である。アクセスデータ構造７２０４は、当該ノードプランがアクセスするデータ構造の名称である。
【０１０６】
処理順番７２０５は、当該ノードプランが処理される順番である。ノード処理詳細欄７２０６は、当該ノードプランの詳細な処理内容である。
【０１０７】
図７Ｂは、本発明の実施の形態の管理サーバ１０３０が有するストレージキャッシュ管理テーブル７３００の構成図である。
【０１０８】
ストレージキャッシュ管理テーブル７３００は、ストレージＩＤ７３０１、キャッシュアドレス７３０２、ホストＩＤ７３０３、ＤＢＭＳ  ＩＤ７３０４、ヒット回数７３０５、論理ユニット番号７３０６及びオフセットアドレス７３０７を含む。
【０１０９】
ストレージＩＤ７３０１は、キャッシュメモリ３００３にデータが記憶されているストレージ装置３０００の一意な識別子である。キャッシュアドレス７３０２は、データが記憶されているキャッシュ領域のアドレスである。
【０１１０】
ホストＩＤ７３０３は、当該キャッシュ領域を使用するＤＢＭＳサーバ２０００の一意な識別子である。ＤＢＭＳ  ＩＤ７３０４は、当該キャッシュ領域を使用するＤＢＭＳ２００８の一意な識別子である。
【０１１１】
ヒット回数７３０５は、当該キャッシュ領域にＤＢＭＳ２００８がアクセスした回数である。
【０１１２】
論理ユニット番号７３０６は、当該キャッシュ領域に記憶されているデータと同一のデータが記憶されている論理ユニットの一意な識別子である。オフセットアドレス７３０７は、当該キャッシュ領域に記憶されているデータと同一のデータが記憶されている物理ディスク３００６上の記憶領域のオフセットアドレスである。
【０１１３】
図７Ｃは、本発明の実施の形態の管理サーバ１０３０が有するストレージキャッシュ割当管理テーブル７４００の構成図である。
【０１１４】
ストレージキャッシュ割当管理テーブル７４００は、ストレージＩＤ７４０１、キャッシュアドレス７４０２及び割当ホストＩＤ７４０３を含む。
【０１１５】
ストレージＩＤ７４０１は、キャッシュ領域の割り当てが変更されたキャッシュメモリ３００３を備えるストレージ装置３０００の一意な識別子である。
【０１１６】
キャッシュアドレス７４０２は、割り当てが変更されたキャッシュ領域のアドレスである。
【０１１７】
割当ホストＩＤ７４０３は、割り当ての変更によって、当該キャッシュ領域が割り当てられたＤＢＭＳサーバ２０００の一意な識別子である。
【０１１８】
図７Ｄは、本発明の実施の形態の管理サーバ１０３０が有するＤＢＭＳ統計情報テーブル７５００の構成図である。
【０１１９】
ＤＢＭＳ統計情報テーブル７５００は、表・索引名７５０１、列名７５０２、長さ７５０３及びエントリ数７５０４を含む。
【０１２０】
表・索引名７５０１は、ストレージ装置３０００に格納されているＤＢに含まれる表又は索引の名称である。
【０１２１】
列名７５０２は、当該表又は索引のキー値の列の名称である。
【０１２２】
長さ７５０３は、当該列のデータ長である。エントリ数７５０４は、当該列のエントリの数である。
【０１２３】
図７Ｅは、本発明の実施の形態の管理サーバ１０３０が有する構成情報テーブル７６００の構成図である。
【０１２４】
構成情報テーブル７６００は、ホストＩＤ７６０１、ＤＢＭＳ  ＩＤ７６０２、スキーマ名７６０３、スキーマ種別７６０４、スキーマサイズ７６０５、データ領域ＩＤ７６０６、先頭オフセットアドレス７６０７、論理ユニット番号７６０８及びストレージＩＤ７６０９を含む。
【０１２５】
ホストＩＤ７６０１は、ＤＢＭＳサーバ２０００の一意な識別子である。ＤＢＭＳ  ＩＤ７６０２は、ＤＢＭＳサーバ２０００で動作するＤＢＭＳ２００８の一意な識別子である。
【０１２６】
スキーマ名７６０３は、当該ＤＢＭＳ２００８がアクセスするスキーマの名称である。スキーマ種別７６０４は、当該スキーマの種別であり、「表」又は「索引」等が格納される。サイズ７６０５は、当該スキーマの大きさである。
【０１２７】
データ領域ＩＤ７６０６は、当該スキーマが格納されているデータ領域の一意な識別子である。先頭オフセットアドレス７６０７は、当該スキーマが格納されている物理ディスク上３００６上の記憶領域のオフセットアドレスの先頭の値である。
【０１２８】
論理ユニット番号７６０８は、当該スキーマが格納されている論理ユニットの一意な識別子である。ストレージＩＤ７６０９は、当該スキーマが格納されているストレージ装置３０００の一意な識別子である。
【０１２９】
図７Ｆは、本発明の実施の形態の管理サーバ１０３０が有するＤＢＭＳ性能情報テーブル７７００の構成図である。
【０１３０】
ＤＢＭＳ性能情報テーブル７７００は、ＤＢＭＳ  ＩＤ７７０１、ホストＩＤ７７０２、スループット情報７７０３及び最大ディスクキュー長７７０４を含む。
【０１３１】
ＤＢＭＳ  ＩＤ７７０１は、ＤＢＭＳサーバ２０００で動作するＤＢＭＳ２００８の一意な識別子である。ホストＩＤ７７０２は、当該ＤＢＭＳが動作するＤＢＭＳサーバ２０００の一意な識別子である。
【０１３２】
スループット７７０３は、当該ＤＢＭＳ２００８の処理速度である。最大ディスクキュー長７７０４は、当該ＤＢＭＳ２００８のキューの長さの最大値である。キューの長さは、ＤＢにアクセスする順番を待っている処理の数である。
【０１３３】
図８Ａは、本発明の実施の形態のＤＢＭＳサーバ２０００のＤＢＭＳ２００８が実行するクエリ９８の説明図である。
【０１３４】
クエリ９８は、データをＤＢに要求する情報である。
【０１３５】
ＤＢＭＳ２００８は、クエリ９８をクライアントプログラム２００６から受けると、当該クエリ９８を解析する。そして、解析した結果に基づいて、アクセスプランを作成する。
【０１３６】
図８Ｂは、本発明の実施の形態のＤＢＭＳ２００８が作成したアクセスプランの説明図である。
【０１３７】
アクセスプランは、複数のノードプラン９０〜９７で構成される。ノードプラン９０〜９７には、ノード番号、処理内容及びアクセスデータ構造が含まれる。
【０１３８】
複数の表を結合する処理には、ネストループ結合、ソートマージ結合及びハッシュ結合などがある。
【０１３９】
当該アクセスプランでは、表Ｔ２と表Ｔ３は、ハッシュ結合によって結合される（ノードプラン９４）。また、ハッシュ結合の結果と表Ｔ１は、ネストループ結合によって結合される（ノードプラン９１）。
【０１４０】
図９は、本発明の実施の形態の管理サーバ１０３０が行う構成情報テーブル７６００及びＤＢＭＳ統計情報テーブル７５００の更新処理のフローチャートである。
【０１４１】
管理サーバ１０３０の管理マネージャ１０５０は、構成情報テーブル７６００を更新するための情報をＤＢＭＳサーバ２０００から取得する。
【０１４２】
具体的には、ＤＢＭＳサーバ２０００のＤＢスキーマ情報テーブル５１００に格納されている情報をＤＢＭＳサーバ２０００から取得する。次に、取得したＤＢスキーマ情報テーブル５１００の先頭オフセットアドレス５１０６とＤＢＭＳ領域情報テーブル５４００のオフセットアドレス５４０４の先頭の値とが一致するレコードに格納されている情報を、ＤＢＭＳサーバ２０００のＤＢＭＳ領域情報テーブル５４００から取得する。
【０１４３】
次に、取得した情報に基づいて、構成情報テーブル７６００を更新する（１０１）。
【０１４４】
具体的には、これらの情報を取得したＤＢＭＳサーバ２０００を特定する。次に、特定したＤＢＭＳサーバ２０００の識別子を、構成情報テーブル７６００のホストＩＤ７６０１に格納する。
【０１４５】
次に、取得したＤＢＭＳ領域情報テーブル５４００のＤＢＭＳ  ＩＤ５４０１を、構成情報テーブル７６００のＤＢＭＳ  ＩＤ７６０２に格納する。次に、取得したＤＢスキーマ情報テーブル５１００のスキーマ名５１０２を、構成情報テーブル７６００のスキーマ名７６０３に格納する。
【０１４６】
次に、取得したＤＢスキーマ情報テーブル５１００のスキーマ種別５１０３を、構成情報テーブル７６００のスキーマ種別７６０４に格納する。次に、取得したＤＢスキーマ情報テーブル５１００のスキーマサイズ５１０５を、構成情報テーブル７６００のスキーマサイズ７６０５に格納する。
【０１４７】
次に、取得したＤＢスキーマ情報テーブル５１００のデータ領域ＩＤ５１０４を、構成情報テーブル７６００のデータ領域ＩＤ７６０６に格納する。次に、取得したＤＢスキーマ情報テーブル５１００の先頭オフセットアドレス５１０６を、構成情報テーブル７６００の先頭オフセットアドレス７６０７に格納する。
【０１４８】
次に、取得したＤＢＭＳ領域情報テーブル５４００の論理ユニット番号５４０３を、構成情報テーブル７６００の論理ユニット番号７６０８に格納する。次に、取得したＤＢＭＳ領域情報テーブル５４００のストレージＩＤ５４０２を、構成情報テーブル７６００のストレージＩＤ７６０９に格納する。
【０１４９】
以上のように、構成情報テーブル７６００を更新する。
【０１５０】
次に、ＤＢＭＳ統計情報テーブル７５００を行進するための情報をＤＢＭＳサーバ２０００から取得する。
【０１５１】
具体的には、当該ＤＢＭＳサーバ２０００が管理する表又は索引に関する情報を取得する。表又は索引に関する情報は、表名又は索引名、キー値の列名、列の長さ及び列のエントリ数を含む。
【０１５２】
次に、取得した情報に基づいて、ＤＢＭＳ統計情報テーブル７５００を更新する（１０２）。
【０１５３】
そして、構成情報テーブル７６００及びＤＢＭＳ統計情報テーブル７５００の更新処理を終了する。
【０１５４】
図１０は、本発明の実施の形態のストレージ装置３０００のキャッシュアクセス状況通知処理のフローチャートである。
【０１５５】
ストレージ装置３０００の制御マネージャ３００１は、所定の時間内におけるキャッシュメモリ３００３へのアクセスを監視し、当該アクセスの状況（キャッシュアクセス状況）を収集する（１３１）。所定の時間は、予め設定されていてもよいし、管理者から指定されてもよい。
【０１５６】
キャッシュアクセス状況は、キャッシュアドレス、キャッシュヒット回数、ホストＩＤ、論理ユニット番号及びオフセットアドレスを含む。
【０１５７】
キャッシュアドレスは、ＤＢＭＳサーバ２０００に使用されているキャッシュ領域のアドレスである。キャッシュヒット回数は、当該キャッシュ領域がＤＢＭＳサーバ２０００にアクセスされた回数（カウンタ値情報）である。ホストＩＤは、当該キャッシュ領域に使用しているＤＢＭＳサーバ２０００の一意な識別子である。
【０１５８】
論理ユニット番号は、当該キャッシュ領域に記憶されているデータと同一のデータが記憶されている論理ユニットの一意な識別子である。オフセットアドレスは、当該キャッシュ領域に記憶されているデータと同一のデータが記憶されている物理ディスク３００６上の記憶領域のオフセットアドレスである。
【０１５９】
具体的には、制御マネージャ３００１は、アクセスを監視することによって、キャッシュアドレス及びキャッシュヒット回数を収集する。次に、収集したキャッシュアドレスとキャッシュ割当管理テーブル８４００のキャッシュアドレス８４０２とが一致するレコードを、キャッシュ割当管理テーブル８４００から選択する。次に、選択したレコードから、キャッシュ割当ホストＩＤ８４０１を取得する。そして、取得したホストＩＤ８４０１を、キャッシュアクセス状況のホストＩＤとする。
【０１６０】
次に、収集したキャッシュアドレスとキャッシュデータ管理テーブル８５００のキャッシュアドレス８５０１とが一致するレコードを、キャッシュデータ管理テーブル８５００から選択する。選択したレコードから、論理ユニット番号８５０２及びオフセットアドレス８５０３を取得する。そして、取得した論理ユニット番号８５０２及びオフセットアドレス８５０３を、キャッシュアクセス状況の論理ユニット番号及びオフセットアドレスとする。このようにキャッシュアクセス状況を収集する。
【０１６１】
次に、制御マネージャ３００１は、収集したキャッシュアクセス状況を、管理サーバ１０３０へ通知する（１３２）。そして、キャッシュアクセス状況通知処理を終了する。
【０１６２】
図１１は、本発明の実施の形態の管理サーバ１０３０のストレージキャッシュ管理テーブル７３００の更新処理のフローチャートである。
【０１６３】
まず、管理マネージャ１０５０は、ストレージ装置３０００からキャッシュアクセス状況の通知を受ける（１３５）。
【０１６４】
そして、通知を受けたキャッシュアクセス状況に基づいて、ストレージキャッシュ管理テーブル７３００を更新する（１３６）。
【０１６５】
具体的には、キャッシュアクセス状況を通知したストレージ装置３０００を特定する。そして、特定したストレージ装置３０００の識別子を、ストレージキャッシュ管理テーブル７３００のストレージＩＤ７３０１に格納する。
【０１６６】
次に、キャッシュアクセス状況に含まれるキャッシュアドレスを、ストレージキャッシュ管理テーブル７３００のキャッシュアドレス７３０２に格納する。次に、キャッシュアクセス状況に含まれるホストＩＤを、ストレージキャッシュ管理テーブル７３００のホストＩＤ７３０３に格納する。
【０１６７】
次に、キャッシュアクセス状況に含まれるキャッシュメモリ情報の先頭の値と構成情報テーブル７６００の先頭オフセットアドレス７６０７とが一致するレコードを、構成情報テーブル７６００から選択する。次に、選択したレコードから、ＤＢＭＳ  ＩＤ７６０２を取得する。そして、取得したＤＢＭＳ  ＩＤ７６０２を、ストレージキャッシュ管理テーブル７３００のＤＢＭＳ  ＩＤ７３０４に格納する。
【０１６８】
次に、キャッシュアクセス状況に含まれるキャッシュヒット回数を、ストレージキャッシュ管理テーブル７３００のヒット回数７３０５に格納する。次に、キャッシュアクセス状況に含まれる論理ユニット番号を、ストレージキャッシュ管理テーブル７３００の論理ユニット番号７３０６に格納する。次に、キャッシュアクセス状況に含まれるオフセットアドレスを、ストレージキャッシュ管理テーブル７３００のオフセットアドレス７３０７に格納する。
【０１６９】
以上のように、ストレージキャッシュ管理テーブル７３００を更新する。そして、処理を終了する。
【０１７０】
図１２は、本発明の実施の形態の管理サーバ１０３０のキャッシュメモリ割当変更処理の説明図である。
【０１７１】
管理サーバ１０３０の管理マネージャ１０５０は、ＤＢＭＳ２００８の性能に関する情報をＤＢＭＳサーバ２０００から定期的に取得する（１４０）。
【０１７２】
次に、取得したＤＢＭＳ２００８の性能に関する情報に基づいて、ＤＢＭＳ性能情報テーブル７７００を更新する。そして、更新したＤＢＭＳ性能情報テーブル７７００を参照することによって、ＤＢＭＳ２００８に性能問題が発生しているか否かを判断する（１４１）。例えば、管理マネージャ１０５０は、問題の発生回数が閾値を超えると、ＤＢＭＳ２００８に性能問題が発生していると判定する。
【０１７３】
性能問題は、ＤＢＭＳ２００８に割り当てられているキャッシュメモリ３００３の不足により発生することがある。具体的には、ＤＢＭＳ２００８がアクセスするデータがストレージ装置３０００のキャッシュメモリ３００３に載りきらない場合には、ＬＲＵアルゴリズム等に基づき、キャッシュメモリ３００３上のデータを削除して新たにキャッシュメモリ３００３の空き領域を作成しデータを記憶する。この時、ＤＢＭＳ２００８がアクセスするデータがストレージ装置３０００のキャッシュメモリ３００３に記憶されていないならば、物理ディスク３００６に記憶されているデータへアクセスするためアクセス時間がかかることになり、ＤＢＭＳ２００８が実行する処理が遅延することがある。
【０１７４】
ＤＢＭＳ２００８に性能問題が発生していないと、キャッシュメモリ３００３の割り当てを変更する必要がないので、ステップ１４０に戻る。
【０１７５】
一方、ＤＢＭＳ２００８に性能問題が発生していると、キャッシュメモリ３００３の割り当てを変更する必要があると判定する。そこで、ＤＢＭＳ２００８の性能問題を解決するために必要なキャッシュメモリ３００３の容量を算出する（１４２）。
【０１７６】
例えば、特許文献１に記載された方法で、ＤＢＭＳ２００８の性能問題を解決するために必要なキャッシュメモリ３００３の容量を算出する。具体的には、ＤＢＭＳ２００８の過去の性能情報に基づいて、性能問題を解決するためにＤＢＭＳ２００８がアクセスするデータを判断する。次に、判断したデータへのアクセスに必要なキャッシュメモリ３００３の容量を算出する。そして、算出した容量を、性能問題を解決するために必要なキャッシュメモリ３００３の容量とする。
【０１７７】
次に、管理マネージャ１０５０は、ストレージキャッシュ管理テーブル７３００を参照して、キャッシュメモリ３００３の割り当てを決定する（１４３）。このとき、算出したキャッシュメモリ３００３の容量を問題が発生したＤＢＭＳ２００８に割り当てるように、キャッシュメモリ３００３の割り当てを決定する。
【０１７８】
例えば、管理マネージャ１０５０は、ＤＢＭＳ２００８が既にアクセスして不要になったデータを記憶しているキャッシュ領域を、問題が発生したＤＢＭＳ２００８に割り当てるように、キャッシュメモリ３００３の割り当てを決定する。
【０１７９】
具体的には、管理マネージャ１０５０は、ストレージＩＤ７３０１、キャッシュアドレス７３０２、論理ユニット番号７３０６及びオフセットアドレス７３０７を、ストレージキャッシュ管理テーブル７３００のレコード順に抽出する。
【０１８０】
次に、抽出した論理ユニット番号７３０６と構成情報テーブル７６００の論理ユニット番号７６０８とが一致し、且つ、抽出したオフセットアドレス７３０７の先頭の値と構成情報テーブル７６００の先頭オフセットアドレス７６０７とが一致するレコードを、構成情報テーブル７６００から選択する。次に、選択したレコードから、スキーマ名７６０３を抽出する。
【０１８１】
これによって、抽出したストレージＩＤ７３０１及びキャッシュアドレス７３０２に対応するキャッシュ領域に記憶されているデータのスキーマ名を取得する。
【０１８２】
次に、ＤＢＭＳ２００８のアクセス情報を取得する。アクセス情報は、ＤＢＭＳ２００８がアクセスした物理ディスク３００６上の記憶領域のストレージＩＤ、論理ユニット番号及びオフセットアドレスを含む。
【０１８３】
次に、取得したアクセス情報及びアクセスプラン情報テーブル７２００を参照することによって、ＤＢＭＳ２００８が現在アクセスしている場所をアクセスプランから特定する。
【０１８４】
そして、特定した場所に基づいて、抽出したストレージＩＤ７３０１及びキャッシュアドレス７３０２に対応するキャッシュ領域に記憶されているデータが、ＤＢＭＳ２００８に既にアクセスされたか否かを判定する。ここでは、ＤＢＭＳ２００８に既にアクセスされたデータを不要になったデータと判定する。
【０１８５】
そして、不要になったデータが記憶されているキャッシュ領域を、問題が発生したＤＢＭＳ２００８に優先的に割り当てるように、キャッシュメモリ３００３の割り当てを決定する。つまり、当該ストレージＩＤ及びキャッシュアドレス７３０２に対応するキャッシュ領域を、性能問題が発生したＤＢＭＳ２００８に優先的に割り当てる。
【０１８６】
また、管理マネージャ１０５０は、キャッシュ領域のアクセス回数に基づいて、キャッシュメモリ３００３の割り当てを決定してもよい。
【０１８７】
具体的には、性能問題を解決するために必要な容量を、ＤＢＭＳ２００８に割り当てるまで以下の処理を繰り返す。
【０１８８】
まず、ストレージキャッシュ管理テーブル７３００のヒット回数７３０５の小さいレコードをストレージキャッシュ管理テーブル７３００から順に選択する。次に、選択したレコードから、ストレージＩＤ７３０１及びキャッシュアドレス７３０２を抽出する。
【０１８９】
そして、抽出したストレージＩＤ７３０１及びキャッシュアドレス７３０２に対応するキャッシュ領域を、性能問題が発生したＤＢＭＳ２００８に割り当てる。
【０１９０】
例えば、性能問題を解決するために必要なキャッシュメモリ３００３の容量が「１００ＭＢ」であるで説明する。この場合、管理マネージャ１０５０は、ストレージキャッシュ管理テーブル７３００のヒット回数７３０５が「１回」のキャッシュ領域を割り当てる。次に、ストレージキャッシュ管理テーブル７３００のヒット回数７３０５が「１回」のキャッシュ領域のすべてを合わせた容量が「１００ＭＢ」以下であるかを判定する。容量が「１００ＭＢ」以下であると、ストレージキャッシュ管理テーブル７３００のヒット回数７３０５が「２回」のキャッシュ領域を割り当てる。このように、割り当てるキャッシュ領域のヒット回数７３０５を徐々に増やす。これによって、管理マネージャ１０５０は、アクセス頻度の低いデータが記憶されているキャッシュ領域を、性能問題が発生したＤＢＭＳ２００８に割り当てることができる。
【０１９１】
ここでは、アクセス頻度の低いデータが記憶されているキャッシュ領域から順に、ＤＢＭＳ２００８に割り当てている。しかし、アクセス頻度が閾値以上であるデータが記憶されているキャッシュ領域をＤＢＭＳ２００８に割り当てないように、キャッシュメモリ３００３の割り当てを決定してもよい。
【０１９２】
以上のように、キャッシュメモリ３００３の割り当てを決定すると、決定した割り当てへの変更をストレージ装置３０００へ指示する（１４４）。そして、ステップ１４０へ戻り、本処理を繰り返す。
【０１９３】
図１３は、本発明の実施の形態の管理サーバ１０３０のアクセスプラン変更処理の説明図である。
【０１９４】
管理サーバ１０３０の管理マネージャ１０５０は、ＤＢＭＳサーバ２０００のＤＢＭＳ２００８からアクセスプランの通知を受けるまで、待機する（１１１）。
【０１９５】
ＤＢＭＳ２００８は、アクセスプランを作成すると、実行する前に当該アクセスプランを管理サーバ１０３０へ通知する。
【０１９６】
そして、管理マネージャ１０５０は、ＤＢＭＳ２００８からアクセスプランの通知を受けると（１１２）、キャッシュメモリ３００３の割り当てが変更されたか否かを判定する（１１３）。具体的には、ストレージキャッシュ割当管理テーブル７４００に新たなレコードが追加されると、キャッシュメモリ３００３の割り当てが変更されたと判定する。
【０１９７】
キャッシュメモリ３００３の割り当てが変更されていないと判定すると、アクセスプランを変更する必要がないので、ステップ１１１に戻る。
【０１９８】
一方、キャッシュメモリ３００３の割り当てが変更されたと判定すると、ストレージキャッシュ管理テーブル７３００を参照して、当該ＤＢＭＳ２００８へ現在割り当てられているキャッシュメモリ３００３の容量（現在割当量）を求める。同様に、キャッシュメモリ３００３の割り当て変更前に、当該ＤＢＭＳ２００８へ割り当てられてたキャッシュメモリ３００３の容量（過去割当量）を求める。
【０１９９】
そして、管理マネージャ１０５０は、求めた現在割当量と過去割当量とを比較することによって、当該ＤＢＭＳ２００８のキャッシュ割当量が増加したのか又は減少したのかを判定する（１１４）。
【０２００】
キャッシュ割当量が増加したと判定すると、通知されたアクセスプランを解析する。そして、解析することによって、当該アクセスプランに含まれる結合処理がワークファイルを使用する処理方式であるか否かを判定する（１１５）。
【０２０１】
具体的には、管理マネージャ１０５０は、アクセスプラン情報テーブル７２００のノード処理７２０３に、ワークファイルを使用する処理の内容が格納されているか否かを判定する。例えば、ハッシュ結合又はソートマージ結合がワークファイルを使用する処理とする。この場合、管理マネージャ１０５０は、アクセスプラン情報テーブル７２００のノード処理７２０３に、ハッシュ結合又はソートマージ結合が格納されているか否かを判定する。
【０２０２】
アクセスプランに含まれる結合処理がワークファイルを使用する処理方式であると、アクセスプランを変更する必要がないので、ステップ１１１に戻る。
【０２０３】
一方、アクセスプランに含まれる結合処理がワークファイルを使用しない処理方式であると、ワークファイルを使用する結合処理を実行した場合に必要なキャッシュメモリ３００３の容量を求める。
【０２０４】
具体的には、それぞれの結合処理の特徴に基づいて、必要な容量を求める。例えば、ワークファイルを使用するハッシュ結合の特徴は、結合対象となる表の該当レコードをすべて読み込み、読み込んだデータからハッシュ表をワークファイルを使用して作成し、結合処理を行う。
【０２０５】
管理マネージャ１０５０は、求めた必要な容量と現在割当量とを比較することによって、ワークファイルを使用する結合処理をＤＢＭＳ２００８が実行できるか否かを判定する（１１６）。具体的には、必要な記憶容量が現在割当量以上であると、ワークファイルを使用する結合処理をＤＢＭＳ２００８が実行できると判定する。
【０２０６】
ワークファイルを使用する結合処理をＤＢＭＳ２００８が実行できないと判定すると、アクセスプランを変更する必要できないので、ステップ１１１に戻る。
【０２０７】
一方、ワークファイルを使用する結合処理をＤＢＭＳ２００８が実行できると判定すると、アクセスプランの変更を指示する。具体的には、ステップ１１２で通知を受けたアクセスプランに含まれる結合処理を、ワークファイルを使用する結合処理へ変更するように指示する（１１７）。
【０２０８】
次に、管理マネージャ１０５０は、アクセスプランの変更を管理者に通知する。具体的には、管理サーバ１０３０の出力装置１０３２に、アクセスプラン変更通知画面を表示させる。そして、ステップ１１１に戻る。
【０２０９】
図１４は、本発明の実施の形態の管理サーバ１０３０の出力装置１０３２が表示するアクセスプラン変更通知画面の説明図である。
【０２１０】
アクセスプラン変更通知画面は、ＤＢＭＳサーバ２０００のアクセスプランが変更されたことを管理者に通知する。この画面によって、管理者は、ＤＢＭＳサーバ２０００のアクセスプランの変更を認識できる。
【０２１１】
ここで、図１３に戻る。
【０２１２】
管理マネージャ１０５０は、ステップ１１４でキャッシュ割当量が減少したと判定すると、通知されたアクセスプランを解析する。そして、解析することによって、当該アクセスプランに含まれる結合処理がワークファイルを使用する処理方式であるか否かを判定する（１１８）。
【０２１３】
アクセスプランに含まれる結合処理がワークファイルを使用しない処理方式であると、アクセスプランを変更する必要がないので、ステップ１１１に戻る。
【０２１４】
一方、アクセスプランに含まれる結合処理がワークファイルを使用する処理方式であると、当該結合処理をＤＢＭＳ２００８が実行できるか否かを判定する（１１９）。
【０２１５】
ワークファイルを使用する結合処理をＤＢＭＳ２００８が実行できると判定すると、アクセスプランを変更する必要がないので、ステップ１１１に戻る。
【０２１６】
一方、ワークファイルを使用する結合処理をＤＢＭＳ２００８が実行できないと判定すると、アクセスプランの変更を指示する。具体的には、ステップ１１２で通知を受けたアクセスプランに含まれる結合処理を、ワークファイルを使用しない結合処理へ変更するように指示する（１２０）。
【０２１７】
次に、管理マネージャ１０５０は、アクセスプランの変更を管理者に通知する。具体的には、管理サーバ１０３０の出力装置１０３２に、アクセスプラン変更通知画面（図１４）を表示させる。そして、ステップ１１１に戻る。
【０２１８】
本実施の形態では、ＤＢＭＳ２００８は、アクセスプランを実行する前に、当該アクセスプランを管理マネージャ１０５０に通知する。そして、アクセスプランの通知を受けた管理マネージャ１０５０は、キャッシュ割当量の変化に応じて、アクセスプランの変更をＤＢＭＳ２００８に指示する。
【０２１９】
他にも、管理マネージャ１０５０は、ＤＢＭＳ２００８が実行中のアクセスプランを取得し、取得したアクセスプランの変更をＤＢＭＳ２００８に指示してもよい。
【０２２０】
本実施の形態によれば、管理サーバ１０３０は、ＤＢＭＳ２００８の性能問題を検知すると、ストレージ装置３０００のキャッシュメモリ３００３の割り当てを変更する。そして、管理サーバ１０３０は、変更した割当量に応じて、ＤＢＭＳ２００８が実行するアクセスプランの変更を指示する。これによって、ＤＢＭＳ２００８は、高速に処理するアクセスプランに変更できる。
【図面の簡単な説明】
【０２２１】
【図１】本発明の実施の形態の計算機システムのブロック図である。
【図２】本発明の実施の形態のＤＢＭＳサーバのブロック図である。
【図３】本発明の実施の形態のストレージ装置のブロック図である。
【図４】本発明の実施の形態の管理サーバのブロック図である。
【図５Ａ】本発明の実施の形態のＤＢＭＳサーバが有するＤＢスキーマ情報テーブルの構成図である。
【図５Ｂ】本発明の実施の形態のＤＢＭＳサーバが有するデータ領域情報テーブルの構成図である。
【図５Ｃ】本発明の実施の形態のＤＢＭＳサーバが有するＤＢファイルシステム情報テーブルの構成図である。
【図５Ｄ】本発明の実施の形態のＤＢＭＳサーバが有するＤＢＭＳ領域情報テーブルの構成図である。
【図６Ａ】本発明の実施の形態のストレージ装置が有するキャッシュ割当管理テーブルの構成図である。
【図６Ｂ】本発明の実施の形態のストレージ装置が有するキャッシュデータ管理テーブルの構成図である。
【図７Ａ】本発明の実施の形態の管理サーバが有するアクセスプラン情報テーブルの構成図である。
【図７Ｂ】本発明の実施の形態の管理サーバが有するストレージキャッシュ管理テーブルの構成図である。
【図７Ｃ】本発明の実施の形態の管理サーバが有するストレージキャッシュ割当管理テーブルの構成図である。
【図７Ｄ】本発明の実施の形態の管理サーバが有するＤＢＭＳ統計情報テーブルの構成図である。
【図７Ｅ】本発明の実施の形態の管理サーバが有する構成情報テーブルの構成図である。
【図７Ｆ】本発明の実施の形態の管理サーバが有するＤＢＭＳ性能情報テーブルの構成図である。
【図８Ａ】本発明の実施の形態のＤＢＭＳサーバのＤＢＭＳが実行するクエリの説明図である。
【図８Ｂ】本発明の実施の形態のＤＢＭＳが作成したアクセスプランの説明図である。
【図９】本発明の実施の形態の管理サーバが行う構成情報テーブル及びＤＢＭＳ統計情報テーブルの更新処理のフローチャートである。
【図１０】本発明の実施の形態のストレージ装置のキャッシュアクセス状況通知処理のフローチャートである。
【図１１】本発明の実施の形態の管理サーバのストレージキャッシュ管理テーブルの更新処理のフローチャートである。
【図１２】本発明の実施の形態の管理サーバのキャッシュメモリ割当変更処理の説明図である。
【図１３】本発明の実施の形態の管理サーバのアクセスプラン変更処理の説明図である。
【図１４】本発明の実施の形態の管理サーバの出力装置が表示するアクセスプラン変更通知画面の説明図である。
【符号の説明】
【０２２２】
１０００、１０２０  ネットワーク
１０３０  管理サーバ
１０３１  プロセッサ
１０３２  出力装置
１０３３  Ｅｔｈｅｒ  Ｉ／Ｆ
１０３４  記憶領域
１０５０  管理マネージャ
２０００  ＤＢＭＳサーバ
２００６  クライアントプログラム
２００７  ＯＳ
２００８  ＤＢＭＳ
２００９  プラン作成マネージャ
２０１２  プロセッサ
２０１３  出力装置
２０１４  ＦＣ  Ｉ／Ｆ
２０１５  Ｅｔｈｅｒ  Ｉ／Ｆ
２０１６  記憶領域
３０００  ストレージ装置
３００１  制御マネージャ
３００３  キャッシュメモリ
３００４  記憶領域
３００５  コントローラ
３００６  物理ディスク
３００７  Ｅｔｈｅｒ  Ｉ／Ｆ
３００８  ＦＣ  Ｉ／Ｆ
【図１】
0004784974.tif 000002
【図２】
0004784974.tif 000003
【図３】
0004784974.tif 000004
【図４】
0004784974.tif 000005
【図５Ａ】
0004784974.tif 000006
【図５Ｂ】
0004784974.tif 000007
【図５Ｃ】
0004784974.tif 000008
【図５Ｄ】
0004784974.tif 000009
【図６Ａ】
0004784974.tif 000010
【図６Ｂ】
0004784974.tif 000011
【図７Ａ】
0004784974.tif 000012
【図７Ｂ】
0004784974.tif 000013
【図７Ｃ】
0004784974.tif 000014
【図７Ｄ】
0004784974.tif 000015
【図７Ｅ】
0004784974.tif 000016
【図７Ｆ】
0004784974.tif 000017
【図８Ａ】
0004784974.tif 000018
【図８Ｂ】
0004784974.tif 000019
【図９】
0004784974.tif 000020
【図１０】
0004784974.tif 000021
【図１１】
0004784974.tif 000022
【図１２】
0004784974.tif 000023
【図１３】
0004784974.tif 000024
【図１４】
0004784974.tif 000025