(57)【特許請求の範囲】
【請求項１】
記憶メディアとしてのディスクを備えたディスク装置を複数台と、前記複数のディスク装置へのアクセスを制御するディスクアクセス制御部とを備え、前記複数のディスク装置にデータベース（ＤＢ）を記憶したストレージシステムと、
前記ＤＢを管理するためのＤＢ管理情報を記憶したＤＢ管理情報記憶域を備え、前記ＤＢを操作するデータベース管理システム（ＤＢＭＳ）を実行する計算機と、
前記複数のディスク装置の回転を制御し、アクセスが発生しないディスク装置のディスクを、０以上であって、アクセス時の回転速度である第一の速度よりも遅い第二の速度で回転させるようにさせるようになっているディスク回転制御部と
を備え、
前記ＤＢは、前記ＤＢＭＳにアクセスされる要素であるＤＢスキーマを複数個含んでおり、
前記ＤＢ管理情報は、どのＤＢスキーマがどの位置に記憶されているかを表す情報を含んでおり、
前記ＤＢＭＳは、クエリを受け付け、前記受け付けたクエリのクエリプランを作成し、該クエリプランに従って、前記ＤＢ管理情報から特定されるＤＢスキーマに対するアクセス要求を発行するようになっており、
前記ディスク回転制御部が、前記ＤＢＭＳがクエリを受け付けた場合に、該クエリのクエリプランと前記ＤＢ管理情報とから、該クエリの処理の際にアクセスされるＤＢスキーマの記憶位置を特定し、該特定された記憶位置を備えたディスク装置のディスクを前記第一の速度で回転させ、
前記ＤＢＭＳは、前記クエリの処理が終了すると、処理が終了した前記クエリの情報を、終了要求として前記ディスク回転制御部に送り、
前記ディスク回転制御部は、前記ＤＢＭＳからの前記終了要求を受信した場合に、前記クエリの処理の際にアクセスされた全てのディスク装置のディスクを停止させる、
計算機システム。
【請求項２】
前記ディスク回転制御部が、前記ＤＢＭＳがクエリを受け付けた場合に、該クエリのクエリプランと前記ＤＢ管理情報とから、該クエリの処理の際にアクセスされる全てのＤＢスキーマにそれぞれ対応した全ての記憶位置を特定し、該特定された全ての記憶位置をそれぞれ備える全てのディスク装置のディスクを前記第一の速度で回転させる、
請求項１記載の計算機システム。
【請求項３】
前記ディスク回転制御部が、前記ＤＢＭＳから発行されるアクセス要求を基に、該クエリの処理進行状況を把握し、該把握された処理進行状況から、次段階でアクセスされるＤＢスキーマの記憶位置を特定し、該記憶位置を備えたディスク装置のディスクを前記第一の速度で回転させる、
請求項１記載の計算機システム。
【請求項４】
前記ＤＢ管理情報には、各ＤＢスキーマ毎にアクセスサイズが含まれており、
前記ディスク回転制御部は、前記ＤＢＭＳから発行されるアクセス要求を用いて、該アクセス要求に従ってアクセスされるＤＢスキーマに対応したアクセスサイズを前記ＤＢ管理情報から特定し、特定されたアクセスサイズと、前記把握された処理進行状況とに基づいて、前記次段階でアクセスされるＤＢスキーマを記憶したディスク装置のディスクを前記第一の速度で回転させる開始タイミングを制御する、
請求項３記載の計算機システム。
【請求項５】
前記ディスク回転制御部が、前記次段階でアクセスされるＤＢスキーマを記憶したディスク装置について、単位時間当たりのデータ転送量と、ディスクの回転速度が前記第一の速度になるのに要するディスク回転開始時間長とを取得し、前記アクセス要求と、現段階でアクセスされるＤＢスキーマに対応したアクセスサイズとを基に、現段階の進捗を特定し、該特定された進捗と、前記取得した単位時間当たりのデータ転送量とに基づいて、現段階の処理に要する残り時間長を推測し、該推測された残り時間長が、前記取得されたディスク回転開始時間以下の場合に、前記次段階でアクセスされるＤＢスキーマを記憶したディスク装置のディスクを前記第一の速度で回転させる、
請求項４記載の計算機システム。
【請求項６】
前記第二の速度は、０であり、
前記ディスク回転制御部が、前記把握された処理進行状況から、次々段階でアクセスされるＤＢスキーマの記憶位置を特定し、該記憶位置を備えたディスク装置のディスクを、前記第二の速度よりも速く前記第一の速度よりも遅い第三の速度で回転させる、
請求項３記載の計算機システム。
【請求項７】
前記ＤＢ管理情報には、各ＤＢスキーマ毎にアクセスサイズが含まれており、
前記ディスク回転制御部が、前記次段階でアクセスされるＤＢスキーマのアクセスサイズを前記ＤＢ管理情報から特定し、該特定されたアクセスサイズが所定値以上の場合には、前記次々段階でアクセスされるＤＢスキーマを記憶したディスク装置のディスクを回転させない、
請求項６記載の計算機システム。
【請求項８】
前記ディスク回転制御部が、ディスク装置のディスクを停止させる場合に、停止命令を発行し、
前記ディスクアクセス制御部は、前記ディスク回転制御部から発行された前記停止命令に基づいて、前記ディスク装置のディスクを停止する、
請求項１記載の計算機システム。
【請求項９】
前記ディスク回転制御部が、クエリプランを構成するステップ単位ではなく、スキャン単位で、ディスク装置のディスクを前記第一の速度で回転させる、
請求項１記載の計算機システム。
【請求項１０】
前記ディスク回転制御部が、クエリプランを構成するステップ単位ではなく、スキャン単位で、ディスク装置のディスクを前記第二の速度で回転させる、
請求項１記載の計算機システム。
【請求項１１】
前記ディスク回転制御部は、ＤＢ情報取得部と、ディスク回転指示部とを備え、
前記ＤＢ情報取得部は、前記ＤＢＭＳが受け付けたクエリのクエリプランに関する情報と、前記ＤＢ管理情報とを取得し、それらの情報を基に、該クエリでのスキャンの手順と、各スキャンでアクセスするＤＢスキーマとその記憶位置とを特定し、特定した内容を表す情報であるＤＢ処理管理情報をディスク回転指示部に送信し、
前記ディスク回転指示部が、前記ＤＢ情報取得部からＤＢ処理管理情報を受信し、該ＤＢ処理管理情報を用いて、前記受けたクエリの処理の際のスキャンでアクセスされるＤＢスキーマの記憶位置を特定し、該特定された記憶位置を備えたディスク装置のディスクを前記第一の速度で回転させる、
請求項１記載の計算機システム。
【請求項１２】
前記ＤＢ処理管理情報には、各ＤＢスキーマのＩＤと各ＤＢスキーマの記憶位置とを表したＤＢスキーマ位置情報と、どんな順番でスキャンし且つどのスキャン段階でどのＤＢスキーマにアクセスするかを表したＤＢ処理情報とが含まれ、
前記ＤＢ情報取得部は、前記ＤＢＭＳが起動した場合或いは前記ＤＢに変更があった場合に、前記ＤＢスキーマ位置情報を作成して前記ディスク回転指示部に送信し、前記ＤＢＭＳがクエリを受け付けた場合に、前記ＤＢ処理情報を作成して前記ディスク回転指示部に送信する、
請求項１１記載の計算機システム。
【請求項１３】
前記複数のディスク装置には、二以上の論理ユニットが構築され、
前記ストレージシステムは、論理ユニットＩＤとディスク装置ＩＤとの対応を表す記憶領域管理情報を記憶した記憶域を備え、
前記ＤＢ管理情報には、各ＤＢスキーマのＩＤと各ＤＢスキーマの記憶位置とを表し前記ＤＢＭＳが管理するＤＢＭＳ管理情報と、前記記憶位置と論理ユニットＩＤとの対応を表し前記計算機のオペレーティングシステム（ＯＳ）が管理するＯＳ管理情報とが含まれ、
前記ディスク回転制御部は、前記ＤＢＭＳがクエリを受け付けた場合に、該クエリの処理の際にアクセスされるＤＢスキーマの記憶位置を前記ＤＢＭＳから取得し、該特定された記憶位置に対応する論理ユニットＩＤを前記ＯＳから取得し、前記取得した論理ユニットＩＤを含んだ第一の回転制御命令を発行し、
前記ディスクアクセス制御部が、前記発行された第一の回転制御命令を受信し、該受信した第一の回転制御命令中の論理ユニットＩＤに対応したディスク装置ＩＤを前記記憶領域管理情報から特定し、特定されたディスク装置ＩＤに対応したディスク装置のディスクを前記第一の速度で回転させる、
請求項１記載の計算機システム。
【請求項１４】
前記ディスク回転制御部が、前記ＤＢＭＳから発行されるアクセス要求を基に、該クエリの処理進行状況を把握し、該把握された処理進行状況から、現段階の処理を終了したことを特定した場合に、該現段階の処理でアクセスされたディスク装置のディスクを前記第二の速度で回転させる、
請求項１記載の計算機システム。
【請求項１５】
前記ディスク回転制御部が、前記現段階の処理が終了して次段階の処理が現段階の処理となる場合に、該終了した現段階の処理が次段階の処理となる場合には、該現段階の処理でアクセスされたディスク装置のディスクの回転速度を前記第二の速度としないようにする、
請求項１４記載の計算機システム。
【請求項１６】
記憶メディアとしてのディスクを備えたディスク装置を複数台を備え、前記複数のディスク装置へのアクセスを制御し、前記複数のディスク装置にデータベース（ＤＢ）を記憶したストレージシステムと、
前記ＤＢを管理するためのＤＢ管理情報を記憶し、前記ＤＢを操作するデータベース管理システム（ＤＢＭＳ）を実行する計算機と、
前記複数のディスク装置の回転を制御し、アクセスが発生しないディスク装置のディスクを、０以上であって、アクセス時の回転速度である第一の速度よりも遅い第二の速度で回転させるようにさせるようになっているディスク回転制御部と
を備えた計算機システムで実現する方法であって、
前記ＤＢは、前記ＤＢＭＳにアクセスされる要素であるＤＢスキーマを複数個含み、
前記ＤＢ管理情報は、どのＤＢスキーマがどの位置に記憶されているかを表す情報を含み、
前記ＤＢＭＳは、クエリを受け付け、前記クエリのクエリプランを作成し、該クエリプランに従って、前記ＤＢ管理情報から特定されるＤＢスキーマに対するアクセス要求を発行し、
ディスク回転制御部は、前記ＤＢＭＳがクエリを受け付けた場合に、該クエリのクエリプランと前記ＤＢ管理情報とから、該クエリの処理の際にアクセスされるＤＢスキーマの記憶位置を特定し、該特定された記憶位置を備えたディスク装置のディスクを、アクセス時の回転速度である第一の速度で回転させ、
前記ＤＢＭＳは、前記クエリの処理が終了すると、処理が終了した前記クエリの情報を、終了要求として前記ディスク回転制御部に送り、
前記ディスク回転制御部は、前記ＤＢＭＳからの前記終了要求を受信した場合に、前記クエリの処理の際にアクセスされた全てのディスク装置のディスクを停止させる、
ストレージシステムの消費電力低減方法。
【請求項１７】
記憶メディアとしてのディスクを備えたディスク装置を複数台と、前記複数のディスク装置へのアクセスを制御するディスクアクセス制御部とを備え、前記複数のディスク装置にデータベース（ＤＢ）を記憶したストレージシステムと接続された計算機であって、
前記ＤＢを管理するためのＤＢ管理情報を記憶したＤＢ管理情報記憶域と、
前記ＤＢを操作するデータベース管理システム（ＤＢＭＳ）と、
前記複数のディスク装置の回転を制御し、アクセスが発生しないディスク装置のディスクを、０以上であって、アクセス時の回転速度である第一の速度よりも遅い第二の速度で回転させるようにさせるようになっているディスク回転制御部と
を備え、
前記ＤＢは、前記ＤＢＭＳにアクセスされる要素であるＤＢスキーマを複数個含んでおり、
前記ＤＢ管理情報は、どのＤＢスキーマがどの位置に記憶されているかを表す情報を含んでおり、
前記ＤＢＭＳは、クエリを受け付け、受け付けたクエリのクエリプランを作成し、該クエリプランに従って、前記ＤＢ管理情報から特定されるＤＢスキーマに対するアクセス要求を発行し、
前記ディスク回転制御部が、前記ＤＢＭＳがクエリを受け付けた場合に、該クエリのクエリプランと前記ＤＢ管理情報とから、該クエリの処理の際にアクセスされるＤＢスキーマの記憶位置を特定し、該特定された記憶位置を備えたディスク装置のディスクを、アクセス時の回転速度である第一の速度で回転させ、
前記ＤＢＭＳは、前記クエリの処理が終了すると、処理が終了した前記クエリの情報を、終了要求として前記ディスク回転制御部に送り、
前記ディスク回転制御部は、前記ＤＢＭＳからの前記終了要求を受信した場合に、前記クエリの処理の際にアクセスされた全てのディスク装置のディスクを停止させる、
計算機。
【請求項１８】
記憶メディアとしてのディスクを備えたディスク装置を複数台と、前記複数のディスク装置へのアクセスを制御するディスクアクセス制御部とを備え、前記複数のディスク装置にデータベース（ＤＢ）を記憶したストレージシステムと接続され、
前記ＤＢを管理するためのＤＢ管理情報を記憶し、
前記ＤＢを操作するデータベース管理システム（ＤＢＭＳ）と、
前記複数のディスク装置の回転を制御し、アクセスが発生しないディスク装置のディスクを、０以上であって、アクセス時の回転速度である第一の速度よりも遅い第二の速度で回転させるようにさせるようになっているディスク回転制御部と、
を備えた計算機で実現する方法であって、
前記ＤＢは、前記ＤＢＭＳにアクセスされる要素であるＤＢスキーマを複数個含み、
前記ＤＢ管理情報は、どのＤＢスキーマがどの位置に記憶されているかを表す情報を含み、
前記ＤＢＭＳは、クエリを受け付け、受け付けたクエリのクエリプランを作成し、該クエリプランに従って、前記ＤＢ管理情報から特定されるＤＢスキーマに対するアクセス要求を発行し、
前記ディスク回転制御部が、前記ＤＢＭＳがクエリを受け付けた場合に、該クエリのクエリプランと前記ＤＢ管理情報とから、該クエリの処理の際にアクセスされるＤＢスキーマの記憶位置を特定し、該特定された記憶位置を備えたディスク装置のディスクを、アクセス時の回転速度である第一の速度で回転させ、
前記ＤＢＭＳは、前記クエリの処理が終了すると、処理が終了した前記クエリの情報を、終了要求として前記ディスク回転制御部に送り、
前記ディスク回転制御部は、前記ＤＢＭＳからの前記終了要求を受信した場合に、前記クエリの処理の際にアクセスされた全てのディスク装置のディスクを停止させる、
ストレージシステムの消費電力低減方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース（以下「ＤＢ」）を記憶するストレージシステムの消費電力を低減するための技術に関する。
【背景技術】
【０００２】
現在、ＤＢを基盤とする多くのアプリケーションが存在し、ＤＢに関する一連の処理／管理を行うデータベースマネージメントシステム（以下「ＤＢＭＳ」）は極めて重要なものとなっている。ＤＢの特徴の一つは、膨大な量のデータを扱うことである。そのため、ＤＢＭＳが稼動する計算機システム（以下、ＤＢシステムとも言う）の多くにおいては、ＤＢＭＳが動作する計算機（以下、ＤＢサーバ）に、複数台の記憶装置を備えた（つまり大容量の）ストレージシステムを接続し、そのストレージシステムにＤＢのデータを記憶させるシステム形態が一般的である。
【０００３】
ＤＢのデータは増加傾向にあり、それに伴ってストレージシステムの更なる大容量化が進んでいる。また、ストレージシステムに搭載される記憶装置としては、例えば、磁気テープ装置、或いは、ディスク（例えば、ハードディスク或いはＤＶＤ（Digital Versatile Disk）を搭載できる記憶装置（以下、「ディスク装置」と略記）がある。アクセス頻度の低いデータ（例えばアーカイブデータ）は、ディスク装置よりも価格の安い磁気テープ装置に記憶されることがあるが、ディスク装置の低価格化に伴い、ディスク装置に記憶されるケースが増えつつある。
【０００４】
ストレージシステムの大容量化の方法の一つとして、搭載するディスク装置の台数を増やす方法がある。しかし、ディスクの回転には多くの電力が消費されるため、ディスク装置の台数の増加によって、ストレージシステム全体の消費電力が増大する。消費電力を制御するための技術として、例えば、特開平９−２８２０５７号公報（以下、文献１）及び特開２０００−２９３３１４号公報（以下、文献２）が知られている。
【０００５】
文献１に開示の技術は、ディスクアレイ装置において、上位装置からアクセスが無くなり予め定めた時間経過後、ディスク装置の節電（電源オンオフや節電モードの選択）を制御する。また、上位装置からアクセスがあった場合、アクセス先のディスク装置の電源がオフになっていれば、そのディスク装置の電源を投入した後、アクセスを実行する。
【０００６】
文献２に開示の技術は、周辺装置を含むコンピュータシステムを構成する電源制御対象装置の電源を制御するための技術である。コンピュータシステムにおいてジョブが実行され、システム電源制御装置が、ジョブの実行計画や稼動実績に基づいて、各電源制御対象装置毎に、電源制御計画を作成し、作成した電源制御計画に従って、その電源制御計画に対応する電源制御対象装置の電源を制御する。
【０００７】
【特許文献１】特開２０００−２９３３１４号公報
【特許文献２】特開平９−２８２０５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前述したように、ＤＢのデータを記憶するためのストレージシステムのディスク装置の搭載台数は、増加傾向にあるため、そのようなストレージシステムの消費電力の低減のための技術が望まれる。
【０００９】
ストレージシステムの消費電力を低減するための技術として、文献１に開示の技術を利用する技術、例えば、ディスク装置の電源をオフにしておき、アクセスがあった場合に、そのアクセス先のディスク装置の電源を投入する技術が考えられる。しかし、この技術では、例えば、ストレージシステムが上位装置からリード要求を受信した場合に、ディスク装置の電源を投入してからデータを読み出すことになるため、上位装置に対する読出しの応答が遅くなるという課題がある。
【００１０】
一方、文献２に開示の技術によれば、文献２で言うコンピュータシステムは、ＤＢサーバとストレージシステムとを含んだＤＢシステムに相当するため、電源制御対象装置は、ＤＢサーバやストレージシステムとなる。このため、文献２に開示の技術では、ストレージシステム内のディスク装置の電源制御はできない。
【００１１】
仮に、文献１の技術と文献２の技術を組み合わせることができたとしても、ストレージシステム内のディスク装置を制御することによりストレージシステム全体の消費電力を低減することと、ストレージシステムの応答速度の劣化を抑えることの両方を実現することはできない。なぜなら、文献１と文献２の組み合わせから導き出せるのは、ストレージシステム本体の電源を投入し、ストレージシステムにアクセスが発生した場合に、アクセス先のディスク装置の電源がオフになっていればその電源を投入することにすぎないためである。
【００１２】
従って、本発明の目的は、ＤＢのデータを記憶するストレージシステム内のディスク装置を制御することによりストレージシステム全体の消費電力を低減することと、ストレージシステムの応答速度の劣化を抑えることの両方を実現することにある。
【課題を解決するための手段】
【００１３】
本発明に従う計算機システムは、ストレージシステムと、計算機と、ディスク回転制御部とを備える。ストレージシステムは、記憶メディアとしてのディスクを備えたディスク装置を複数台と、前記複数のディスク装置へのアクセスを制御するディスクアクセス制御部とを備え、前記複数のディスク装置にデータベース（ＤＢ）を記憶する。計算機は、前記ＤＢを管理するためのＤＢ管理情報を記憶したＤＢ管理情報記憶域を備え、前記ＤＢを操作するデータベース管理システム（ＤＢＭＳ）を実行する。ディスク回転制御部は、前記複数のディスク装置の回転を制御する。この計算機システムは、アクセスが発生しないディスク装置のディスクを、０以上であって、アクセス時の回転速度である第一の速度よりも遅い第二の速度で回転させるようになっている。これは、ディスク回転制御部からの命令によりされても良いし、ストレージシステム内ので制御により実現されても良い。前記ＤＢは、前記ＤＢＭＳにアクセスされる要素であるＤＢスキーマを複数個含んでいる。前記ＤＢ管理情報は、どのＤＢスキーマがどの位置に記憶されているかを表す情報を含んでいる。前記ＤＢＭＳは、クエリを受け付け、受け付けたクエリのクエリプランを作成し、該クエリプランに従って、前記ＤＢ管理情報から特定されるＤＢスキーマに対するアクセス要求を発行するようになっている。前記ディスク回転制御部が、前記ＤＢＭＳがクエリを受け付けた場合に、該クエリのクエリプランと前記ＤＢ管理情報とから、該クエリの処理の際にアクセスされるＤＢスキーマの記憶位置を特定し、該特定された記憶位置を備えたディスク装置のディスクを前記第一の速度で回転させる。
【００１４】
第一の実施態様では、前記ディスク回転制御部が、前記ＤＢＭＳがクエリを受け付けた場合に、該クエリのクエリプランと前記ＤＢ管理情報とから、該クエリの処理の際にアクセスされる全てのＤＢスキーマにそれぞれ対応した全ての記憶位置を特定し、該特定された全ての記憶位置をそれぞれ備える全てのディスク装置のディスクを前記第一の速度で回転させることができる。
【００１５】
第二の実施態様では、前記ディスク回転制御部が、前記ＤＢＭＳがクエリの処理を終了した場合に、該クエリの処理でアクセスされた全てのディスク装置のディスクを前記第二の速度で回転させることができる。
【００１６】
第三の実施態様では、前記ディスク回転制御部が、前記ＤＢＭＳから発行されるアクセス要求を基に、該クエリの処理進行状況を把握し、該把握された処理進行状況から、次段階でアクセスされるＤＢスキーマの記憶位置を特定し、該記憶位置を備えたディスク装置のディスクを前記第一の速度で回転させることができる。
【００１７】
第四の実施態様では、前記第三の実施態様において、前記ＤＢ管理情報には、各ＤＢスキーマ毎にアクセスサイズが含まれていてもよい。前記ディスク回転制御部は、前記ＤＢＭＳから発行されるアクセス要求を用いて、該アクセス要求に従ってアクセスされるＤＢスキーマに対応したアクセスサイズを前記ＤＢ管理情報から特定し、特定されたアクセスサイズと、前記把握された処理進行状況とに基づいて、前記次段階でアクセスされるＤＢスキーマを記憶したディスク装置のディスクを前記第一の速度で回転させる開始タイミングを制御することができる。
【００１８】
第五の実施態様では、前記第四の実施態様において、前記ディスク回転制御部が、前記次段階でアクセスされるＤＢスキーマを記憶したディスク装置について、単位時間当たりのデータ転送量と、ディスクの回転速度が前記第一の速度になるのに要するディスク回転開始時間長とを取得することができる。また、前記ディスク回転制御部は、前記アクセス要求と、現段階でアクセスされるＤＢスキーマに対応したアクセスサイズとを基に、現段階の進捗を特定し、該特定された進捗と、前記取得した単位時間当たりのデータ転送量とに基づいて、現段階の処理に要する残り時間長を推測することができる。さらに、前記ディスク回転制御部は、該推測された残り時間長が、前記取得されたディスク回転開始時間以下の場合に、前記次段階でアクセスされるＤＢスキーマを記憶したディスク装置のディスクを前記第一の速度で回転させることができる。
【００１９】
第六の実施態様では、前記第三の実施態様において、前記第二の速度は、０とすることができる。前記ディスク回転制御部が、前記把握された処理進行状況から、次々段階でアクセスされるＤＢスキーマの記憶位置を特定し、該記憶位置を備えたディスク装置のディスクを、前記第二の速度よりも速く前記第一の速度よりも遅い第三の速度で回転させることができる。
【００２０】
第七の実施態様では、前記第六の実施態様において、前記ＤＢ管理情報には、各ＤＢスキーマ毎にアクセスサイズが含まれていてもよい。前記ディスク回転制御部が、前記次段階でアクセスされるＤＢスキーマのアクセスサイズを前記ＤＢ管理情報から特定し、該特定されたアクセスサイズが所定値以上の場合には、前記次々段階でアクセスされるＤＢスキーマを記憶したディスク装置のディスクを回転させないようにすることができる。
【００２１】
第八の実施態様では、前記ストレージシステムが、前記複数のディスク装置にそれぞれ対応したカウント値を記憶する記憶域を備えることができる。前記ディスク回転制御部が、ディスク装置のディスクを前記第一の速度で回転させる場合に、第一の回転制御命令を発行することができる。前記ディスクアクセス制御部が、前記ディスク回転制御部から前記第一の回転制御命令を受けた場合に、該第一の回転制御命令に従うディスク装置のディスクを回転させ、且つ、該第一の回転制御命令に対応するカウント値を増やし、所定のタイミングで、該カウント値を減らし、更新後のカウント値が所定値になった場合に、該更新後のカウント値に対応するディスク装置のディスクを第二の速度で回転させることができる。
【００２２】
第九の実施態様では、前記第八の実施態様において、前記ディスク回転制御部が、ディスク装置のディスクを前記第二の速度で回転させる場合に、第二の回転制御命令を発行することができる。前記所定のタイミングは、前記ディスクアクセス制御部が前記ディスク回転制御部から前記第二の回転制御命令を受けたときとすることができる。
【００２３】
第十の実施態様では、前記ディスク回転制御部が、クエリプランを構成するステップ単位ではなく、スキャン単位で、ディスク装置のディスクを前記第一の速度で回転させることができる。
【００２４】
第十一の実施態様では、前記ディスク回転制御部が、クエリプランを構成するステップ単位ではなく、スキャン単位で、ディスク装置のディスクを前記第二の速度で回転させることができる。
【００２５】
第十二の実施態様では、前記ディスク回転制御部は、ＤＢ情報取得部と、ディスク回転指示部とを備えることができる。前記ＤＢ情報取得部は、前記ＤＢＭＳが受け付けたクエリのクエリプランに関する情報と、前記ＤＢ管理情報とを取得し、それらの情報を基に、該クエリでのスキャンの手順と、各スキャンでアクセスするＤＢスキーマとその記憶位置とを特定し、特定した内容を表す情報であるＤＢ処理管理情報をディスク回転指示部に送信することができる。前記ディスク回転指示部が、前記ＤＢ情報取得部からＤＢ処理管理情報を受信し、該ＤＢ処理管理情報を用いて、前記受けたクエリの処理の際のスキャンでアクセスされるＤＢスキーマの記憶位置を特定し、該特定された記憶位置を備えたディスク装置のディスクを前記第一の速度で回転させることができる。
【００２６】
第十三の実施態様では、前記第十二の実施態様において、前記ＤＢ処理管理情報には、各ＤＢスキーマのＩＤと各ＤＢスキーマの記憶位置とを表したＤＢスキーマ位置情報と、どんな順番でスキャンし且つどのスキャン段階でどのＤＢスキーマにアクセスするかを表したＤＢ処理情報とが含まれる。前記ＤＢ情報取得部は、前記ＤＢＭＳが起動した場合或いは前記ＤＢに変更があった場合に、前記ＤＢスキーマ位置情報を作成して前記ディスク回転指示部に送信し、前記ＤＢＭＳがクエリを受け付けた場合に、前記ＤＢ処理情報を作成して前記ディスク回転指示部に送信することができる。
【００２７】
第十四の実施態様では、前記複数のディスク装置には、二以上の論理ユニットが構築される。前記ストレージシステムは、論理ユニットＩＤとディスク装置ＩＤとの対応を表す記憶領域管理情報を記憶した記憶域を備えることができる。前記ＤＢ管理情報には、各ＤＢスキーマのＩＤと各ＤＢスキーマの記憶位置とを表し前記ＤＢＭＳが管理するＤＢＭＳ管理情報と、前記記憶位置と論理ユニットＩＤとの対応を表し前記計算機のオペレーティングシステム（ＯＳ）が管理するＯＳ管理情報とが含まれる。前記ディスク回転制御部は、前記ＤＢＭＳがクエリを受け付けた場合に、該クエリの処理の際にアクセスされるＤＢスキーマの記憶位置を前記ＤＢＭＳから取得し、該特定された記憶位置に対応する論理ユニットＩＤを前記ＯＳから取得し、前記取得した論理ユニットＩＤを含んだ第一の回転制御命令を発行することができる。前記ディスクアクセス制御部が、前記発行された第一の回転制御命令を受信し、該受信した第一の回転制御命令中の論理ユニットＩＤに対応したディスク装置ＩＤを前記記憶領域管理情報から特定し、特定されたディスク装置ＩＤに対応したディスク装置のディスクを前記第一の速度で回転させることができる。
【００２８】
第十五の実施態様では、前記ディスク回転制御部が、前記ＤＢＭＳから発行されるアクセス要求を基に、該クエリの処理進行状況を把握し、該把握された処理進行状況から、現段階の処理を終了したことを特定した場合に、該現段階の処理でアクセスされたディスク装置のディスクを前記第二の速度で回転させることができる。
【００２９】
第十六の実施態様では、前記第十五の実施態様において、前記ディスク回転制御部が、前記現段階の処理が終了して次段階の処理が現段階の処理となる場合に、該終了した現段階の処理が次段階の処理となる場合には、該現段階の処理でアクセスされたディスク装置のディスクの回転速度を前記第二の速度としないようにすることができる。
【００３０】
上述した各部は、各手段と言い換えてもよい。各部は、ハードウェア（例えば回路）、コンピュータプログラム、或いはそれらの組み合わせ（例えば、コンピュータプログラムを読み込んで実行する一又は複数のＣＰＵ）によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源（例えばメモリ）から読み込むことができる。その記憶資源には、ＣＤ−ＲＯＭやＤＶＤ（Digital Versatile Disk）等の記録媒体を介してインストールすることもできるし、インターネットやＬＡＮ等の通信ネットワークを介してダウンロードすることもできる。
【発明の効果】
【００３１】
本発明によれば、ＤＢのデータを記憶するストレージシステム内のディスク装置を制御することによりストレージシステム全体の消費電力を低減することと、ストレージシステムの応答速度の劣化を抑えることの両方を実現することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態を説明する。まず、実施の形態の概要を説明する。
【００３３】
本実施形態に係るＤＢシステムは、一種の計算機システムであり、ＤＢＭＳが稼動する計算機（以下、ＤＢサーバ）と、ＤＢのデータを記憶するストレージシステムとが備えられる。また、ストレージシステムにディスクの回転に関する指示を与えるディスク回転指示プログラムが備えられる。ストレージシステムは、ディスク回転プログラムからの指示に従って、ディスクの回転制御を行う。
【００３４】
本実施形態の特徴の一つとして、ＤＢＭＳが受け付けたクエリに従う処理（以下、ＤＢ処理）が、そのクエリのプラン（以下、クエリプラン）に沿って進められる点に着目している。ＤＢ処理では、クエリプランに従う順番で、表或いは索引といったＤＢスキーマにアクセスが行われるが、本実施形態では、各ＤＢスキーマと各ＤＢスキーマの記憶位置との対応付けを表す情報（以下、ＤＢスキーマ位置情報）が構築される。
【００３５】
ディスク回転指示プログラムは、ＤＢＭＳが受け付けたクエリのクエリプランに関する情報と、ＤＢスキーマ位置情報とに基づいて、やがてアクセスされるＤＢスキーマとその記憶位置とを特定し、特定された記憶位置に該当するディスク装置のディスクの回転開始命令をストレージシステムに発行する。また、ディスク回転指示プログラムは、一つのクエリについてのＤＢ処理が終了した時点で、そのＤＢ処理で回転させたディスクの回転停止命令をストレージシステムに発行する。
【００３６】
以下、本実施形態について詳細に説明する。尚、本実施形態に本発明が限定されるものではない。
【００３７】
図１は、本発明の一実施形態に係るＤＢシステムの構成例を示した図である。
【００３８】
このＤＢシステム（計算機システム）では、通信ネットワーク１３０を介してＤＢサーバ１００とストレージシステム１４０とが接続される。ＤＢサーバ１００は、ストレージシステム１４０に格納されているＤＢを管理するＤＢＭＳ１１８を実行する。ストレージシステム１５０は、ＤＢ等、ＤＢサーバ１００が使用するデータを格納する。通信ネットワーク１３０は、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）等のネットワークでも、ファイバチャネル等で構成されるネットワーク（ストレージエリアネットワーク：ＳＡＮ）でも良い。尚、図１において、ＤＢサーバ１００、ストレージシステム１４０はそれぞれ１台のみ記載しているが、複数台でも良い。
【００３９】
ＤＢサーバ１００は、例えば一般的な計算機とすることができる。具体的には、例えば、ＤＢサーバ１００は、内部バス１０２で接続されたＣＰＵ（制御プロセッサ）１０４、入出力装置１０６、記憶装置１０８、メモリ１１０及びＩ／Ｆ１１２（通信ネットワーク１３０とのインタフェース）を有する。メモリ１１０及び記憶装置１０８の少なくとも一方には、オペレーティングシステム（以下「ＯＳ」）１１４、ＤＢＭＳ１１８、ＤＢ情報取得プログラム１２２及びディスク回転指示プログラム１２４が格納される。
【００４０】
ＯＳ１１４、ＤＢＭＳ１１８、ＤＢ情報取得プログラム１２２、及びディスク回転指示プログラム１２４は、ＣＰＵ１０４によって実行される。ＯＳ１１０は、ローデバイスとストレージシステム１４０上の論理的な記憶領域とを対応付けるローデバイス情報１１６を保持する。尚、ローデバイスとは、ＯＳで管理する論理的な記憶装置単位である。ＤＢＭＳ１１８は、ＤＢの運用管理に必要となるＤＢ管理情報１２０を保持する。ＤＢＭＳ１１８は、図示しないアプリケーションからクエリを受け付け、受け付けたクエリのクエリプランを作成し、そのクエリプランに従って、ＤＢＭＳ管理情報１２０から特定されるアクセス先に対するアクセス要求（Ｉ／Ｏ要求とも言う）を発行する。ＤＢ情報取得プログラム１２２は、ＤＢに関する種々の情報を取得するための処理を実行する。ディスク回転指示プログラム１２４は、ディスク回転の指示に必要となるＤＢ処理管理情報１２６や、ストレージシステム１４０のディスクに関するディスク情報１２８を保持する。
【００４１】
ストレージシステム１４０は、複数のディスク装置１５２と、それらディスク装置１５２に接続されたコントローラ８５１とを備える。コントローラ８５１は、例えば、内部バス１４２で接続されたＩ／Ｆ１４４（通信ネットワーク１３０とのインタフェース）、ＣＰＵ（制御プロセッサ）１４６、キャッシュメモリ１４８及びメモリ１５０を有する。メモリ１５０には、ストレージシステム１４０を制御する制御プログラム１５４が格納され、ＣＰＵ１４６によって実行される。また、制御プログラム１５４は、ストレージシステム１５０の論理的な記憶領域とディスク装置１５２が有する物理的な記憶領域を対応付ける記憶領域管理情報１５６と、ディスク装置１５２の回転状態を管理するためのディスク回転管理情報１５８とを保持する。尚、ディスク装置１５２は、例えば、ハードディスクドライブであり、ストレージシステム１５０は、複数のディスク装置をＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）構成にしていても良い。尚、上述した各種プログラムは、可搬記憶媒体あるいは通信ネットワークを介して各装置にインストールされても良い。
【００４２】
ストレージシステム１４０がＤＢサーバ１００からライト要求及びデータを受信した場合、制御プログラム１５４は、受信したデータをキャッシュメモリ１４８に一時的に記憶させ、その後、キャッシュメモリ１４８からそのデータを読み出して、ライト要求に従うアクセス先となるディスク装置１５２にそのデータを書込む。ストレージシステム１４０がＤＢサーバ１００からリード要求を受信した場合、制御プログラム１５４は、リード要求に従うアクセス先となるディスク装置１５２からデータを読み出してキャッシュメモリ１４８に一時的に記憶させ、その後、キャッシュメモリ１４８からそのデータを読み出してＤＢサーバ１００に送信する。
【００４３】
以上が、本実施形態に係るＤＢシステムの構成についての説明である。
【００４４】
なお、本実施形態において、ディスク回転指示プログラム１２４はＤＢサーバ１００上で動作するが、ディスク回転指示プログラム１２４は、ＤＢサーバ及びストレージシステムと接続された別の計算機上、または、ストレージシステム上で動作しても良い。また、メモリ１５０とキャッシュメモリ１４８は、一体であっても良い。
【００４５】
また、ＤＢサーバ１００とストレージシステム１４０は、一つの筐体に搭載されても良い。具体的には、例えば、ＤＢサーバ１００は、いわゆるブレードサーバとして、ストレージシステム１４０のコントローラ８５１或いはディスク装置１５２が搭載される筐体に搭載されても良い。
【００４６】
また、コントローラ８５１の上述した構成は一例であり、他の構成を採用することもできる。例えば、コントローラ８５１は、上記の構成に代えて、外部の装置（例えばＤＢサーバ１００）との通信を制御する一以上の第一の制御部（例えば制御回路基板）と、ディスク装置１５２との通信を制御する一以上の第二の制御部（例えば制御回路基板）と、外部の装置とディスク装置１５２との間で授受されるデータを記憶することができるキャッシュメモリと、ストレージシステム１４０を制御するためのデータを記憶することができる制御メモリと、各第一の制御部、各第二の制御部、キャッシュメモリ及び制御メモリを接続する接続部（例えば、クロスバスイッチなどのスイッチ）とを備えることができる。この場合、第一の制御部と第二の制御部の一方が、又は双方が協働して、コントローラ８５１としての処理を行うことができる。制御メモリは無くても良く、その場合、キャッシュメモリに、制御メモリが記憶する情報を記憶する領域が設けられても良い。
【００４７】
さて、以下、前述した各種情報について詳細に説明する。
【００４８】
図２（ａ）は、ストレージシステム１４０の制御プログラム１５４が保持する記憶領域管理情報１５６の構成例を示した図である。
【００４９】
記憶領域情報１５６は、ストレージシステム１４０が有する論理的な記憶領域（以下「論理ユニット」）と、実際にデータが記憶される物理的な記憶領域を対応付ける情報であり、論理ユニット毎にエントリを有する。各エントリは、論理ユニットを識別するための論理ユニット番号を登録するフィールド２００と、論理ユニット内における論理ブロックの番号（以下「論理ブロックアドレス」）を登録するフィールド２０２と、論理ブロックと対応する物理ブロックが存在するディスク装置の番号（物理ディスク番号）を登録するフィールド２０４と、論理ブロックと対応する物理ブロックの番号（以下「物理ブロックアドレス」）を登録するフィールド２０６とを有する。
【００５０】
尚、ブロックとは、記憶領域を扱う際の単位を示すものであり、一般的に５１２バイトであることが多い。また、論理ブロックは物理ブロックと一対一で対応している必要があるが、全ての論理ブロックが同一のディスク上にある必要はない。ストレージシステム１４０は、ＤＢサーバ１００から論理ユニット及び論理ブロックアドレスによるアクセスを受け付ける。そして、ストレージシステム１４０は、論理ユニット及び論理ブロックに対応する物理ブロックの物理ディスク番号と物理ブロックアドレスを記憶領域情報１５６から割り出し、実際にアクセスを行う。
【００５１】
図２（ｂ）は、ストレージシステム１４０の制御プログラム１５４が保持するディスク回転管理情報１５８の構成例を示した図である。
【００５２】
ディスク回転管理情報１５８は、ストレージシステム１４０が有するディスク装置１５２の回転状態を個別（物理ディスク単位）に管理する情報であり、ディスク装置１５２毎に対応するエントリを有する。各エントリは、個々のディスク装置を識別するための物理ディスク番号を登録するフィールド２２０と、ディスク装置の回転状態を示すためのカウント値（以下、回転状態カウント値）を登録するフィールド２２２とを有する。
【００５３】
図３は、ＤＢサーバ１００のＯＳ１１４が保持するローデバイス情報１１６の構成例を示した図である。
【００５４】
ローデバイス情報１１６は、ＯＳ１１４が持つローデバイスと、そのローデバイスに割り当てられたストレージシステム１４０上の記憶領域とを対応付ける情報である。ローデバイス情報１１６は、ローデバイス毎に対応するエントリを有する。各エントリは、ローデバイスのファイル名を登録するフィールド３００と、ローデバイスに対して割り当てられた記憶領域が存在するストレージシステムのアドレスを登録するフィールド３０２と、割り当てられた記憶領域が存在する論理ユニットの論理ユニット番号を登録するフィールド３０４と、割り当てられた記憶領域の論理ユニット上での先頭論理ブロックアドレスを登録するフィールド３０６と、割り当てられた記憶領域の論理ブロック数を登録するフィールド３０８とを有する。
【００５５】
図４（ａ）は、ＤＢＭＳ１１８が保持するＤＢ管理情報１２０の構成例を示した図である。尚、ＤＢＭＳ管理情報１２０は、ＤＢの初期設定時や運用時などに、管理者等によって設定される。
【００５６】
ＤＢＭＳ管理情報１２０は、ＤＢシステムファイルの設定情報であるＤＢシステムファイル情報４００と、データ領域の設定情報であるデータ領域情報４２０と、テーブルやインデックスといったＤＢスキーマの設定情報であるＤＢスキーマ情報４４０とを有する。
【００５７】
図４（ｂ）は、ＤＢシステムファイル情報４００の構成例を示した図である。
【００５８】
ＤＢシステムファイル情報４００は、ＤＢシステムファイルと、前述のローデバイスとを対応付ける情報である。ＤＢシステムファイル情報４００は、ＤＢシステムファイル毎にエントリを有する。各エントリは、ＤＢシステムファイルのファイル名を登録するフィールド４０２と、ＤＢシステムファイルが登録されるローデバイスのファイル名を登録するフィールド４０４とを有する。尚、ＤＢシステムファイルは、ローデバイスに作られる一つの大きなファイルである。ＤＢＭＳ１１８は、このＤＢシステムファイルにＤＢのデータを書き込むことでＤＢを構築する。また、ＤＢシステムファイルに書き込まれたＤＢのデータについて、ＯＳ１１４が、実際にデータを書き込むストレージシステム１４０の論理的な記憶領域を前述のローデバイス情報１１６から割り出す。そして割り出した記憶領域に対するデータの書込み命令をＯＳ１１４がストレージシステム１５０に発行する。
【００５９】
図４（ｃ）は、データ領域情報４２０の構成例を示した図である。
【００６０】
データ領域情報４２０は、ＤＢＭＳ１１８が管理するデータ領域の設定情報である。データ領域情報４２０は、データ領域毎にエントリを有する。各エントリは、データ領域を識別するためのデータ領域ＩＤを登録するフィールド４２２と、データ領域の名前を登録するフィールド４２４と、データ領域が作られるＤＢシステムファイルのファイル名を登録するフィールド４２６と、データ領域に割り当てた領域サイズを登録するフィールド４２８とを有する。尚、データ領域とは、ＤＢのデータを記憶するデータ領域であり、ＤＢシステムファイル上に作成される。
【００６１】
図４（ｄ）は、ＤＢスキーマ情報４４０の構成例を示した図である。
【００６２】
ＤＢスキーマ情報４４０は、ＤＢＭＳ１１４が管理する表（テーブル）や索引（インデックス）といったＤＢスキーマに関する設定情報である。ＤＢスキーマ情報４４０は、ＤＢスキーマ毎にエントリを有する。各エントリは、ＤＢスキーマを識別するためのＤＢスキーマＩＤを登録するフィールド４４２と、ＤＢスキーマの名前を登録するフィールド４４４と、ＤＢスキーマの種別を登録するフィールド４４６と、ＤＢスキーマが書き込まれるデータ領域のＩＤを登録するフィールド４４８と、ＤＢスキーマのサイズを登録するフィールド４５０と、ＤＢスキーマが書き込まれるデータ領域上のオフセットを登録するフィールド４５２とを有する。
【００６３】
図５（ａ）は、ディスク回転指示プログラム１２４が保持するＤＢ処理管理情報１２６の構成例を示した図である。尚、ＤＢ処理管理情報１２６は、ＤＢ情報取得プログラム１２２がＤＢＭＳ１１８やＯＳ１１４から必要な情報を取得し、ディスク回転指示プログラム１２４に送信することによって自動的に作成される。
【００６４】
ＤＢ処理管理情報１２６は、各ＤＢスキーマの論理的な位置情報であるＤＢスキーマ位置情報５００と、ＤＢ処理に関する情報であるＤＢ処理情報５２０とを有する。
【００６５】
図５（ｂ）は、ＤＢスキーマ位置情報５００の構成例を示した図である。
【００６６】
ＤＢスキーマ位置情報５００は、前述のＤＢスキーマとその記憶位置を示す情報である。ＤＢスキーマ位置情報５００は、ＤＢスキーマ毎にエントリを有する。各エントリは、ＤＢスキーマを識別するためのスキーマＩＤを登録するフィールド５０２と、ＤＢスキーマを有するＤＢＭＳを識別するためのＤＢＭＳ ＩＤを登録するフィールド５０４と、ＤＢスキーマの種別を登録するフィールド５０６と、ＤＢスキーマが書き込まれたストレージシステムのアドレスを登録するフィールド５０８と、ＤＢスキーマが書き込まれたストレージシステム１４０の論理ユニット番号を登録するフィールド５１０とを有する。尚、ＤＢＭＳ ＩＤは管理者等によってあらかじめ各ＤＢＭＳに一意の値として割り当てられている値である。
【００６７】
図５（ｃ）は、ＤＢ処理情報５２０の構成例を示した図である。
【００６８】
ＤＢ処理情報５２０は、ＤＢＭＳが実行するクエリ、及びそのクエリ内で実行される検索（テーブルスキャンやインデックススキャン等。以下「スキャン」ともいう）に関する情報である。ＤＢ処理情報５２０は、クエリのステップ毎にエントリを有する。各エントリは、クエリを実行するＤＢＭＳを識別するためのＤＢＭＳ ＩＤを登録するフィールド５２２と、実行するクエリを識別するためのクエリＩＤを登録するフィールド５２４と、クエリ内で実行されるスキャンを識別するためのスキャンＩＤを登録するフィールド５２６と、そのスキャンでアクセスされるＤＢスキーマのＩＤを登録するフィールド５２８と、アクセスされるＤＢスキーマのサイズを登録するフィールド５３０と、スキャンの種別を登録するフィールド５３２とを有する。尚、スキャンＩＤは、そのクエリの中で実行されるスキャンを一意の値として割り当てられ、その値が小さいものから順番に実行される。
【００６９】
図５（ｄ）は、ディスク回転指示プログラム１２４が保持するディスク情報１２８の構成例を示した図である。尚、ディスク情報１２８は、ディスク回転指示プログラム１２４の起動時などに管理者などが設定する。
【００７０】
ディスク情報１２８は、ＤＢのデータを記憶しているストレージシステム１４０のディスク装置１５２の回転開始時間、及び１秒辺りの平均データ転送量に関する情報である。一台のストレージシステムに搭載される複数のディスクは、同一のディスクが搭載されることがほとんどである。そこで、ディスク情報１２８は、ＤＢサーバ１００に接続されるストレージシステム１４０毎にエントリを有する。各エントリは、ストレージシステム１４０のアドレスを登録するフィールド５４０と、ストレージシステム１４０に搭載されているディスク装置１５２のディスク回転開始時間を登録するフィールド５４２と、ストレージシステム１４０の１秒辺りの平均データ転送量を登録するフィールド５４４とを有する。尚、ディスク回転開始時間とは、ディスクの回転が停止している状態から回転を始め、回転が安定するまでの時間（換言すれば、実際にアクセスされる時の回転速度になるまでの時間）である。なお、一台のストレージシステムに異なる種類（例えばI/F種類）のディスク装置が混在する場合には（例えば、SCSI I/Fを有するディスク装置とATA I/Fを有するディスク装置とが混在する場合には）、ディスク装置毎にエントリが設けられても良い。
【００７１】
図６（ａ）は、ＤＢ処理実行情報６００の構成例を示した図である。
【００７２】
ＤＢ処理実行情報６００は、クエリに従うＤＢ処理の実行中にＤＢデータへのアクセス要求をＤＢＭＳ１１８が発行する際に、ＤＢ情報取得プログラム１２２がディスク回転指示プログラム１２４に送信する情報である。ＤＢ処理実行情報６００は、アクセスの要求元となったクエリを実行しているＤＢＭＳのＩＤを登録するフィールド６０２と、アクセスの要求元になったクエリのクエリＩＤを登録するフィールド６０４と、アクセスの要求元になったスキャンのスキャンＩＤを登録するフィールド６０６と、そのアクセスの時点における該当スキャンの進捗を示す進捗情報を登録するフィールド６０８とを有する。尚、進捗の示し方は種々の方法を採用できる。具体的には、例えば、進捗情報は、そのスキャンで読み出したデータ量のスキーマサイズ合計（そのスキャンのＩＤに属するＤＢスキーマのサイズの和）に対する割り合いでも良いし、そのスキャンでアクセスする全体の行のうち、どれだけの行の検索が終わったかを示す値でも良い。
【００７３】
図６（ｂ）は、ＤＢ処理終了情報６２０の構成例を示した図である。
【００７４】
ＤＢ処理終了情報６２０は、ＤＢＭＳ１１８がクエリを終了する際に、ＤＢ情報取得プログラム１２２がディスク回転指示プログラム１２４に送信する情報である。ＤＢ処理終了情報６２０は、終了するクエリを実行していたＤＢＭＳのＤＢＭＳ ＩＤを登録するフィールド６２２と、終了するクエリのクエリＩＤを登録するフィールド６２４とを有する。
【００７５】
図７（ａ）は、ディスク回転指示プログラム１２４がストレージシステム１４０に対して発行するディスク回転開始命令７００の構成例を示した図である。
【００７６】
ディスク回転開始命令７００は、ディスクの回転を開始させたい論理ユニット番号のリスト７０２を有する。
【００７７】
図７（ｂ）は、ディスク回転指示プログラム１２４がストレージシステム１４０に対して発行するディスク回転停止命令７１０の構成例を示した図である。
【００７８】
ディスク回転開停止令７１０は、ディスクの回転を停止させたい論理ユニット番号のリスト７１２を有する。
【００７９】
以下、ＤＢ情報取得プログラム１２２が実行する各種情報の取得送信処理（以下「ＤＢ情報取得送信処理」）、ディスク回転指示プログラム１２４が実行するディスクの回転指示に関する処理（以下「ディスク回転指示処理」）、ストレージ１４０の制御プログラムが実行するディスク回転の制御に関する処理（以下「ディスク回転制御処理」）の手順について説明する。尚、ＤＢは構築済み（ＤＢＭＳ管理情報１２０は作成済み）であるものとする。
【００８０】
図８は、ＤＢ情報取得送信処理の手順例を示したフロー図である。以下、プログラムが主語になる場合は、実際にはそのプログラムを実行するＣＰＵによって処理が行われるものとする。
【００８１】
システム管理者は、ＤＢサーバ１００上でＤＢ情報取得プログラム１２２を起動し、ＤＢ情報取得送信処理を開始する（ステップ８００）。
【００８２】
ＤＢ情報取得プログラム１２２は、起動直後、スリープ状態（待機状態）に入り、以下に説明する割り込みを待ち続ける（ステップ８０２）。
【００８３】
ＤＢＭＳ１１８が起動した場合（ステップ８０４でＹｅｓ）、又はＤＢに変更があった場合（ステップ８０４でＮｏ、ステップ８０６でＹｅｓ）、ＤＢ情報取得プログラム１２２は、ＤＢＭＳ１１８が保持するＤＢＭＳ管理情報１２０や、ＯＳ１１４が保持するローデバイス情報１１６から、ＤＢスキーマに関する情報を取得する（ステップ８０８）。具体的には、例えば、スキーマＩＤ、スキーマ種別及びデータ領域ＩＤがＤＢスキーマ情報４４０から取得され、そのデータ領域ＩＤに対応するＤＢシステムファイル名がデータ領域情報４２０から取得され、そのＤＢシステムファイル名に対応するローデバイスファイル名がＤＢシステムファイル情報４００から取得され、そのローデバイスファイル名に対応するストレージシステムアドレス及び論理ユニット番号がローデバイス情報１１６から取得される。
【００８４】
ＤＢ情報取得プログラム１２２は、取得した情報と、ＤＢＭＳ管理情報１２０を保持するＤＢＭＳ１１８のＩＤとを含んだＤＢスキーマ位置情報５００を作成し、作成したＤＢスキーマ位置情報５００をディスク回転指示プログラムに送信する（ステップ８１０）。尚、ＤＢ情報取得プログラム１２２が起動した時点でＤＢＭＳ１１８が動作している場合、ＤＢ情報取得プログラム１２２は、起動後すぐにステップ８０８及びステップ８１０の処理を実行する。
【００８５】
ＤＢＭＳ１１８がクエリを受け付けた場合（ステップ８１２でＹｅｓ）、ＤＢＭＳ１１８によって、そのクエリのクエリプランが作成される。ＤＢ情報取得プログラム１２２は、そのクエリプランに関する情報をＤＢＭＳ１１８から取得し（ステップ８１４）、その情報を用いてＤＢ処理情報５２０を作成して、作成したＤＢ処理情報５２０をディスク回転指示プログラムに送信する（ステップ８１６）。以下、これについて、図１１に例示するクエリプランの場合を例に採り説明する。図１１に例示するクエリプランは、複数のステップが木構造で構成される。このクエリプランによれば、３つのスキャン処理、具体的には、スキーマ名「Ｔ１」のテーブルをスキャンする処理、スキーマ名「Ｉ２」の索引を使ってスキーマ名「Ｔ２」のテーブルをスキャンする処理、及び、スキーマ名「Ｉ２」の索引を使ってスキーマ名「Ｔ３」のテーブルをスキャンする処理が行われる。ＤＢ情報取得プログラム１２２は、各スキャン処理毎に固有のＩＤを付与する。また、ＤＢ情報取得プログラム１２２は、各スキーマ名に対応するスキーマＩＤ及びスキーマサイズをＤＢスキーマ情報４４０から取得する。また、ＤＢ情報取得プログラム１２２は、取得したスキーマＩＤに対応するＤＢＭＳ ＩＤをＤＢスキーマ位置情報５００から取得する。そして、ＤＢ情報取得プログラム１２２は、取得したＤＢＭＳ ＩＤ、ＤＢＭＳ１１８が受けたクエリのＩＤ、上記付与したスキャンＩＤ、上記取得されたスキーマＩＤ及びスキーマサイズ、各スキャン処理のスキャン種別を含んだＤＢ処理情報５２０を作成し、作成したＤＢ処理情報５２０をディスク回転指示プログラム１２４に送信する。ＤＢ処理情報５２０がディスク回転指示プログラム１２４に入力された場合、ディスク回転指示プログラム１２４によって、初めのスキャンでのアクセスされるＤＢスキーマを記憶した論理ユニットが特定され、その論理ユニットの番号を含んだディスク回転開始命令７００が、ストレージシステム１４０に発行される。それにより、初めのスキャンのためのアクセス要求がＤＢサーバ１００からストレージシステム１４０に届いてディスク装置１５２にアクセスが発生するよりも前に、そのディスク装置１５２のディスクを回転させておくことが期待できる。
【００８６】
クエリ実行中（つまりＤＢ処理中）、ＤＢＭＳ１１８がＤＢのデータにアクセスする場合、ＤＢＭＳ１１８から、アクセス要求が発行される。そのアクセス要求には、例えば、スキーマＩＤや、そのスキーマＩＤに対応するＤＢスキーマのどこにアクセスするか（例えばページ番号や行番号）などの情報が含まれている。ＤＢサーバ１００では、ＯＳ１１４が、ＤＢＭＳ１１８からアクセス要求を受け、そのアクセス要求に含まれている情報要素を検索キーにローデバイス情報１１６から必要な情報を取得し、取得した情報を含んだアクセス要求（例えば論理ユニット番号を含んだアクセス要求）をストレージシステム１４０に発行する。一つのスキャン処理において、ＤＢＭＳ１１８からアクセス要求が複数回発行されることがある。ＤＢＭＳ１１８から発行されるアクセス要求に含まれている情報要素（例えば、ＤＢスキーマＩＤや、ＤＢスキーマのどこにアクセスするか）を参照することにより、一つのスキャン処理における進捗状況を特定したり、別のスキャン処理が開始されることを特定したりすることができる。
【００８７】
ＤＢＭＳ１１８からアクセス要求が発行される場合（ステップ８１８でＹｅｓ）、ＤＢ情報取得プログラム１２２は、そのアクセス要求中の情報要素を取得し（ステップ８２０）、その情報要素を基にＤＢ処理実行情報６００を作成し、そのＤＢ処理実行情報６００をディスク回転指示プログラム１２４に送信する（ステップ８２２）。ＤＢＭＳ ＩＤ、クエリＩＤ及ぶスキャンＩＤは、例えば、アクセス要求中のスキーマＩＤを検索キーにＤＢ処理情報５２０から取得することができる。進捗情報は、例えば、アクセス要求中のスキーマＩＤを検索キーに取得できるスキーマサイズと、アクセス要求中の所定の情報要素（例えばＤＢスキーマのどこにアクセスするか）とに基づいて、特定することができる。
【００８８】
ＤＢＭＳ１１８がクエリの実行を終了した場合（ステップ８２４でＹｅｓ）、ＤＢ情報取得プログラム１２２は、終了したクエリに関する情報をＤＢＭＳ１１８から取得し（ステップ８２６）、ＤＢ処理終了情報６４０を作成してディスク回転指示プログラム１２４に送信する（ステップ８２８）。
【００８９】
以上が、ＤＢ情報取得送信処理の手順例についての説明である。なお、ＤＢＭＳ１１８が受け付けたクエリが複数個ある場合には、それら複数のクエリの各々について、上述した処理が行われる。
【００９０】
また、ＤＢ情報取得プログラム１２２が、ステップ８０４でＹｅｓ、ステップ８０６でＹｅｓ、ステップ８１２でＹｅｓ、ステップ８１８でＹｅｓ、及びステップ８２４でＹｅｓとなったことを検知できるようにするための方法として、種々の方法を採用することができる。具体的には、例えば、ＤＢＭＳ１１８内部に、下記の（１）乃至（５）のタイミングで、ＤＢ情報取得プログラム１２２に情報を通知するインタフェースを設け、そのインタフェースを通じて、ＤＢ情報取得プログラム１２２は検知することができる。
（１）ＤＢＭＳ起動後（この場合、例えば、ＤＢＭＳ１１８がＤＢ情報取得プログラム１２２に対し、起動したことの通知を、起動と同時に送信する。）
（２）ＤＢに変更があった時（この場合、例えば、ＤＢＭＳ１１８がＤＢ情報取得プログラム１２２に対し、ＤＢを変更したことの通知を、変更と同時に送信する。）
（３）クエリ受付時（この場合、例えば、ＤＢＭＳ１１８がＤＢ情報取得プログラム１２２に対し、受付けられたクエリのクエリプランに関する情報を、クエリプランの作成と同時に通知する。）
（４）ＤＢＭＳのアクセス要求発行時（この場合、例えば、ＤＢＭＳ１１８がＤＢ情報取得プログラム１２２に対し、アクセス先に関する情報を、アクセス要求発行と同時に送信する。）
（５）クエリ終了時（この場合、例えば、ＤＢＭＳ１１８がＤＢ情報取得プログラム１２２に対し、終了したクエリに関する情報を、クエリの処理の終了と同時に送信する。）
尚、ＤＢ情報取得プログラム１２２は、上記（１）及び（２）を受け付けた場合、前述したように、ＤＢスキーマ位置に関する情報をＯＳ１１４やＤＢＭＳ１１８から取得し、ＤＢスキーマ位置情報５００を作成してディスク回転指示プログラム１２４に送信する。また、ＤＢ情報取得プログラム１２２は、上記（３）、（４）及び（５）を受け付けた場合は、ＤＢＭＳ１１８から受けた情報を基に、ディスク回転指示プログラム１２４に送信する情報を作成して送信する。
【００９１】
さて、次に、ディスク回転指示処理の手順例について説明する。
【００９２】
図９は、ディスク回転指示処理の手順例を示したフロー図である。
【００９３】
システム管理者は、ディスク回転指示プログラム１２４を起動し、ディスク回転指示処理を開始する（ステップ９００）。尚、ディスク回転指示プログラム１２４は、前述のＤＢ情報取得プログラム１２２より先に起動しておく必要がある。
【００９４】
ディスク回転指示プログラム１２４は、起動直後、スリープ状態（待機状態）に入り、ＤＢ情報取得プログラム１２２からＤＢスキーマ位置情報５００、ＤＢ処理情報５２０、ＤＢ処理実行情報６００、或いはＤＢ処理終了情報６２０が送られてくるのを待つ（ステップ９０２）。尚、初期の状態として、ストレージシステム１４０内の全てのディスク装置１５２の回転は、停止状態（つまり全く回転していない状態）にある。
【００９５】
ＤＢスキーマ位置情報５００を受信した場合（ステップ９０４でＹｅｓ）、ディスク回転指示プログラム１２４は、受信したＤＢスキーマ位置情報５００をＤＢ処理管理情報１２６の一部としてメモリ１１０上に格納する（ステップ９０６）。
【００９６】
ＤＢ処理情報５２０を受信した場合（ステップ９０８）、ディスク回転指示プログラム１２４は、受信したＤＢ処理情報５２０をＤＢ処理管理情報１２６の一部としてメモリ１１０上に格納する（ステップ９１０）。ディスク回転指示プログラム１２４は、ステップ９１０で格納したＤＢ処理情報５２０を参照して、スキャンＩＤ「０」のエントリを検索することで、同エントリのアクセス対象スキーマＩＤを特定し、そのアクセス対象スキーマＩＤから、スキャンＩＤ「０」に対応するスキャンでアクセスするＤＢスキーマを識別する。尚、スキャンＩＤ「０」のスキャンは、そのスキャンが実行されるクエリの中で最初に実行されるスキャンを意味する（別の言い方をすれば、スキャンＩＤが若い順に、スキャンが実行される）。ディスク回転指示プログラム１２４は、その最初のスキャンでアクセスされるディスク装置の回転開始の指示を行う。具体的には、ディスク回転指示プログラム１２４は、特定されたアクセス対象スキーマＩＤをキーにしてＤＢスキーマ位置情報５００を検索し、該当のＤＢスキーマが記憶されているストレージシステム１４０のアドレスと、論理ユニット番号とを特定する（ステップ９１２）。ディスク回転指示プログラム１２４は、ステップ９１２で特定したアドレスに対応するストレージシステム１４０に、ステップ９１２で特定した論理ユニット番号を含むディスク回転開始命令７００を発行する（ステップ９１４）。尚、ディスク回転指示プログラム１２４は、ＤＢ処理情報５２０を受信した場合に、そのＤＢ処理情報５２０に対応するクエリのＤＢ処理においてアクセスするＤＢスキーマを全て特定し、特定されたＤＢスキーマを記憶する論理ユニット番号を全て特定し、特定された論理ユニット番号を含んだディスク回転開始命令７００を、ストレージシステム１４０に発行しても良い。これにより、そのＤＢ処理においてアクセスされる全てのディスク装置のディスクを予め回転させておくことができる。この場合、ステップ９１６及びステップ９１８の処理は不要となり、ＤＢ処理実行情報６００の送受信処理も不要となるため、その分のオーバヘッドが削減され性能向上が見込める。但し、クエリ内のスキャン毎のディスク回転制御ができないため、一つのＤＢ処理の際の消費電力は、ＤＢ処理の進行に伴って順次にディスク装置を回転させていく場合に比して大きくなる。
【００９７】
ＤＢ処理実行情報６００を受信した場合（ステップ９１６でＹｅｓ）、ディスク回転指示プログラム１２４は、受信したＤＢ処理実行情報６００のＤＢＭＳ ＩＤ、クエリＩＤ、スキャンＩＤと同じ値を持つＤＢ処理情報５２０のエントリを検索し、同エントリのスキーマサイズ、ディスク情報１２８の１秒辺りの平均データ転送量、及び、ＤＢ処理実行情報６００の進捗情報から、そのスキャンＩＤに対応するスキャンが終わるまでの残り時間長を推測する。その結果、推測された残り時間長が、アクセス先となるストレージシステム（検索キーとされたスキャンＩＤに紐付けられたスキーマＩＤに対応したストレージシステム）１４０のディスク回転開始時間（ディスク情報１２８に書かれている時間）よりも短ければ（又は以下であれば）、ディスク回転指示プログラム１２４は、次のスキャンでアクセスされるＤＢスキーマの論理ユニット番号を特定し、特定された論理ユニット番号を含んだディスク回転開始命令７００を、そのストレージシステム１４０に発行する（ステップ９１８）。これにより、次のスキャンでアクセスされるディスク装置１５２のディスクを、ＤＢサーバ１００からそのディスク装置１５２に対するアクセス要求が発行される前に、回転させておくことができる。
【００９８】
ＤＢ処理終了情報６２０を受信した場合（ステップ９２０でＹｅｓ）、ディスク回転指示プログラム１２４は、受信したＤＢ処理終了情報６２０のＤＢＭＳ ＩＤとクエリＩＤの値を持つＤＢ処理情報５２０のエントリを検索し、同エントリのアクセス対象スキーマＩＤを特定する。ディスク回転指示プログラム１２４は、特定されたスキーマＩＤをキーにしてＤＢスキーマ位置情報５００を検索し、そのスキーマＩＤに対応するストレージシステムアドレスと論理ユニット番号とを特定する（ステップ９２２）。ディスク回転指示プログラム１２４は、ステップ９２２で特定されたアドレスに対応するストレージシステム１４０に対して、ステップ９２２で特定された論理ユニット番号を含んだディスク回転停止命令を発行する（ステップ９２４）。尚、ステップ９２２において、条件に合致する全てのエントリに対して、ステップ９２２、及びステップ９２４を繰り返す。
【００９９】
図１０は、ディスク回転制御処理の手順例を示すフロー図である。尚、制御プログラム１５４はストレージシステム１４０の制御を行うプログラムであるが、このフロー図ではディスクの回転制御に関する部分だけを示している。
【０１００】
ディスク回転指示プログラム１２４からディスク回転開始命令７００を受信した場合（ステップ１００２でＹｅｓ）、制御プログラム１５４は、記憶領域管理情報１５６を参照し、当該命令７００に含まれている対象論理ユニット番号に対応する物理ディスク番号を特定する（ステップ１００４）。制御プログラム１５４は、ステップ１００４で特定した物理ディスク番号をキーに、ディスク回転管理情報１５８を参照して対応するエントリを検索する。該当エントリの回転状態カウント値が０の場合、制御プログラム１５４は、対応するディスク装置に対して所定の命令を発行することで、そのディスク装置のディスクの回転を開始させる（ステップ１００６）。制御プログラム１５４は、ステップ１００６で検索したエントリの回転状態カウント値に１を加算する（ステップ１００８）。尚、１つの論理ユニットに対して複数のディスク装置が割り当てられている場合は、そのディスク装置の数だけ、ステップ１００６とステップ１００８が繰り返し実行される。また、ステップ１００６において、回転状態カウント値が０でない場合（つまり１以上の場合）、該当するディスク装置は回転中なので、回転を開始する処理は不要となり、回転状態カウント値が加算されれば良い。
【０１０１】
ディスク回転指示プログラム１２４からディスク回転停止命令７１０を受信した場合（ステップ１００２でＮｏ、ステップ１０１０でＹｅｓ）、制御プログラム１５４は、記憶領域管理情報１５６を参照し、当該命令７１０の対象論理ユニット番号に対応する物理ディスク番号を特定する（ステップ１０１２）。制御プログラム１５４は、ステップ１０１２で特定された物理ディスク番号をキーに、ディスク回転管理情報１５８を参照し対応するエントリを検索し、該当エントリの回転状態カウント値から１を減算する（ステップ１０１４）。制御プログラム１５４は、ステップ１００６の減算によって回転状態カウント値が０になった場合、対応するディスク装置に所定の命令を発行することで、そのディスク装置のディスクの回転を停止させる（ステップ１０１６）。尚、１つの論理ユニットに対して複数のディスク装置が割り当てられている場合は、そのディスク装置の数だけ、ステップ１０１４とステップ１０１６が繰り返し実行される。
【０１０２】
以上が、ディスク回転指示処理の手順例及びディスク回転制御処理の手順例についての説明である。なお、ＤＢＭＳ１１８が複数のクエリを受け付けた場合には、ＤＢ処理情報の受信が複数回行われる。具体的には、例えば、ＤＢＭＳ１１８が或るクエリの実行中に、新たにクエリを受け付けた場合には、新たにＤＢ処理情報の受信が行われる。この場合、或る論理ユニットに対するディスク回転開始命令７００は、一つのクエリのＤＢ処理では一回しか発生しなくても、別のクエリのＤＢ処理の際に一回以上発行される場合がある。別の言い方をすれば、或る論理ユニットを構築する或るディスク装置１５２の回転状態カウント値（図２（ｂ）参照）は、一つのクエリが終了したことによってディスク回転停止命令７１０が発行されても、別のクエリのＤＢ処理情報を基にディスク回転開始命令が発行されたことによってカウント値が加算されていたために、「０」にならない場合がある。この場合、一つのクエリの処理が終了しても、次のクエリの処理でやがてそのディスク装置１５２にアクセスが発生するので、その或るディスク装置１５２のディスクの回転が継続されることになる。このようにして、複数のクエリにも対処することができる。なお、ディスク回転指示プログラム１２４は、一つのクエリ毎に、ＤＢ処理管理情報１２６を保持し、一つのクエリの処理が終了した場合に（例えば、ＤＢ処理終了情報６２０を受けたときに）、その終了したクエリに対応するＤＢ処理管理情報１２６を破棄してもよい。また、各クエリ或いは各スキャン処理に優先順位が付与される場合には、その優先順位に従ってディスク回転開始命令が発行されても良い。
【０１０３】
以上、上述した実施形態によれば、ＤＢＭＳ１１８がクエリに従うＤＢ処理を実行していない場合には、ストレージシステム１４０のディスク装置１５２が停止状態となっている。そして、ＤＢＭＳ１１８がクエリを受け付け、そのクエリのクエリプランを基に作成されたＤＢ処理情報５２０がディスク回転指示プログラム１２４に入力された場合に、ディスク回転指示プログラム１２４が、そのＤＢ処理情報５２０から、やがてアクセスされる論理ユニットを特定し、特定された論理ユニットに対するディスク回転開始命令が発行され、それにより、その論理ユニットを構築するディスク装置１５２のディスクが回転させられる。そして、そのディスク装置１５２に対してアクセスが発生しないとわかった場合、具体的には、クエリに従うＤＢ処理が終了した場合に、そのディスク装置１５２により構築された論理ユニットに対するディスク回転停止命令が発行され、それにより、その論理ユニットを構築するディスク装置１５２のディスクの回転が停止させられる。
【０１０４】
つまり、この実施形態によれば、ディスク装置１５２に対してアクセスの発生しない状態では、ディスク装置１５２のディスクの回転は停止状態とされ、クエリプランに基づくＤＢ処理情報５２０から、やがてアクセスされる論理ユニットが特定された場合に、その論理ユニットを構築するディスク装置１５２が回転させられる。これにより、ストレージシステム１４０全体の消費電力を低減することができる。
【０１０５】
また、ディスク装置１５２のディスクの回転は、そのディスク装置１５２に対して実際にアクセスが発生するよりも前に行われる。具体的には、ディスク装置１５２のディスクに実際にアクセスが行われる頃には、そのディスクの回転が安定した状態になっているようなタイミングで、そのディスク装置１５２により構築された論理ユニットに対するディスク回転開始命令７００が発行される。これにより、ストレージシステム１４０の応答速度の劣化を抑えることができる。
【０１０６】
従って、本実施形態によれば、ストレージシステム１４０全体の消費電力を低減することと、ストレージシステム１４０の応答速度の劣化を抑えることの両方を実現することができる。
【０１０７】
また、本実施形態によれば、ストレージシステム１４０の応答速度の劣化が抑えられるものの、ディスク装置１５２を常時回転させておくストレージシステムに比べれば、応答速度が遅くなり得る。このため、本実施形態に係るＤＢシステムは、頻繁にアクセスが生じる故に応答速度（例えばデータの読出しの速度）が最優先されるようなオンライン系のシステムよりも、あまり頻繁にアクセスが生じないようないわゆるアーカイブシステムに適用することが好ましいと考えられる。
【０１０８】
さて、上述した実施形態には、幾つかの変形例が考えられる。以下、各変形例について説明する。
【０１０９】
第一の変形例では、各ディスク装置１５２が、複数種類の回転速度でディスクを回転することができるようになっている。具体的には、例えば、各ディスク装置１５２が、アクセス時の回転速度である高速回転と、それよりも低速である低速回転の２種類の回転を行うことができるようになっている。ディスク回転指示プログラム１２４は、図１２のステップ２０００に例示するように、次段階のスキャンでアクセスされるＤＢスキーマを記憶した論理ユニットに対しては、高速回転を実行するためのディスク回転開始命令を発行し、次々段階のスキャンでアクセスされるＤＢスキーマを記憶した論理ユニットに対しては、低速回転を実行するためのディスク回転開始命令を発行し、次々段階よりも後段のスキャンでアクセスされるＤＢスキーマを記憶した論理ユニットに対しては、ディスク回転開始命令を発行しない（このステップ２０００は、例えば、図９のステップ９１４或いは９１８で採用されてもよい）。この場合、次段階のスキャンでアクセスされるディスク装置は、高速回転でアクセス待ちとなり、次々段階のスキャンでアクセスされるディスク装置は、低速回転でアクセス待ちとなり、次々段階よりも後段のスキャンでアクセスされるディスク装置は、停止状態となる。これにより、スキャンが次段階が次々段階に切り替わった場合に、ディスク装置１５２の回転が安定するまでの時間長を短くすることができ、以って、応答速度の劣化の抑制に貢献することができる。なお、この変形例では、例えば、ＤＢスキーマのデータサイズや、スキャンの内容を加味して、回転制御を行っても良い。例えば、次段階のアクセス対象のＤＢスキーマのデータサイズが所定値以上の場合（換言すれば、処理に時間がかかる場合）、次々段階のスキャンでアクセスされるディスク装置は、低速回転ではなく停止状態にしておき、次段階のスキャンが始まってから（つまり、次々段階のスキャンが次段階のスキャンとなってから）、回転が開始されてもよい。また、その回転は、初め、低速回転であり、ＤＢ処理実行情報から特定される進捗状況が所定の状況よりも進んだ場合に、高速回転とされても良い。
【０１１０】
第二の変形例では、スキャン種別は、テーブルスキャンか索引スキャンであるかに代えて、全検索か一部検索かなどの他種の種別を採用することができる。或いは、スキーマサイズ及びスキャン種別に代えて、他種のアクセスサイズを採用することができる。要するに、第二の変形例では、ディスク回転指示プログラム１２４は、アクセス対象のアクセスサイズに基づいて、次段階のスキャンでアクセスされる論理ユニットに対するディスク回転開始命令の発行タイミングを制御することができる。例えば、アクセスサイズと１秒当たりの平均データ転送量と進捗状態とから、一つのスキャン処理が完了するまでの残り時間長を推測し、その残り時間長が、ディスク回転開始時間よりも短ければ、次段階のスキャンでアクセスされる論理ユニットに対するディスク回転開始命令が発行されても良い。
【０１１１】
第三の変形例では、一つのクエリのＤＢ処理が終了した場合にディスク回転停止命令７１２が発行されるのではなく、一つのクエリのＤＢ処理中に、適時に、ディスク回転停止命令７１２が発行される。具体的には、例えば、ディスク回転指示プログラム１２４は、一つのスキャン処理が終了した場合、そのスキャン処理でアクセスされた論理ユニットが、次段階或いは次々段階よりも後のスキャン処理までアクセスされることが無いことを、ＤＢ処理情報５２０から特定できた場合には、ＤＢ処理中であっても、その論理ユニットに対するディスク回転停止命令を発行しても良い。
【０１１２】
第四の変形例では、ディスク装置１５２が、複数種類の回転速度で回転できる場合には、それら複数種類の回転速度を基に、ディスク情報１２８に書かれるディスク回転開始時間が用意されても良い。具体的には、例えば、停止状態から高速回転になるまでのディスク回転開始時間と、低速回転から高速回転になるまでのディスク回転開始時間とが用意されても良い。この場合、ディスク回転指示プログラム１２４は、低速回転から高速回転にするのか、或いは、停止状態から高速回転するのかに応じて、参照するディスク回転開始時間の種類を違えても良い。
【０１１３】
以上、本発明の実施形態及び幾つかの変形例を説明したが、これらの実施形態及び変形例は本発明の説明のための例示にすぎず、本発明の範囲をそれらの実施形態及び変形例にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。例えば、ディスク装置は基本的に停止状態或いは低速回転状態となるようになっていて、ディスク回転開始プログラム１２４が、必要に応じて回転指示させてもよい。具体的には、例えば、ディスク回転指示プログラム１２４からのディスク回転指示命令に従ってディスクの回転を停止することに代えて、ストレージシステム１４０が、各ディスク装置１５２を、ディスク回転開始後一定時間経ったらディスクの回転を停止するようになっていて、ディスク回転指示プログラム１２４が、ディスクの回転を停止してもらいたくない場合には、ディスク回転開始命令を送信し、そのディスクに対応したカウント値を増やすことで、ディスクの回転を継続させても良い。
【図面の簡単な説明】
【０１１４】
【図１】図１は、本発明の一実施形態に係るＤＢシステムの構成例を示した図である。
【図２】図２（ａ）は、記憶領域管理情報１５６の構成例を示した図である。図２（ｂ）は、ディスク回転管理情報の構成例を示した図である。
【図３】図３は、ローデバイス情報１１６の構成例を示した図である。
【図４】図４（ａ）は、ＤＢＭＳ管理情報１２０の構成例を示した図である。図４（ｂ）は、ＤＢシステムファイル情報４００の構成例を示した図である。図４（ｃ）は、データ領域情報４２０の構成例を示した図である。図４（ｄ）は、ＤＢスキーマ情報４４０の構成例を示した図である。
【図５】図５（ａ）は、ＤＢ処理管理情報１２６の構成例を示した図である。図５（ｂ）は、ＤＢスキーマ位置情報５００の構成例を示した図である。図５（ｃ）は、ＤＢ処理情報５２０の構成例を示した図である。図５（ｄ）は、ディスク情報１２８の構成例を示した図である。
【図６】図６（ａ）は、ＤＢ処理実行情報６００の構成例を示した図である。図６（ｂ）は、ＤＢ処理終了情報の構成例を示した図である。
【図７】図７（ａ）は、ディスク回転開始命令７００の構成例を示した図である。図７（ｂ）は、ディスク回転停止命令７１０の構成例を示した図である。
【図８】図８は、ＤＢ情報取得送信処理の手順例を示したフロー図である。
【図９】図９は、ディスク回転指示処理の手順例を示したフロー図である。
【図１０】図１０は、ディスク回転制御処理の手順例を示したフロー図である。
【図１１】図１１は、クエリプランの構成例を示した図である。
【図１２】図１２は、ディスク装置の回転速度種類に基づくディスク回転開始命令の発行タイミングの一例を示す。
【符号の説明】
【０１１５】
１００…ＤＢサーバ、１３０…通信ネットワーク、１４０…ストレージシステム、１１４…ＯＳ、１１８…ＤＢＭＳ、１２２…ＤＢ情報取得プログラム、１２４…ディスク回転指示プログラム
【図１】
0004824458.tif 000002
【図２】
0004824458.tif 000003
【図３】
0004824458.tif 000004
【図４】
0004824458.tif 000005
【図５】
0004824458.tif 000006
【図６】
0004824458.tif 000007
【図７】
0004824458.tif 000008
【図８】
0004824458.tif 000009
【図９】
0004824458.tif 000010
【図１０】
0004824458.tif 000011
【図１１】
0004824458.tif 000012
【図１２】
0004824458.tif 000013