(57)【要約】データベース管理方法は、記憶方式の異なる複数種類の記憶装置を有するストレージ装置と、データベースを管理する計算機と、制御サーバと、を有するデータベースシステムで実行される。制御サーバは、記憶装置の記憶方式情報を記憶している。この方法では、（Ａ）データを格納するボリュームを特定可能な格納位置情報と、アクセス種類情報を取得し、（Ｂ）ボリュームを格納する記憶装置を特定可能なボリューム管理情報を取得し、（Ｃ）アクセスするデータのボリュームを特定し、特定したボリュームを格納する記憶装置を特定し、記憶装置の記憶方式を特定し、（Ｄ）アクセスするデータに対するアクセス種類を特定し、（Ｅ）（Ｃ）で特定した記憶方式と、（Ｄ）で取得したアクセス種類とに基づいて、データを記憶方式の異なる他の記憶装置に移動させる必要があるか否かを決定し、（Ｆ）（Ｅ）で必要があると判定した場合に、移動させる指示を行う。【選択図】図１
2015519623.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶方式の異なる複数種類の記憶装置を有するストレージ装置と、
前記ストレージ装置の前記記憶装置の記憶領域に、データベースで管理するデータを格納させて、データベースを管理する計算機と、
前記ストレージ装置と前記計算機とに接続される制御サーバと、を有するデータベースシステムにおけるデータベース管理方法であって、
前記制御サーバの記憶デバイスは、前記ストレージ装置における前記記憶装置の前記記憶方式を特定する記憶方式情報を記憶しており、
（Ａ）前記計算機から、前記データベースに対する問い合わせ要求に対応する処理においてアクセスするデータベースのデータを格納するボリュームを特定可能なボリューム特定情報と、前記データに対するアクセス種類を特定可能なアクセス種類情報を取得し、
（Ｂ）前記ストレージ装置から、ボリュームを格納する前記記憶装置を特定可能なボリューム管理情報を取得し、
（Ｃ）前記ボリューム特定情報に基づいて、前記問い合せ要求に対応する処理でアクセスする前記データのボリュームを特定し、前記ボリューム管理情報に基づいて、特定した前記ボリュームを格納する記憶装置を特定し、前記記憶方式情報に基づいて前記記憶装置の記憶方式を特定し、
（Ｄ）前記アクセス種類情報に基づいて、前記問い合せ要求に対応する処理でアクセスする前記データに対するアクセス種類を特定し、
（Ｅ）前記（Ｃ）で特定した前記記憶方式と、前記（Ｄ）取得した前記アクセス種類とに基づいて、前記データを記憶方式の異なる他の記憶装置に移動させる必要があるか否かを決定し、
（Ｆ）前記（Ｅ）で、前記データを記憶方式の異なる他の記憶装置に移動させる必要があると判定した場合に、前記データを記憶方式の異なる他の記憶装置に移動させる指示を行う
データベース管理方法。
【請求項２】
前記データを記憶方式の異なる他の記憶装置に移動させる指示を表示させる
請求項１に記載のデータベース管理方法。
【請求項３】
前記データを記憶方式の異なる他の記憶装置に移動させる指示を前記ストレージ装置に送信する
請求項１に記載のデータベース管理方法。
【請求項４】
前記アクセス種類情報は、前記データに対するアクセスがランダムアクセスであるか、シーケンシャルアクセスであるかを示す情報である
請求項２に記載のデータベース管理方法。
【請求項５】
複数種類の前記記憶装置は、磁気記憶方式でデータを記憶する磁気記憶装置と、半導体記憶方式でデータを記憶する半導体記憶装置とを含む
請求項４に記載のデータベース管理方法。
【請求項６】
前記（Ｅ）において、前記（Ｄ）で特定したアクセス種類がランダムアクセスであり、且つ前記（Ｃ）で特定した前記記憶方式が磁気記憶方式である場合に、前記データを半導体記憶装置に移動させる必要があると決定し、
前記（Ｆ）で、前記データを前記半導体記憶装置に移動させる指示を表示させる
請求項５に記載のデータベース管理方法。
【請求項７】
前記（Ｅ）において、前記（Ｄ）で特定したアクセス種類がシーケンシャルアクセスであり、且つ前記（Ｃ）で特定した前記記憶方式が半導体記憶方式である場合に、前記データを磁気記憶装置に移動させる必要があると判定し、
前記磁気記憶装置に移動させる旨の指示を表示させる
請求項５に記載のデータベース管理方法。
【請求項８】
前記アクセス種類情報は、前記問い合わせ要求に対応する処理であり、アクセスするデータ構造体と、前記データ構造体に対するアクセス種類を特定可能な処理内容とを含み、
前記ボリューム特定情報は、前記データベースのデータを管理するデータ構造体と、前記データ構造体の格納先を示すパスと、前記パスに対応するボリュームの識別情報との対応関係を含む
請求項６に記載のデータベース管理方法。
【請求項９】
前記記憶方式情報は、前記記憶装置に対して並列して実行可能なアクセス処理の度合いを示す並列度を含み、
（Ｆ）前記記憶方式情報に基づいて、前記（Ｃ）で特定した前記ボリュームを格納する前記記憶装置についての前記並列度を特定し、
（Ｇ）前記並列度に基づいて、前記データに対するアクセス処理におけるＩＯコマンドの同時処理数を決定し、決定したＩＯコマンドの同時処理数に関する情報を通知する
請求項１に記載のデータベース管理方法。
【請求項１０】
データを記憶する記憶方式の異なる複数種類の記憶装置を有するストレージ装置と、
前記ストレージ装置の前記記憶装置の記憶領域に、データベースで管理するデータを格納させて、データベースで管理するデータへのアクセスを管理する計算機と、
前記ストレージ装置と前記計算機とに接続される制御サーバと、を有するデータベースシステムであって、
前記制御サーバは、記憶デバイスと、制御デバイスとを有し、
前記記憶デバイスは、前記ストレージ装置における前記記憶装置の前記記憶方式を特定する記憶方式情報を記憶しており、
前記制御デバイスは、
（Ａ）前記計算機から、前記データベースに対する問い合わせ要求に対応する処理においてアクセスするデータベースのデータを格納するボリュームを特定可能なボリューム特定情報と、前記データに対するアクセス種類を特定可能なアクセス種類情報を取得し、
（Ｂ）前記ストレージ装置から、ボリュームを格納する前記記憶装置を特定可能なボリューム管理情報を取得し、
（Ｃ）前記ボリューム特定情報に基づいて、前記問い合せ要求に対応する処理でアクセスする前記データのボリュームを特定し、前記ボリューム管理情報に基づいて、特定した前記ボリュームを格納する記憶装置を特定し、前記記憶方式情報に基づいて前記記憶装置の記憶方式を特定し、
（Ｄ）前記アクセス種類情報に基づいて、前記問い合せ要求に対応する処理でアクセスする前記データに対するアクセス種類を特定し、
（Ｅ）前記（Ｃ）で特定した前記記憶方式と、前記（Ｄ）取得した前記アクセス種類とに基づいて、前記データを記憶方式の異なる他の記憶装置に移動させる必要があるか否かを決定し、
（Ｆ）前記（Ｅ）で、前記データを記憶方式の異なる他の記憶装置に移動させる必要があると判定した場合に、前記データを記憶方式の異なる他の記憶装置に移動させる指示を行う
データベースシステム。
【請求項１１】
前記制御デバイスは、
前記データを記憶方式の異なる他の記憶装置に移動させる指示を表示させる
請求項１０に記載のデータベースシステム。
【請求項１２】
前記制御デバイスは、
前記データを記憶方式の異なる他の記憶装置に移動させる指示を前記ストレージ装置に送信する
請求項１０に記載のデータベースシステム。
【請求項１３】
前記アクセス種類情報は、前記データに対するアクセスがランダムアクセスであるか、シーケンシャルアクセスであるかを示す情報であり、
複数種類の前記記憶装置は、磁気記憶方式でデータを記憶する磁気記憶装置と、半導体記憶方式でデータを記憶する半導体記憶装置とを含む
請求項１１に記載のデータベースシステム。
【請求項１４】
前記制御デバイスは、
前記（Ｅ）において、前記（Ｄ）で特定したアクセス種類がランダムアクセスであり、且つ前記（Ｃ）で特定した前記記憶方式が磁気記憶方式である場合に、前記データを半導体記憶装置に移動させる必要があると決定し、
前記（Ｆ）で、前記データを前記半導体記憶装置に移動させる指示を表示させる
請求項１３に記載のデータベースシステム。
【請求項１５】
前記制御デバイスは、
前記（Ｅ）において、前記（Ｄ）で特定したアクセス種類がシーケンシャルアクセスであり、且つ前記（Ｃ）で特定した前記記憶方式が半導体記憶方式である場合に、前記データを磁気記憶装置に移動させる必要があると判定し、
前記磁気記憶装置に移動させる旨の指示を表示させる
請求項１３に記載のデータベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理に関する。
【背景技術】
【０００２】
現在、データベース管理システム（以下、ＤＢＭＳと記す）を使用した多くの情報システムが存在している。データに関する一連の処理及び管理を行うＤＢＭＳは、情報システムにおいて重要な役割を果たしている。ＤＢＭＳの処理性能は、情報システムの処理性能に大きく影響するため、ＤＢＭＳの処理性能の向上は極めて重要な課題である。
【０００３】
ＤＢＭＳの主要な機能の一つとしては、データの永続性の保証がある。データの永続性を保証するためにＤＢＭＳでは、データベースで管理するデータ（以下、ＤＢデータと記す）を不揮発性の記憶装置に記憶する。不揮発性の記憶装置としては、磁気記憶方式を用いたハードディスクドライブ（以下、ＨＤＤと記す）が広く用いられている。ＤＢＭＳでは、ＨＤＤにＤＢデータを記憶する場合、ＤＢデータの配置先となるＨＤＤを適切に選択することで情報システムの性能を向上させている。
【０００４】
例えば、特許文献１には、記憶装置の使用状況情報を取得する手段と、計算機がリード／ライト対象とする論理記憶領域と記憶装置の物理記憶領域（第一の物理記憶領域）との対応づけを行う手段とを有し、１台以上の計算機に接続するストレージサブシステムの制御方法に関する技術が記載されている。特許文献１の技術では、記憶装置を複数の組（クラス）に分類し、各クラスに属性を設定する。そして、特許文献１の技術では、各計算機の記憶装置の使用状況情報、及び記憶装置に設定したクラス属性に基づき、複数のクラスから論理記憶領域に好適な再配置先クラス（第二の物理領域）を決定する。
【０００５】
また、ＨＤＤへのアクセス順序を適切に選択することでも情報システムの性能を向上できる。例えば、特許文献２には、ＤＢＭＳのデータベースへの問い合せ処理の処理実行計画を取得し、処理実行計画に基づいて記憶装置へのアクセス順序を決定する記憶装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−６７１８７号公報
【特許文献２】特開２００３−１５０４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＤＢデータを記憶する不揮発性の記憶装置としては、ＨＤＤが多く用いられてきたが、近年は、ＳＳＤ（Solid State Drive）などの電子的な記憶方式を用いた半導体記憶装置も用いられている。
【０００８】
ところで、磁気記憶装置と半導体記憶装置では、記憶方式が異なるためＩ／Ｏ処理性能が異なる。例えば、磁気記憶装置は、記憶方式の特性上、半導体記憶装置に比べてランダムＩ／Ｏ（Input/Output）に対する処理性能が低いという特徴を有する。一方、磁気記憶装置は、半導体記憶装置に比べて安価であるという特徴を有する。従って、記憶装置として、磁気記憶装置と半導体記憶装置との両方が用いられることがある。
【０００９】
このような、記憶装置として磁気記憶装置と半導体記憶装置との両方を用いるＤＢＭＳでは、情報システムのコストパフォーマンスを向上させるため、記憶装置のＩ／Ｏ処理性能に基づいて、記憶装置間でデータの移動（以下、データの再配置）を行う、及び／又はＤＢデータに対するアクセスの順番を適切に変更することが望ましい。
【００１０】
特許文献１に開示された技術では、記憶方式の区別はしていないため、記憶方式に応じたデータの再配置を行うことはできない。また、特許文献２に開示された技術は、処理実行計画に基づいて、各記憶装置に対するアクセスの順番を制御する技術であり、この技術により、記憶装置の記憶方式に応じて各記憶装置に格納されているＤＢデータに対するアクセス方法を適正化することはできない。
【課題を解決するための手段】
【００１１】
本発明の一観点に係るデータベース管理方法は、データを記憶する記憶方式の異なる複数種類の記憶装置を有するストレージ装置と、ストレージ装置の記憶装置の記憶領域に、データベースで管理するデータを格納させて、データベースを管理する計算機と、ストレージ装置と計算機とに接続される制御サーバと、を有するデータベースシステムにおいて実行される。
【００１２】
制御サーバの記憶デバイスは、ストレージ装置における記憶装置の記憶方式を特定する記憶方式情報を記憶している。
【００１３】
データベース管理方法においては、（Ａ）計算機から、データベースに対する問い合わせ要求に対応する処理においてアクセスするデータベースのデータを格納するボリュームを特定可能なボリューム特定情報と、データに対するアクセス種類を特定可能なアクセス種類情報を取得し、（Ｂ）ストレージ装置から、ボリュームを格納する記憶装置を特定可能なボリューム管理情報を取得し、（Ｃ）ボリューム特定情報に基づいて、問い合せ要求に対応する処理でアクセスするデータのボリュームを特定し、ボリューム管理情報に基づいて、特定したボリュームを格納する記憶装置を特定し、記憶方式情報に基づいて記記憶装置の記憶方式を特定し、（Ｄ）アクセス種類情報に基づいて、問い合せ要求に対応する処理でアクセスするデータに対するアクセス種類を特定し、（Ｅ）（Ｃ）で特定した記憶方式と、（Ｄ）取得したアクセス種類とに基づいて、データを記憶方式の異なる他の記憶装置に移動させる必要があるか否かを決定し、（Ｆ）（Ｅ）で、データを記憶方式の異なる他の記憶装置に移動させる必要があると判定した場合に、データを記憶方式の異なる他の記憶装置に移動させる指示を行う。
【発明の効果】
【００１４】
本発明により、磁気記憶装置と半導体記憶装置とを混載するストレージ装置を含むデータベースシステムにおいて好適な性能をえるためのＤＢデータの配置と、ＤＢデータに対するアクセス方法との少なくとも一方を適切に決定することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施形態に係るデータベースシステムの一例の構成図である。
【図２】図２は、計算機１０１のメモリ１１２に格納されているデータの一例を示す。
【図３】図３は、ストレージ装置１０２のメモリ１２２に格納されているデータの一例を示す。
【図４】図４は、制御サーバ１０３のメモリ１３２に格納されているデータの一例を示す。
【図５】図５は、計算機１０１のメモリ１１２に格納されているマッピング情報２０２１の一例を示す。
【図６】図６は、ＤＢＭＳ２０１のスキーマ情報２０１１の一例を示す。
【図７】図７は、ストレージ装置１０２のメモリ１２２に格納されているボリューム管理情報３０１の一例を示す。
【図８】図８は、問い合せ要求Ｓ８０１と、問い合せ要求Ｓ８０１を処理するためにＤＢＭＳ２０１が作成した処理実行計画Ｓ８０２の一例を示す。
【図９】図９は、計算機１０１のメモリ１１２に記憶される処理実行計画情報２０１２の一例を示す。
【図１０】図１０は、制御サーバ１０３のメモリ１３２に格納される記憶方式情報４０５の一例を示す。
【図１１】図１１は、データ配置判断処理の第１のフローチャートである。
【図１２】図１２は、データ配置判断処理の第２のフローチャートである。
【図１３】図１３は、データアクセス方法判断処理のフローチャートである。
【発明を実施するための形態】
【００１６】
以下、実施の形態を説明する。なお、これにより本発明が限定されるものではない。ここで、各情報の要素の識別情報として、例えば、「番号」或いは「名」が採用されるが、他種の識別情報が採用されてもよい。
【００１７】
また、以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサ（典型的にはＣＰＵ（Central  Processing  Unit））によって実行されることで定められた処理をメモリ及び通信ポートを用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は、サーバ、ストレージ装置等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部又は全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。
【００１８】
図１は、実施形態に係るデータベースシステムの一例の構成図である。
【００１９】
データベースシステムは、計算機１０１、ストレージ装置１０２、及び制御サーバ１０３を有する。計算機１０１と、ストレージ装置１０２とは、それぞれが有するＩ／Ｏ（Input/Output）インターフェース（１１４、１２４）を介して接続される。Ｉ／Ｏインターフェース１１４及び１２４を接続する通信ネットワークは、例えば、ＳＡＮ（Storage Area Network）であってもよい。計算機１０１と、ストレージ装置１０２と、制御サーバ１０３とは、それぞれが有するネットワークインターフェース（１１３、１２３、１３３）を介して接続される。ネットワークインターフェース１１３、１２３、１３３を接続する通信ネットワークとしては、ＬＡＮ（Local Area Network）であってもよい。
【００２０】
ストレージ装置１０２は、外部装置（例えば、計算機１０１）に対して記憶領域を提供する装置である。ストレージ装置１０２は、記憶領域を、論理ボリュームを単位として管理し、論理ボリュームを単位とした記憶領域を外部装置に提供する。ストレージ装置１０２では、論理ボリュームの管理（例えば、論理ボリュームへの外部装置からのアクセス）は、論理ボリュームを構成するブロックを単位として行われる。すなわち、論理ボリュームを構成する記憶領域が、複数のブロックとして管理される。
【００２１】
ストレージ装置１０２は、例えば、ネットワークインターフェース１２３、Ｉ／Ｏインターフェース１２４、ストレージコントローラ１２５、及び記憶部１２６を有する。ストレージコントローラ１２５は、Ｉ／Ｏインターフェース１２４、ネットワークインターフェース１２３、及び記憶部１２６（ディスクコントローラ１２７）と接続される。
【００２２】
ネットワークインターフェース１２３は、計算機１０１及び制御サーバ１０３との通信を行うためのインターフェースである。Ｉ／Ｏインターフェース１２４は、計算機１０１と通信を行うためのインターフェースである。ストレージコントローラ１２５は、記憶部１２６に対する、データ（例えば、ＤＢデータ）の書込み及びデータの読込みを実行する。ストレージコントローラ１２５は、例えば、ＣＰＵ１２１及びメモリ１２２を有する。メモリ１２２は、各種処理を実行するプログラムや、プログラムに必要な情報等を記憶する。ＣＰＵ１２１は、メモリ１２２に記憶されたプログラムを実行し、メモリ１２２の各種情報を使用することにより、各種処理を実行する。記憶部１２６は、ＤＢデータを管理する。記憶部１２６は、ディスクコントローラ１２７、１以上の記憶装置（１２８、１２９）を有する。
【００２３】
本実施例では、ストレージ装置１０２は、記憶装置として、１以上の磁気記憶装置１２８と、１以上の半導体記憶装置１２９とを有する。ディスクコントローラ１２７は、磁気記憶装置１２８及び半導体記憶装置１２９に接続され、磁気記憶装置１２８及び半導体記憶装置１２９を制御する。磁気記憶装置１２８は、磁気記憶方式によりデータを記憶する記憶装置であり、典型的にはＨＤＤである。半導体記憶装置１２９は、半導体記憶方式によりデータを記憶する記憶装置であり、典型的にはＳＳＤである。
【００２４】
計算機１０１は、ＣＰＵ１１１、メモリ１１２、ネットワークインターフェース１１３、及びＩ／Ｏインターフェース１１４を有する。計算機１０１は、ストレージ装置１０２が提供するボリュームに対してアクセスを行う。ネットワークインターフェース１１３は、ストレージ装置１０２及び制御サーバ１０３との通信を行うためのインターフェースである。Ｉ／Ｏインターフェース１１４は、ストレージ装置１０２と通信を行うためのインターフェースである。メモリ１１２は、各種処理を実行するプログラムや、プログラムに必要な情報等を記憶する。ＣＰＵ１１１は、メモリ１１２に記憶されたプログラムを実行し、メモリ１１２の各種情報を使用することにより、各種処理を実行する。すなわち、ＣＰＵ１１１が各種機能を実現する。
【００２５】
制御サーバ１０３は、ＣＰＵ１３１、メモリ１３２、ネットワークインターフェース１３３、及び表示装置１３４を有する。ネットワークインターフェース１３３は、計算機１０１及びストレージ装置１０２との通信を行うためのインターフェースである。メモリ１３２は、各種処理を実行するプログラムや、プログラムに必要な情報等を記憶する。ＣＰＵ１３１は、メモリ１３２に記憶されたプログラムを実行し、メモリ１３２の各種情報を使用することにより、各種処理を実行する。ＣＰＵ１３１は、計算機１０１のストレージ装置１０２に対するアクセスを制御することができる。また、ＣＰＵ１３１は、表示装置１３４に情報を表示することができる。なお、制御サーバ１０３は、表示装置１３４を有さず、表示装置を有する遠隔の装置と通信ネットワーク等を介して通信可能でもよい。ＣＰＵ１３１（及びＣＰＵ１３１を有する制御サーバ１０３）による「表示する」という行為は、ＣＰＵ１３１が、そのＣＰＵ１３１を有する制御サーバ１０３の表示装置１３４に文字又は画像等の情報を表示する行為と、表示装置を有する遠隔の装置に、その表示装置に表示させる文字又は画像等の表示用情報を送信する行為とのいずれであってもよい。なお、遠隔の装置は、表示用情報を受信した場合、その表示用情報が表す文字又は画面等を遠隔の装置の表示装置に表示することができる。
【００２６】
図２は、計算機１０１のメモリ１１２に格納されているデータの一例を示す。
【００２７】
メモリ１１２には、例えば、ＤＢＭＳ２０１及びＯＳ（Operating  System）２０２が格納される。ＣＰＵ１１１が、メモリ１１２に格納されている情報を用いる事により、各種機能が実現される。ＤＢＭＳ２０１は、データベースを管理するためのプログラムである。ＤＢＭＳ２０１には、スキーマ情報２０１１及び処理実行計画情報２０１２が含まれる。スキーマ情報２０１１及び処理実行計画情報２０１２に関しては、後述する。
【００２８】
ＯＳ２０２は、マッピング情報２０２１、ファイルシステム２０２２、及びボリュームマネージャ２０２３を有する。マッピング情報２０２１は、ＤＢＭＳ２０１に管理されるデータをファイル形式で管理するための情報、及び論理ボリュームと記憶部１２６の記憶領域（ボリューム）との関連付けに関する情報を管理するための情報である。マッピング情報２０２１については、後に詳述する。
【００２９】
ファイルシステム２０２２には、例えば、各記憶装置（１２８、１２９）にファイルフォルダ（ディレクトリ）を作成する方法、各記憶装置（１２８、１２９）でのファイルの移動及び削除の方法、及び各記憶装置（１２８、１２９）でのデータを記憶する記憶方式に関する情報が格納される。ボリュームマネージャ２０２３は、例えば、外部装置に提供される論理ボリュームを複数の記憶装置（１２８、１２９）から構築する指示、又は外部装置に提供される論理ボリュームを複数の記憶装置（１２８、１２９）に基づく所定レベルのＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）グループから構築する指示をストレージ装置１０２に送信するプログラムである。なお、ＯＳ２０２は、ＤＢＭＳ２０１がファイルと等価なインターフェースでアクセスするための機構であるローデバイス機構を有してもよい。
【００３０】
図３は、ストレージ装置１０２のメモリ１２２に格納されているデータの一例を示す。
【００３１】
ＣＰＵ１２１が、メモリ１２２に格納されている情報を用いる事により、各種機能が実現される。メモリ１２２には、ボリューム管理情報３０１及びストレージ制御プログラム３０２が格納される。ボリューム管理情報３０１は、データを物理的に記憶する磁気記憶装置１２８或いは半導体記憶装置１２９における、データの記憶位置を管理するための情報である。ボリューム管理情報３０１については、後に詳述する。ストレージ装置１０２（具体的には、ストレージコントローラ１２５）は、例えば、１つのボリュームに格納しているデータを、磁気記憶装置１２８と半導体記憶装置１２９とに分散して再配置することが可能である。ストレージ制御プログラム３０２は、ストレージ装置１０２全体を制御するプログラムである。
【００３２】
図４は、制御サーバ１０３のメモリ１３２に格納されているデータの一例を示す。
【００３３】
メモリ１３２には、スキーマ情報４０１、処理実行計画情報４０２、マッピング情報４０３、ボリューム管理情報４０４、記憶方式情報４０５、データ配置判断プログラム４０６、データアクセス方法判断プログラム４０７、及びＯＳ４０８が格納される。スキーマ情報４０１は、スキーマ情報２０１１と同様な情報となっている。処理実行計画情報４０２は、処理実行計画情報２０１２と同様な情報となっている。マッピング情報４０３は、マッピング情報２０２１と同様な情報となっている。ボリューム管理情報４０４は、ボリューム管理情報３０１と同様な情報となっている。ＣＰＵ１３１が、データ配置判断プログラム４０６、データアクセス方法判断プログラム４０７、及びＯＳ４０８を実行することにより、各種機能が実現される。
【００３４】
図５は、計算機１０１のメモリ１１２に格納されているマッピング情報２０２１の一例を示す。
【００３５】
マッピング情報２０２１には、ボリュームローデバイス情報５０１、ファイル記憶位置情報５０２、及び論理ボリューム構成情報５０３が含まれる。ボリュームローデバイス情報５０１には、ローデバイスパス名５０１１及びローデバイスボリューム名５０１２のフィールドが含まれる。ローデバイスパス名５０１１には、ＯＳ２０２においてローデバイスを指定するための識別子（ローデバイスパス名）が格納される。ローデバイスボリューム名５０１２には、ローデバイスパス名５０１１のローデバイスパス名によりアクセスされる、ストレージ装置１０２が提供するボリューム（物理ボリューム）あるいは論理ボリュームの識別子（ボリューム名）が格納される。
【００３６】
ファイル記憶位置情報５０２には、ファイルパス名５０２１、ファイルブロック番号５０２２、ファイル配置ボリューム名５０２３、及びファイル配置ボリュームブロック番号５０２４のフィールドの組が含まれる。ファイルパス名５０２１には、ＯＳ２０２がファイルを指定するための識別子（ファイルパス名）が格納される。ファイルブロック番号５０２２には、ＯＳ２０２が指定したファイルを構成するデータのボリュームでの位置を指定する番号（ファイルブロック番号）が格納される。ファイル配置ボリューム名５０２３には、ファイルを構成するデータが記憶されているストレージ装置１０２が提供するボリュームもしくは論理ボリュームの識別子（ボリューム名）が格納される。ファイル配置ボリュームブロック番号５０２４には、ファイル配置ボリューム名５０２３のボリューム名により指定されるボリュームもしくは論理ボリュームにおけるファイルを構成するデータの記憶位置を示す情報（ブロック番号）が格納される。
【００３７】
論理ボリューム構成情報５０３には、論理ボリューム名５０３１、論理ボリュームブロック番号５０３２、ボリューム名５０３３、及びボリュームブロック番号５０３４のフィールドの組が含まれる。論理ボリューム名５０３１には、ボリュームマネージャ２０２３により上位装置に提供される論理ボリュームの識別子（論理ボリューム名）が格納される。論理ボリュームブロック番号５０３２には、論理ボリュームに格納されているデータの論理ボリュームでの記憶位置を示す情報（ブロック番号）が格納される。ボリューム名５０３３には、その論理ボリュームのブロック内のデータが記憶されている物理ボリュームの識別子（ボリューム名）が格納される。ボリュームブロック番号５０３４には、物理ボリュームに格納されているデータの物理ボリュームでの記憶位置を示す情報（ブロック番号）が格納される。論理ボリューム構成情報５０３の一番上のエントリ（行）によると、論理ボリューム「Ｌｖｏｌ０」のブロック番号が「０−１０２３９」のブロックのデータは、物理ボリューム「Ｖｏｌ０」のブロック番号が「０−１０２３９」のブロックに格納されていることがわかる。
【００３８】
図６は、ＤＢＭＳ２０１で定義及び管理されているデータ、及びその他の管理情報であるスキーマ情報２０１１の一例を示す。
【００３９】
スキーマ情報２０１１には、例えば、表のデータ構造等の定義情報を保持する表定義情報６０１、索引のデータ構造や、索引の対象である表等の定義情報を保持する索引定義情報６０２、及び管理するデータのデータ記憶位置を保持するデータ記憶位置情報６０３が含まれる。
【００４０】
データ記憶位置情報６０３には、データ構造名６０３１と、データファイルパス名６０３２と、ファイルブロック番号６０３３とのフィールドの組が含まれる。データ構造名６０３１には、表及び索引等のデータ構造（データ構造体）の識別子（データ構造名）が格納される。データファイルパス名６０３２には、データ構造名６０３１のデータ構造名のデータを記憶するファイル又はローデバイスの識別子（ファイルパス名）が格納される。このファイルパス名を用いて、マッピング情報２０２１を参照することにより、データ構造名６０３１のデータ構造名のデータ構造のデータが格納されている記憶装置のボリュームを特定することができる。ここで、記憶装置のボリュームを特定するために用いた、ファイルパス名及びマッピング情報２０２１の情報が、ボリューム特定情報の一例である。ファイルブロック番号６０３３には、データ構造名６０３１のデータ構造名のデータのファイル中の記憶位置（ブロック番号）が格納される。例えば、データ記憶位置情報６０３の一番上のエントリによると、データ構造体「Ｔ１」は、「／ｄｅｖ／ｒｄｓｋ／ｌｖｏｌ０」のローデバイス（ファイル）の「０−４９９」のブロックに記憶されていることがわかる。
【００４１】
図７は、ストレージ装置１０２のメモリ１２２に格納されているボリューム管理情報３０１の一例を示す。
【００４２】
ボリューム管理情報３０１には、ボリューム名７０１、ボリューム論理ブロック番号７０２、物理記憶装置名７０３、及び物理ブロック番号７０４のフィールドが含まれる。ボリューム名７０１には、ストレージ装置１０２が提供する論理ボリュームを識別すための情報（ボリューム名）が格納される。ボリューム論理ブロック番号７０２には、その論理ボリューム内のデータの論理的な格納位置（ブロック番号）が格納される。物理記憶装置名７０３には、ボリューム名７０１のボリューム名によって識別される論理ボリュームのデータを実際に格納する物理的な記憶装置（磁気記憶装置１２８、あるいは半導体記憶装置１２９）の識別子（記憶装置名）が格納される。物理ブロック番号７０４には、論理ボリュームのデータを実際に格納している記憶装置における物理的な格納位置（物理ブロック番号）が格納される。
【００４３】
メモリ１２２に格納されているストレージ制御プログラム３０２は、計算機１０１からのデータのリード要求やライト要求などに応じて、ボリューム管理情報３０１を参照して、記憶装置（磁気記憶装置１２８あるいは半導体記憶装置１２９）におけるデータの格納位置を特定し、ディスクコントローラ１２７を用いて記憶装置（磁気記憶装置１２８あるいは半導体記憶装置１２９）に対して、リード要求やライト要求などを実行する。
【００４４】
図８は、問い合せ要求Ｓ８０１と、問い合せ要求Ｓ８０１を処理するためにＤＢＭＳ２０１が作成した処理実行計画Ｓ８０２の一例を示す。
【００４５】
ＤＢＭＳ２０１は、ＳＱＬ（Structured  Query  Language）文等によって記述された問い合せ要求Ｓ８０１に応じて、その問い合せ要求Ｓ８０１を処理するために、内部的にどのような処理をどのような順序で実行するかを示す処理実行計画Ｓ８０２を作成する。
【００４６】
処理実行計画Ｓ８０２は、図８に示すように、例えば、問い合せ要求Ｓ８０１の結果を得るために内部で実行する細分化された処理を処理ノードとする木構造で表現することが可能である。
【００４７】
図８では、ＤＢＭＳ２０１による処理は、末端（図面下側）から幹（図面上側）の方向に向かって流れていく。各処理ノードＳ８１１、Ｓ８１２、Ｓ８１３、Ｓ８１４、Ｓ８１５、Ｓ８１６、Ｓ８１７及びＳ８１８は、問い合せ要求Ｓ８０１で実行される細分化された処理を表し、処理ノード間の結線はデータの流れを表す。１又は複数の処理ノードで、複数の処理グループＳ８３０、Ｓ８３１、Ｓ８３２の組が形成されている。各処理グループＳ８３０、Ｓ８３１、Ｓ８３２は、それぞれＤＢＭＳ２０１が同一の時点に処理可能な処理ノードにより構成されている。例えば、処理グループＳ８３０については、ＤＢＭＳ２０１が、処理ノードＳ８１１、Ｓ８１２、Ｓ８１３、Ｓ８１４、及びＳ８１５を同一の時点に処理することができる。各処理グループＳ８３０、Ｓ８３１、Ｓ８３２に対しては、処理グループの処理を実行する順序を示す処理順序が付されている。処理グループは、この処理順序が小さい方から順番にＤＢＭＳ２０１により処理される。図８に示す処理実行計画Ｓ８０２では、処理順序１の処理グループＳ８３１を実行し、次に、処理順序２の処理グループＳ８３２を実行し、次に、処理順序３の処理グループＳ８３０の処理を実行するという順序で各処理を実行するような計画となっている。つまり、この処理順序により、ＤＢＭＳ２０１によるデータの処理は、末端から幹の方向に向かって流れるようになる。
【００４８】
ＤＢＭＳ２０１は、このような処理実行計画Ｓ８０２の内容を、処理実行計画情報２０１２としてメモリ１１２に格納する。
【００４９】
図９は、計算機１０１のメモリ１１２に記憶される処理実行計画情報２０１２の一例を示す。図９は、図８に示す処理実行計画Ｓ８０２が作成された場合における処理実行計画情報２０１２を示している。
【００５０】
１つの処理実行計画には複数の処理ノードが含まれる。各処理ノードでは、磁気記憶装置１２８或いは半導体記憶装置１２９から読み出されるデータに基づいて処理が実行される。各処理ノードにおいては、磁気記憶装置１２８或いは半導体記憶装置１２９に対してランダムアクセス、又はシーケンシャルアクセスによってデータを読み出し、読み出したデータに基づいて処理を実行する。
【００５１】
処理実行計画情報２０１２には、処理ノード名９０１、親処理ノード名９０２、処理内容９０３、アクセスデータ構造名９０４、処理順序９０５、及び処理内容詳細９０６のフィールドの組が含まれる。
【００５２】
処理ノード名９０１には、１つの処理実行計画に含まれる処理ノードの識別子（処理ノード名）が格納される。図９の処理ノード名９０１に格納されている処理ノード名「Ｎ１−１」〜「Ｎ４−２」は、それぞれ図８に示す各処理ノードＳ８０１〜Ｓ８１８の何れかに対応している。
【００５３】
親処理ノード名９０２には、処理ノード名９０１の処理ノード名の処理ノードの親となる処理ノード（親処理ノード）の識別子（親処理ノード名）が格納される。親処理ノードとは、例えば、処理ノード名９０１の処理ノード名によって識別される処理ノードに対して、処理の流れの上流側に位置し、且つ、処理ノード名９０１の処理ノード名によって識別される処理ノードと直接的にデータのやり取りを行う処理ノード（直接的に結合されている処理ノード）である。
【００５４】
処理内容９０３には、処理ノード名９０１の処理ノード名の処理ノードにおいて、実行される処理内容が格納される。処理内容９０３に格納されている処理内容のうちの記憶装置に対するアクセスを伴う処理については、その処理の特性から「ランダムアクセス」或いは「シーケンシャルアクセス」の２つのカテゴリーのいずれかに分類することができる。例えば、処理内容が「Table Access Full」の場合には、シーケンシャルアクセスに分類でき、「Table Access by index」の場合には、ランダムアクセスに分類できる。ここで、この処理内容９０３に格納される処理内容が、データに対するアクセス種類を特定可能なアクセス種類情報である。
【００５５】
アクセスデータ構造名９０４には、処理ノード名９０１の処理ノード名の処理ノードにおいて、アクセス先となるデータの識別子（データ構造名）が格納される。
【００５６】
処理順序９０５には、処理ノード名９０１の処理ノード名の処理ノードを実行する順序が格納される。処理順序９０５の値が同じである処理ノードは、同一の処理グループを形成し、且つＣＰＵ１１１によって同一の時点に処理される。例えば、処理ノード名９０１の処理ノード名が「Ｎ１−１」、「Ｎ２−２」、「Ｎ３−１」、「Ｎ３−２」及び「Ｎ４−３」である処理ノードは、すべて処理順序９０５の値（処理順序）が「３」であるため、同一の処理グループを形成する。これらの処理ノードは、ＣＰＵ１１１によって同一の時点に処理される。
【００５７】
処理内容詳細９０６には、処理ノード名９０１の処理ノード名の処理ノードにおける処理内容の詳細が格納される。例えば、処理内容詳細９０６には、処理において使用されるデータを選択するための条件式等が格納される。
【００５８】
図１０は、制御サーバ１０３のメモリ１３２に格納される記憶方式情報４０５の一例を示す。
【００５９】
記憶方式情報４０５には、物理記憶装置名１００１と、記憶方式１００２と、並列度１００３とのフィールドの組が含まれる。
【００６０】
物理記憶装置名１００１には、磁気記憶装置１２８あるいは半導体記憶装置１２９を識別する識別子（記憶装置名）が格納される。記憶方式１００２には、物理記憶装置名１００１の記憶装置名の記憶装置におけるデータの記憶方式が格納される。記憶方式１００２には、例えば、記憶装置が磁気記憶装置１２８であれば、磁気記憶方式を示す「磁気」が設定され、記憶装置が半導体記憶装置１２９であれば、半導体記憶方式を示す「半導体」が設定される。
【００６１】
並列度１００３には、物理記憶装置名１００１の記憶装置名の記憶装置を使用する際に好適な性能を得るために、例えば、リード要求やライト要求の場合、各記憶装置に対して同時に、どのくらいの数のＩＯ要求を処理させるかを示す並列度が格納される。例えば、記憶装置が半導体記憶装置１２９の場合、ディスクコントローラ１２７は、半導体記憶装置１２９を構成する複数のチップに対して同時にアクセスできるので、並列度を高く設定することができる。
【００６２】
図１１は、データ配置判断処理の第１のフローチャートであり、図１２は、データ配置判断処理の第２のフローチャートである。図１１におけるフローチャートの「１２」が付された横長円は、図１２の「１２」が付された横長円に対応し、図１１及び図１２のフローチャートがつながっていることを示している。
【００６３】
データ配置判断処理は、制御サーバ１０３のＣＰＵ１３１がデータ配置判断プログラム４０６を実行することにより実現される。データ配置判断処理は、例えば、制御サーバ１０３が、計算機１０１から問い合わせ要求を受け付けたとの通知を受けたことに基づいて実行される。
【００６４】
ステップＳ１１０１では、制御サーバ１０３のデータ配置判断プログラム４０６は、計算機１０１からスキーマ情報２０１１、処理実行計画情報２０１２、及びマッピング情報２０２１を取得し、メモリ１３２に、それぞれ、スキーマ情報４０１、処理実行計画情報４０２、及びマッピング情報４０３として格納する。なお、本実施例では、スキーマ情報４０１、処理実行計画情報４０２、及びマッピング情報４０３は、それぞれ、図６に示すスキーマ情報２０１１、図９に示す処理実行計画情報２０１２、及び図５に示すマッピング情報２０２１と同じであるので、同一のフィールドについては、便宜的に同一である情報の図における参照番号を用いて説明することとする。
【００６５】
ステップＳ１１０２では、データ配置判断プログラム４０６は、ストレージ装置１０２からボリューム管理情報３０１を取得し、メモリ１３２に、ボリューム管理情報４０４として格納する。なお、本実施例では、ボリューム管理情報４０４は、図７に示すボリューム管理情報３０１と同じであるので、便宜的に、図７における参照番号を用いて説明することとする。
【００６６】
ステップＳ１１０３では、データ配置判断プログラム４０６は、取得した処理実行計画情報４０２を参照して、例えば、処理実行計画情報４０２の処理ノードの中から、ランダムアクセスの対象となるデータ構造のデータ構造名を取得する。具体的には、データ配置判断プログラム４０６は、処理内容９０３がランダムアクセスを行う処理内容であるエントリを特定し、当該エントリのアクセスデータ構造名９０４のデータ構造名を取得する。ランダムアクセスを行う処理内容とは、例えば、「Table  Access  by  Index」である。
【００６７】
ステップＳ１１０４では、データ配置判断プログラム４０６は、ステップＳ１１０３で取得したデータ構造名のデータ構造のデータが記憶されている記憶装置が、磁気記憶装置１２８なのか半導体記憶装置１２９なのかを特定する。具体的には、データ配置判断プログラム４０６は、スキーマ情報４０１のデータ記憶位置情報６０３におけるデータ構造名６０３１のデータ構造名が、ステップＳ１１０３で取得したデータ構造名であるエントリを特定し、当該エントリにおけるデータファイルパス名６０３２からファイルパス名を取得する。さらに、データ配置判断プログラム４０６は、マッピング情報４０３のボリュームローデバイス情報５０１において、当該データファイルパス名に対応するエントリのローデバイスボリューム名５０１２からローデバイスボリューム名を特定する。さらに、データ配置判断プログラム４０６は、ボリューム管理情報４０４を参照し、当該ローデバイスボリューム名がボリューム名７０１に格納されているエントリを特定し、当該エントリの物理記憶装置名７０３から物理記憶装置名を特定する。
【００６８】
ステップＳ１１０５では、データ配置判断プログラム４０６は、ステップＳ１１０３で取得したデータ構造名に対応するデータ構造のデータ（対象データ）について、データ配置の変更の効果があるか否かを判断する。具体的に、例えば、データ配置判断プログラム４０６は、記憶方式情報４０５を参照して、ステップＳ１１０４で特定した物理記憶装置名に対応するエントリの記憶方式１００２が「磁気」であるか、「半導体」であるかをチェックする。この結果、記憶方式１００２が「磁気」である場合には、対象データが磁気記憶方式の磁気記憶装置１２８に記憶されていることを意味しているので、データ配置判断プログラム４０６は、データ配置の変更の効果があると判断する。これは、磁気記憶方式の記憶装置は、半導体記憶方式の記憶装置と比較して、ランダムアクセスに対するＩＯＰＳ（Input/Output  Per  Second）が低いため、対象データ（ランダムアクセスの対象となるデータ）が磁気記憶装置１２８に記憶されている場合は、そのデータを半導体記憶装置１２９に配置するようにした方が、アクセス性能が上がるからである。ステップＳ１１０５におけるデータ配置の変更の効果があるか否かの判断は、データを再配置することにより、アクセス性能が上がるかどうかの判断をしていることに等しい。一方、記憶方式１００２が「半導体」である場合には、対象データが半導体記憶方式の半導体記憶装置１２９に記憶されていることを意味しているので、データ配置判断プログラム４０６は、データ配置の変更の効果がないと判断する。
【００６９】
この判断の結果、データ配置の変更の効果があると判断した場合（ステップＳ１１０５でＹｅｓ）には、データ配置判断プログラム４０６は、処理をステップＳ１１０６に進める一方、データ配置の変更の効果がないと判断した場合（ステップＳ１１０５でＮｏ）には、処理をステップＳ１１０７に進める。
【００７０】
ステップＳ１１０６において、データ配置判断プログラム４０６は、対象データを、磁気記憶装置１２８から半導体記憶装置１２９に移動した方がよいと決定し、対象データを磁気記憶装置１２８から半導体記憶装置１２９へ移動させる旨の指示を、表示装置１３４に表示させ、処理をステップＳ１１０７に進める。なお、対象データを磁気記憶装置１２８から半導体記憶装置１２９へ移動させる旨の指示は、対象データを特定することのできる情報（データ構造名）を含んでいてもよい。
【００７１】
ステップＳ１１０７では、データ配置判断プログラム４０６は、ステップＳ１１０３で取得したデータ構造名のデータ構造と結合されるデータ構造のデータ構造名を抽出する。具体的には、データ配置判断プログラム４０６は、処理実行計画情報４０２の親処理ノード名９０２に格納される親処理ノードを特定し、処理実行計画情報４０２の当該親処理ノードに対応するエントリを特定し、当該エントリの処理内容９０３、処理内容詳細９０６等を参照することにより、ステップＳ１１０３で取得したデータ構造名のデータ構造と結合されるデータ構造のデータ構造名を抽出する。
【００７２】
以下の処理では、ステップＳ１１０７で、データ構造のデータ構造名が２つ抽出されたものとして説明する。なお、抽出されるデータ構造のデータ構造名は、１つの場合もあるし、３以上の場合もある。
【００７３】
ステップＳ１１０８では、データ配置判断プログラム４０６は、ステップＳ１１０７で抽出したデータ構造名のデータ構造が記憶されている記憶装置を特定する。なお、データ構造名から記憶装置を特定する方法は、ステップＳ１１０４に示した処理と同様である。
【００７４】
ステップＳ１１０９では、データ配置判断プログラム４０６は、ステップＳ１１０７で抽出したデータ構造名のデータ構造のデータ配置の変更の効果があるか判断する。具体的に、例えば、データ配置判断プログラム４０６は、結合される２つのデータ構造のうち、一方が磁気記憶方式の記憶装置に配置され、他方が半導体記憶方式の記憶装置に配置されている場合に、磁気記憶方式の記憶装置に配置されているデータ構造を半導体記憶方式の記憶装置に再配置することで効果があると判断する。つまり、ここで、データ配置判断プログラム４０６は、２つのデータ構造を、半導体記憶方式の記憶装置に配置することで効果があると判断する。なお、ステップＳ１１０９におけるデータ配置の変更の効果があるか判断は、ステップＳ１１０５と実質的に同じである。なお、ステップＳ１１０９において、データ配置判断プログラム４０６は、２つのデータ構造を結合する結合方式の種別（ネストループジョインやハッシュジョインなど）によって判断方法を変更するようにしてもよい。この判断の結果、データ配置の変更の効果があると判断した場合（ステップＳ１１０９でＹｅｓ）には、データ配置判断プログラム４０６は、処理をステップＳ１１１０に進める一方、データ配置の変更の効果がないと判断した場合（ステップＳ１１０９でＮｏ）には、処理をステップＳ１１１１に進める。
【００７５】
ステップＳ１１１０では、データ配置判断プログラム４０６は、データ配置の変更の効果があると判断されたデータ構造のデータを、磁気記憶装置１２８から半導体記憶装置１２９に移動した方がよいと決定し、そのデータを磁気記憶装置１２８から半導体記憶装置１２９へ移動させる旨の指示を、表示装置１３４に表示させ、処理をステップＳ１１１１に進める。
【００７６】
ステップＳ１１１１では、データ配置判断プログラム４０６は、処理実行計画情報４０２を参照して、シーケンシャルアクセスの対象となるデータ構造のデータ構造名を抽出する。具体的には、データ配置判断プログラム４０６は、処理内容９０３がシーケンシャルアクセスを行う処理内容であるエントリを特定し、当該エントリのアクセスデータ構造名９０４のデータ構造名を取得する。シーケンシャルアクセスを行う処理内容とは、例えば、「Table  Access  full」である。
【００７７】
ステップＳ１１１２では、データ配置判断プログラム４０６は、シーケンシャルアクセスの対象となるデータ構造名のデータ構造のデータが記憶されている記憶装置を特定する。ステップＳ１１１２の処理内容は、対象とするデータ構造のデータが異なるだけで、ステップＳ１１０４の処理内容と実質的に同じである。
【００７８】
ステップＳ１１１３では、データ配置判断プログラム４０６は、ステップＳ１１１１で抽出されたデータ構造名のデータ構造のデータについて、データ配置の変更の効果があるかを判断する。具体的には、データ配置判断プログラム４０６は、記憶方式情報４０５を参照して、ステップＳ１１１２で特定した物理記憶装置名に対応するエントリの記憶方式１００２が「磁気」であるか、「半導体」であるかをチェックする。この結果、記憶方式１００２が「半導体」である場合には、シーケンシャルアクセスの対象となるデータ構造のデータが半導体記憶装置１２９に記憶されていることを示しているので、データ配置の変更の効果があると判断する。ここで、磁気記憶方式の記憶装置のシーケンシャルアクセスに対するスループット（ＭＢ／ｓ）は、半導体記憶方式の記憶装置と比較すると低いが、両者は大きくは乖離していない。一方、磁気記憶方式の記憶装置の方が半導体記憶方式の記憶装置と比べて、ビットコストが安い。そのため、シーケンシャルアクセスの対象となるデータ構造のデータが半導体記憶装置１２９に記憶されている場合は、そのデータ構造のデータの配置を磁気記憶装置１２８とした方が、コストパフォーマンスが高くなる。ステップＳ１１１３におけるデータ配置の変更の効果があるか判断は、データを再配置することにより、コストパフォーマンスが高くなるかどうかの判断をしていることに等しい。一方、記憶方式１００２が「磁気」である場合には、対象データが磁気記憶方式の磁気記憶装置１２８に記憶されていることを意味しているので、データ配置判断プログラム４０６は、データ配置の変更の効果がないと判断する。
【００７９】
この判断の結果、データ配置の変更の効果があると判断した場合（ステップＳ１１１３でＹｅｓ）には、データ配置判断プログラム４０６は、処理をステップＳ１１１４に進める一方、データ配置の変更の効果がないと判断した場合（ステップＳ１１１３でＮｏ）には、処理を終了する。
【００８０】
ステップＳ１１１４において、データ配置判断プログラム４０６は、データ配置の変更の効果があると判断されたデータ構造のデータを、半導体記憶装置１２９から磁気記憶装置１２８に移動した方がよいと決定し、そのデータを半導体記憶装置１２９から磁気記憶装置１２８に移動させる旨の指示を、表示装置１３４に表示させ、処理を終了する。
【００８１】
以上に示したように、本実施例では、データ構造のデータに対する処理内容がランダムアクセスであるか、或いはシーケンシャルアクセスであるかといったデータに対するアクセス種類と、記憶装置の記憶方式とに基づいて、ＤＢデータの再配置先を適切に決定することができる。
【００８２】
一般的に、磁気記憶方式の記憶装置は、シーケンシャルアクセスの性能が高い一方、ランダムアクセスの性能が低いという特性を有する。また、半導体記憶方式の記憶装置は、ランダムアクセスの性能が高いという特性を有する。また、磁気記憶方式の記憶装置は、半導体記憶方式の記憶装置に比べて安価である。
【００８３】
本実施例では、データ構造及びこのデータ構造に結合するデータ構造のデータについてのアクセス方法をチェックする。そして、本実施例では、アクセス方法がランダムアクセスであり、且つデータ構造のデータが格納されている記憶装置が磁気記憶方式の記憶装置である場合、そのデータ構造のデータを、磁気記憶方式の記憶装置からランダムアクセスの性能が高い半導体記憶方式の記憶装置へ移動させた方がよいと決定し、その旨を表示する。
【００８４】
また、本実施例では、アクセス方法がシーケンシャルアクセスであり、且つデータ構造のデータが格納されている記憶装置が半導体記憶方式の記憶装置である場合、そのデータ構造のデータを、半導体記憶方式の記憶装置から、安価でありシーケンシャルアクセスの性能が高い磁気記憶方式の記憶装置へ移動させた方がよいと決定し、その旨を表示する。
【００８５】
本実施例では、データ構造及びこのデータ構造に結合するデータ構造のデータを、アクセス方法に適した格納場所へ再配置することを指示することができる。このため、この指示に従ってデータの再配置を行うことにより、データを適切な位置で管理することができる。また、本実施例では、アクセス方法がシーケンシャルアクセスである場合、磁気記憶方式の記憶装置を積極的に使用するように指示するので、優れたコストパフォーマンスを発揮することができるようになる。
【００８６】
図１３は、データアクセス方法判断処理のフローチャートを示す。
【００８７】
データアクセス方法判断処理は、制御サーバ１０３のＣＰＵ１３１がデータアクセス方法判断プログラム４０７を実行することにより実現される。データアクセス方法判断処理は、例えば、制御サーバ１０３が、計算機１０１から問い合わせ要求を受け付けたとの通知を受けたことに基づいて実行される。
【００８８】
データアクセス方法判断処理は、記憶装置１２８、１２９に格納されているデータ構造のデータに対して、アクセスを行う際に、どのくらいの並列度で、アクセスを行うことが好ましいかを決定する。データアクセス方法判断処理において、ステップＳ１３０１、ステップＳ１３０２、ステップＳ１３０３、及びステップＳ１３０４の処理は、データ配置判断処理におけるステップＳ１１０１、ステップＳ１１０２、ステップＳ１１０３、及びステップＳ１１０４と実質的に同じである。
【００８９】
データアクセス方法判断処理のステップＳ１３０５では、データアクセス方法判断プログラム４０７は、ランダムアクセスの対象となるデータ構造のデータに対するデータアクセス方法の指示を表示装置１３４に表示する。具体的に、例えば、データアクセス方法判断プログラム４０７は、記憶方式情報４０５を参照して、ステップＳ１３０４で特定した物理記憶装置名に対応するエントリの並列度１００３の値である並列度をチェックする。
【００９０】
次いで、データアクセス方法判断プログラム４０７は、得られた並列度に基づいて、記憶装置に対して、どれくらいの数のＩ／Ｏコマンドを同時に処理させるか（どれほどの数のＤＢデータにアクセスさせるか）を決定し、その旨の指示を表示装置１３４に表示する。ここで、データアクセス方法判断プログラム４０７は、並列度の総和を表示装置１３４に表示してもよいし、並列度の総和から所定の値を減じた値を表示装置１３４に表示してもよい。ここで、並列度の総和とは、例えば、対象データが複数の記憶装置に跨っている場合、そのデータが跨っている全ての記憶装置の並列度１００３を足した値を示す。また、所定の値とは、例えば、記憶装置の使用年数に基づく値であってもよい。
【００９１】
なお、ボリュームを構成する記憶装置が１つの場合、データアクセス方法判断プログラム４０７は、その１つの記憶装置の並列度をチェックし、その並列度に基づいて、ＤＢデータにアクセスさせるように設定することを促す指示を表示装置１３４に表示する。
【００９２】
以上に示したように、本実施例では、半導体記憶方式の記憶装置では、アクセスの並列度を適切に設定する指示を行うことで、ユーザに適切なアクセスの並列度を把握させることができ、この指示に従って設定することにより、ＤＢＭＳのアクセス性能を向上できる。本実施例では、記憶装置の記憶方式に応じて、各記憶装置が格納しているデータに対するアクセス方法を決定することができる。
【００９３】
以上、本発明の実施例を説明したが、本発明の権利範囲はこれに限定されず、これに具現された発明に、同一性を失わない範囲内で変更を加えた実施形式も本発明の権利範囲に含まれる。
【００９４】
例えば、ステップＳ１１０６、Ｓ１１１０、及びＳ１１１４においては、データ配置判断プログラム４０６は、データの配置変更の指示を表示装置１３４に表示するようにしていたがこれに限られず、ストレージ装置１０２に、データの配置変更の指示に基づいて、データの配置変更を行う機能（例えば、特許文献１参照）を備えるようにしておき、データ配置判断プログラム４０６がデータの配置変更の指示をストレージ装置１０２に通知し、ストレージ装置１０２が、その指示に従って、データの配置変更を行うようにしてもよい。このようにすると、データを自動的に適切な位置に配置することができる。
【００９５】
また、ステップＳ１３０５では、データアクセス方法判断プログラム４０７がデータアクセス方法の指示を表示装置１３４に表示するようにしていたがこれに限られず、ＤＢＭＳ２０１をデータアクセス方法の指示に応じてデータアクセスを行うように構成しておき、データアクセス方法判断プログラム４０７がデータアクセス方法の指示をＤＢＭＳ２０１に対して指示するようにしてもよい。ＤＢＭＳ２０１に対して指示をする場合には、例えば、データアクセスの並列度を決めるパラメータとして、ＤＢデータの読み込み要求を実行する処理スレッド数をＤＢＭＳ２０１に通知するようにしてもよい。この場合には、ＤＢＭＳ２０１は、通知された処理スレッド数に従って処理スレッドを生成することとなる。
【００９６】
また、ステップＳ１３０５では、データアクセス方法判断プログラム４０７は、データアクセス方法としてデータアクセスの並列度を表示装置１３４に表示するようにしていたが、並列度及びデータアクセスのサイズを表示装置１３４に表示するようにしてもよい。
【符号の説明】
【００９７】
１０１…計算機、１０２…ストレージ装置、１０３…制御サーバ。
【図１】
2015519623.tif 000003
【図２】
2015519623.tif 000004
【図３】
2015519623.tif 000005
【図４】
2015519623.tif 000006
【図５】
2015519623.tif 000007
【図６】
2015519623.tif 000008
【図７】
2015519623.tif 000009
【図８】
2015519623.tif 000010
【図９】
2015519623.tif 000011
【図１０】
2015519623.tif 000012
【図１１】
2015519623.tif 000013
【図１２】
2015519623.tif 000014
【図１３】
2015519623.tif 000015
【国際調査報告】
2015519623.tif 000016
2015519623.tif 000017
2015519623.tif 000018