(57)【要約】【課題】データベース格納領域の状態を解析する状態解析の処理負荷を抑えると共にデータベース格納領域で生じている乱れを解消するのに最適な乱れ解消処理を効率的に選択することが可能な技術を提供する。【解決手段】乱れ解消処理実行直後のデータベース処理実行コストに対する現在のデータベース処理実行コストの比率が、状態解析の実行契機を示す閾値を超えている場合に状態解析の実行時期であると判定するステップと、状態解析の実行時期であると判定された場合に、データベース格納領域の状態を解析し、各乱れ要因に対応する値を状態解析結果として出力するステップと、各乱れ要因が解消を必要とする状態となっているかどうかを判定する為の閾値を表す乱れ判定閾値のリストを参照して、前記出力された状態解析結果の内で前記乱れ判定閾値のリスト中の閾値を超えている乱れ要因を取得するステップと、乱れ解消処理と解消可能な要因の対応表を参照して、前記取得した乱れ要因による乱れを解消可能な乱れ解消処理を選択するステップとを有するものである。【選択図】        図１
2004157728.tif 000002
【特許請求の範囲】
【請求項１】
データ領域の使用状況に基づいてデータの格納状態の乱れを解消する処理を行うデータベース乱れ解消処理方法において、
乱れ解消処理実行直後のデータベース処理実行コストに対する現在のデータベース処理実行コストの比率が、状態解析の実行契機を示す閾値を超えている場合に状態解析の実行時期であると判定するステップと、
状態解析の実行時期であると判定された場合に、データベース格納領域の状態を解析し、各乱れ要因に対応する値を状態解析結果として出力するステップと、
各乱れ要因が解消を必要とする状態となっているかどうかを判定する為の閾値を表す乱れ判定閾値のリストを参照して、前記出力された状態解析結果の内で前記乱れ判定閾値のリスト中の閾値を超えている乱れ要因を取得するステップと、
乱れ解消処理と解消可能な要因の対応表を参照して、前記取得した乱れ要因による乱れを解消可能な乱れ解消処理を選択するステップとを有することを特徴とするデータベース乱れ解消処理方法。
【請求項２】
前記比率が状態解析実行契機の閾値を超えていない場合に、データベース処理実行コストの履歴から次の状態解析の実行時期を予測することを特徴とする請求項１に記載されたデータベース乱れ解消処理方法。
【請求項３】
前記比率が状態解析実行契機の閾値を超えていない場合に、状態解析結果履歴から次の状態解析の実行時期を予測することを特徴とする請求項１に記載されたデータベース乱れ解消処理方法。
【請求項４】
前記状態解析結果履歴から予測された次の状態解析の実行時期と、現在の格納状態から予測される次の状態解析の実行時期との差が所定の値以下である場合に、その値が前記乱れ判定閾値に近づいている項目以外を次の状態解析で取得する項目の中から除外することを特徴とする請求項３に記載されたデータベース乱れ解消処理方法。
【請求項５】
乱れ解消処理を実施した場合のデータベースシステムに対する負荷の大きいものほど優先度が低いものとして優先付けを行った乱れ解消処理優先順位表を参照して、前記取得した乱れ要因による乱れを解消可能な乱れ解消処理の内で優先度の高い乱れ解消処理を選択することを特徴とする請求項１乃至請求項４のいずれか１項に記載されたデータベース乱れ解消処理方法。
【請求項６】
データベースへのアクセスを停止させることが可能な場合と不可能な場合の双方について、それぞれ最も負荷の小さい乱れ解消処理を選択することを特徴とする請求項１乃至請求項５のいずれか１項に記載されたデータベース乱れ解消処理方法。
【請求項７】
前記出力された現在の状態解析結果と以前の状態解析結果を示す状態解析結果履歴とを比較し、前記現在の状態解析結果が以前の状態解析結果と一致している場合に、その一致した以前の状態解析結果の際に実行された乱れ解消処理を選択することを特徴とする請求項１乃至請求項６のいずれか１項に記載されたデータベース乱れ解消処理方法。
【請求項８】
各乱れ解消処理のデータベースへのアクセス停止の要否、負荷の大小、実行時間、乱れ解消処理を実行した後に各乱れ要因がどの様に変化するかを提示することを特徴とする請求項１乃至請求項７のいずれか１項に記載されたデータベース乱れ解消処理方法。
【請求項９】
データ領域の使用状況に基づいてデータの格納状態の乱れを解消する処理を行うデータベースシステムにおいて、
乱れ解消処理実行直後のデータベース処理実行コストに対する現在のデータベース処理実行コストの比率が、状態解析の実行契機を示す閾値を超えている場合に状態解析の実行時期であると判定する状態解析実行契機判断処理部と、
状態解析の実行時期であると判定された場合に、データベース格納領域の状態を解析し、各乱れ要因に対応する値を状態解析結果として出力する状態解析実行処理部と、
各乱れ要因が解消を必要とする状態となっているかどうかを判定する為の閾値を表す乱れ判定閾値のリストを参照して、前記出力された状態解析結果の内で前記乱れ判定閾値のリスト中の閾値を超えている乱れ要因を取得し、乱れ解消処理と解消可能な要因の対応表を参照して、前記取得した乱れ要因による乱れを解消可能な乱れ解消処理を選択する乱れ解消処理選択処理部とを備えることを特徴とするデータベースシステム。
【請求項１０】
データ領域の使用状況に基づいてデータの格納状態の乱れを解消する処理を行うデータベースシステムとしてコンピュータを機能させる為のプログラムにおいて、
乱れ解消処理実行直後のデータベース処理実行コストに対する現在のデータベース処理実行コストの比率が、状態解析の実行契機を示す閾値を超えている場合に状態解析の実行時期であると判定する状態解析実行契機判断処理部と、
状態解析の実行時期であると判定された場合に、データベース格納領域の状態を解析し、各乱れ要因に対応する値を状態解析結果として出力する状態解析実行処理部と、
各乱れ要因が解消を必要とする状態となっているかどうかを判定する為の閾値を表す乱れ判定閾値のリストを参照して、前記出力された状態解析結果の内で前記乱れ判定閾値のリスト中の閾値を超えている乱れ要因を取得し、乱れ解消処理と解消可能な要因の対応表を参照して、前記取得した乱れ要因による乱れを解消可能な乱れ解消処理を選択する乱れ解消処理選択処理部としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータベースの再編成を行うデータベースシステムに関し、特に２４時間運用を行うリレーショナルデータベース管理システム（ＲＤＢＭＳ）の格納状態の乱れを解消するデータベースシステムに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
近年のｅビジネス等の進展により、データベース管理システムの２４時間運用が望まれてきている。データベース管理システムでは運用を続ける内にデータの格納状態が乱れるため、データベースへのアクセスを停止してデータの再編成を行わなければならない。しかし２４時間運用を行う為にはデータベースへのアクセスを停止することができない。このため再編成の代替手段としてデータベースのアクセスを停止させずに格納状態の乱れを解消する処理が実装される様になった。
【０００３】
この様な乱れ解消処理は、複数の格納位置にまたがって配置された分岐行と呼ばれるデータを解消する分岐行回収の様に解消できる乱れの種類が限定されているか、或いは乱れ解消処理がデータベース管理システムで実行されている他の処理に大きな負荷をかけてしまう等、限定或いは副作用が存在する。この様に単一の乱れ解消処理では再編成の完全な代替手段とはなりえないため、複数の種類の乱れ解消処理を持ち、状況や目的に応じて使い分けることができるシステムが存在する。この様なシステムにおいては、どの様な時に複数の乱れ解消処理からどれを選択して実行すべきかの判断が重要となる。
【０００４】
一方、従来の再編成という単一の手段に対しては、現在の格納状態が再編成を行うべき状態で有るかを判断し、再編成の自動実行を行う方法等が開示されており、使用領域サイズが許容範囲を逸脱しているデータファイルが存在するか否かを判断し、使用領域サイズが許容範囲を逸脱しているデータファイルが有ることを判断すると、データベース再編成処理を自動的に実行させている（例えば特許文献１参照）。
【０００５】
【特許文献１】
特開平１１−１６１５２５号公報（第５頁、第６図）
【０００６】
【発明が解決しようとする課題】
前記の様に複数の種類の乱れ解消処理を持ち、状況や目的に応じて使い分けることができるシステムにおいては、どの様な時に複数の乱れ解消処理からどれを選択して実行すべきかの判断が重要となる。この判断を正確に行うにはデータベース格納領域の状態を解析する状態解析を頻繁に実行する必要があり、状態解析を頻繁に実行すればその処理負荷が増加するが、この状態解析による処理負荷の増加という点について解決が十分図られてはいないという問題点がある。また前記従来技術である再編成の自動実行を行う方法では、複数の乱れ解消処理から最適なものを選択する方法は開示されておらず、上記問題点の解決が行われていない。
【０００７】
本発明の目的は上記問題を解決し、データベース格納領域の状態を解析する状態解析の処理負荷を抑えると共にデータベース格納領域で生じている乱れを解消するのに最適な乱れ解消処理を効率的に選択することが可能な技術を提供することにある。
【０００８】
【課題を解決するための手段】
本発明は、データ領域の使用状況に基づいてデータの格納状態の乱れを解消する処理を行うデータベースシステムにおいて、データベース処理実行コストに応じて状態解析を実行し、その状態解析結果により検出された乱れ要因による乱れを解消可能な乱れ解消処理を選択するものである。
【０００９】
本発明のデータベースシステムでは、データベース格納領域の状態を解析する状態解析コマンドの入力があると、現在のデータベース処理実行コストとしてＳＱＬ文の処理時間等を計測し、乱れ解消処理実行直後のデータベース処理実行コストに対する現在のデータベース処理実行コストの比率が、状態解析の実行契機を示す閾値を超えているかどうかを調べる。
【００１０】
その結果、前記比率がその閾値を超えている場合には、状態解析の実行時期であると判定し、データベース格納領域の状態を解析する状態解析を実行して使用中の領域の格納効率、分岐行の数や使用率０％のページ数の各乱れ要因に対応する値を状態解析結果として出力する。
【００１１】
次に、各乱れ要因が解消を必要とする状態となっているかどうかを判定する為の閾値を表す乱れ判定閾値のリストを参照し、出力された状態解析結果の内で前記乱れ判定閾値のリスト中の閾値を超えている乱れ要因が有るかどうかを調べ、その閾値を超えている乱れ要因を取得する。そして、乱れ解消処理と解消可能な要因の対応表を参照し、前記取得した乱れ要因による乱れを解消可能な乱れ解消処理をその対応表から選択する。
【００１２】
前記の様に本発明では、複数の乱れ解消処理から状況に応じた最適な乱れ解消処理を選択することができ、また適切な状態解析実行時期の判定によって状態解析の実行による負荷を軽減できる。
【００１３】
以上の様に本発明のデータベースシステムによれば、データベース処理実行コストに応じて状態解析を実行し、その状態解析結果により検出された乱れ要因による乱れを解消可能な乱れ解消処理を選択するので、データベース格納領域の状態を解析する状態解析の処理負荷を抑えると共にデータベース格納領域で生じている乱れを解消するのに最適な乱れ解消処理を効率的に選択することが可能である。
【００１４】
【発明の実施の形態】
（実施形態１）
以下にデータ領域の使用状況に基づいてデータの格納状態の乱れを解消する処理を行う実施形態１のデータベースシステムについて説明する。
【００１５】
図１は本実施形態のコンピュータシステムのハードウェア構成の一例を示す図である。図１に示す様に本実施形態のコンピュータシステム２０１は、状態解析実行契機判断処理部１０４と、次期状態解析実行時期予測処理部１０５と、乱れ解消処理選択処理部１０６と、状態解析実行処理部１１７とを有している。
【００１６】
状態解析実行契機判断処理部１０４は、データベース処理実行コストとしてＳＱＬ文処理時間を計測し、乱れ解消処理実行直後の値に対する現在の値の比率を求め、その比率が状態解析の実行契機を示す状態解析実行契機の閾値１１６を超えている場合に状態解析の実行時期であると判定する処理部である。
【００１７】
次期状態解析実行時期予測処理部１０５は、前記比率が状態解析実行契機の閾値１１６を超えていない場合に、データベース処理実行コストの履歴であるＳＱＬ処理時間履歴１０３または状態解析結果の履歴である状態解析結果履歴１０２から次の状態解析の実行時期を予測する処理部である。
【００１８】
乱れ解消処理選択処理部１０６は、各乱れ要因が解消を必要とする状態となっているかどうかを判定する為の閾値を表す乱れ判定閾値のリスト１１４を参照して、前記出力された状態解析結果の内で乱れ判定閾値のリスト１１４中の閾値を超えている乱れ要因を取得し、乱れ解消処理と解消可能な要因の対応表１１２を参照して、前記取得した乱れ要因による乱れを解消可能な乱れ解消処理を選択する処理部である。状態解析実行処理部１１７は、状態解析の実行時期であると判定された場合に、データベース格納領域２０６の状態を解析し、各乱れ要因に対応する値を状態解析結果として出力する処理部である。
【００１９】
コンピュータシステム２０１を状態解析実行契機判断処理部１０４、次期状態解析実行時期予測処理部１０５、乱れ解消処理選択処理部１０６及び状態解析実行処理部１１７として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００２０】
コンピュータシステム２０１は、ＣＰＵ２０２、主記憶装置２０３、磁気ディスク装置等の外部記憶装置２０５及びフロッピーディスクドライブ２０８からなり、多数の端末２０４とネットワーク２０７を介して接続している。主記憶装置２０３上にはデータベース管理システム１０１が置かれ、外部記憶装置２０５にはデータベース管理システム１０１が管理するデータベースを格納するデータベース格納領域２０６が置かれる。更に、データベース管理システム１０１を実現する処理プログラム２０９や、それが利用するＳＱＬ処理時間履歴１０３、乱れ解消処理選択基準情報１１１、状態解析実行契機の閾値１１６が外部記憶装置２０５上に置かれる。端末２０４はネットワーク２０７を介してデータベース管理システム１０１を操作可能であり、状態解析コマンドの入力、情報の出力等が行われる。また、フロッピーディスクドライブ２０８により媒体を用いたデータの移動が可能である。
【００２１】
乱れ解消処理選択基準情報１１１は以下の物からなるものとする。
・格納状態の乱れ要因のリスト１１３
・乱れ判定閾値のリスト１１４
・乱れ解消処理のリスト１２２
・乱れ解消処理優先順位表１１５
・乱れ解消処理と解消可能な要因の対応表１１２
格納状態の乱れ要因のリスト１１３は、格納状態が乱れる要因となる項目を示すリストであり、本実施形態では以下の３つからなるものとする。
・使用中領域の格納効率：データベース管理システム１０１によって確保され使用中となっているデータベース格納領域２０６の容量の内、実データを格納している領域の割合
・分岐行の数：データベースを構成する行の内、データベース管理システム１０１によって確保された異なる複数の領域にまたがって格納されている行の数
・使用率０％のページ数：データベース管理システム１０１によって確保された領域（ページ）の内で、行が全く格納されていないページの数
乱れ判定閾値のリスト１１４は、格納状態の乱れが大きくなっているかどうかを判定する為の閾値を示すリストであり、各乱れ要因の閾値は予めデフォルト値として定義されているものとするが、システムの管理者が定義することも可能である。
【００２２】
乱れ解消処理のリスト１２２は、格納状態の乱れを解消することのできる処理を示すリストであり、以下の５つからなるものとする。
【００２３】
・再編成：データベースへのアクセスを停止し、格納済みのデータを取り出して格納し直すことによってデータを整頓するものであり、格納状態の乱れを完全に解消できるが、格納済みのデータ量と同量以上の格納領域と、データベースへのアクセス停止が必要である。
【００２４】
・オン中再編成：格納済みのデータをデータベース内の別領域にコピーして整頓された状態にし、コピー終了後整頓されたデータベースに切り替えるものであり、格納状態の乱れを完全に解消できるが、格納済みのデータ量と同量以上の格納領域が必要であり、データベース管理システム１０１への負荷が高く、再編成に比べて実行時間が長い。
【００２５】
・空き領域再利用：領域確保時に確保済み領域内の空き領域を優先して使用するものであり、データベース管理システム１０１への負荷は低いが、実データを移動させることは無い為、分岐行の回収は不可能である。
【００２６】
・空ページ回収：使用率０％のページを回収して再利用可能にするものであり、データベース管理システム１０１への負荷は低いが、使用率０％のページ以外には効果が無い。
【００２７】
・分岐行回収：分岐行を統合するものであり、再編成よりも短時間で実行可能だが、分岐行以外には効果が無い。
【００２８】
乱れ解消処理優先順位表１１５は、格納状態に対して適切な乱れ解消処理を選択する際の優先度を表すものであり、データベース管理システム１０１に対する負荷の大きさによって負荷が小さい程優先度が高いものとして順位付けしたものである。更に、乱れ解消処理優先順位表１１５で処理をデータベースへのアクセスを停止する必要が有るものと無いものに分けておく。この時の乱れ解消処理と解消可能な要因の対応表１１２を図２に、乱れ解消処理優先順位表１１５を図３に示す。
【００２９】
図２は本実施形態の乱れ解消処理と解消可能な要因の対応表１１２の一例を示す図である。図２に示す様に本実施形態の乱れ解消処理と解消可能な要因の対応表１１２は、乱れ解消処理のリスト１２２からなる行と格納状態の乱れ要因のリスト１１３からなる列で構成されており、ある乱れ解消処理によって解消できる乱れ要因の列には記号「○」が、そうでない列には記号「×」が入れてある。
【００３０】
図３は本実施形態の乱れ解消処理優先順位表１１５の一例を示す図である。図３に示す様に乱れ解消処理優先順位表１１５では、乱れ解消処理のリスト１２２からなる行に対し、その乱れ解消処理の実行時にデータベースへのアクセス停止が必要かどうかを示す列と、データベース管理システム１０１の他の処理に対する運用上の負荷の大きさ順に各乱れ解消処理が格納されていることを示す列によって構成されている。
【００３１】
ＳＱＬ処理時間履歴１０３は、管理者によって指定されたＳＱＬ文を実行した際に計測された処理時間の履歴である。状態解析実行契機の閾値１１６は、乱れ解消処理実行直後の格納状態が乱れる前と比較してＳＱＬ文の処理時間がどれだけ遅くなった場合に状態解析実行処理部１１７の処理を行うかを示す為の閾値であり、予めデフォルト値として定義しておくものとするが、システムの管理者が定義することも可能である。
【００３２】
図４は本実施形態のコンピュータシステムのハードウェア構成の他の例を示す図である。この例では外部記憶装置２０５を全てＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）２１０によって管理しており、データベース管理システム１０１内で行っていた状態解析実行契機判断処理部１０４、次期状態解析実行時期予測処理部１０５、乱れ解消処理選択処理部１０６、状態解析実行処理部１１７の処理をＮＡＳ２１０内部で行う例を表している。この場合、データベース管理システム１０１とＮＡＳ２１０の連携を取る為にＮＡＳ連携処理部２１１が必要となる。
【００３３】
以下に、本実施形態のデータベースシステムにおいて、ＳＱＬ文処理時間の比率を求めて現在が状態解析を行うべき時期であるかどうかを判定し、その判定結果に応じて状態解析を実行して乱れ解消処理を選択する処理について説明する。
【００３４】
図５は本実施形態のデータベース乱れ解消処理全体の処理手順を示すフローチャートである。図５に示す様にステップ１２３で本実施形態のデータベース管理システム１０１は、状態解析の実行を指示する状態解析コマンドの入力が端末２０４から行われているかどうかを調べ、状態解析コマンドが入力されている場合にはステップ１０４へ進む。
【００３５】
ステップ１０４でデータベース管理システム１０１は、状態解析実行契機判断処理部１０４を起動し、状態解析実行契機判断処理部１０４によりＳＱＬ文処理時間の比率を求めて現在が状態解析を行うべき時期であるかどうかを判定する。
【００３６】
ステップ１１８では、前記判定の結果、現在が状態解析を行うべき時期であると判定されているかどうかを調べ、状態解析の実行契機であると判定されている場合にはステップ１１７で状態解析実行処理部１１７により状態解析を実行し、ステップ１０６で乱れ解消処理選択処理部１０６は、乱れ解消処理選択基準情報１１１を用いて適切な乱れ解消処理の選択を行う。またステップ１１８で前記判定結果を調べた結果、状態解析の実行契機であると判定されていない場合にはそのまま処理を終了する。
【００３７】
図６は本実施形態の状態解析実行契機判断処理部１０４の処理手順を示すフローチャートである。図６に示す様にステップ６０２で状態解析実行契機判断処理部１０４は、過去に計測されたＳＱＬ文処理時間の情報を含むＳＱＬ処理時間履歴１０３を読み込み、ステップ６０３では、現在のＳＱＬ文処理時間を計測した後、過去に実行した乱れ解消処理の実行直後のＳＱＬ文処理時間に対する現在のＳＱＬ文処理時間の比率を計算する。
【００３８】
その後ステップ６０４では、状態解析実行契機の閾値１１６を読み込み、ステップ６０５では、前記計算したＳＱＬ文処理時間の比率と前記読み込んだ状態解析実行契機の閾値１１６とを比較し、前記比率が閾値を上回っている場合にはステップ６０６へ進み、現在の状態が状態解析を実行すべき時期であると判定する。またステップ６０５で、前記比率が閾値を上回っていない場合にはステップ６０７へ進み、まだ状態解析の実行時期ではないと判定する。
【００３９】
例えば、過去に実行した乱れ解消処理の実行直後のＳＱＬ文処理時間に対する現在のＳＱＬ文処理時間の比率を計算した結果、その比率が「１．５」、即ち現在のＳＱＬ文の処理時間が、乱れ解消処理実行直後の乱れの無い状態と比較して１．５倍になっており、状態解析実行契機の閾値１１６としてＳＱＬ文処理時間の比率「１．４」と定義されていた場合には、状態解析の実行時期であると判定する。
【００４０】
図７は本実施形態の状態解析実行処理部１１７の処理手順を示すフローチャートである。図７に示す様にステップ１１０２で状態解析実行処理部１１７は、データベース管理システム１０１によって確保された領域内を参照し、分岐行と使用率０％のページの数、行の長さをカウントしながら、データベース格納領域２０６の使用中領域をサーチする。
【００４１】
ステップ１１０３では、データベース管理システム１０１によって確保されているデータベース格納領域２０６の容量に対する、実データ格納領域の大きさの割合を求めることにより、使用中領域の格納効率を計算する。
【００４２】
ステップ１１０４では、前記計算された使用中領域の格納効率、前記カウントされた分岐行の数及び使用率０％のページ数の各乱れ要因に対応する値を状態解析結果として出力する。
【００４３】
図８は本実施形態の乱れ解消処理選択処理部１０６の処理手順を示すフローチャートである。ステップ５０１で乱れ解消処理選択処理部１０６は、まず状態解析実行処理部１１７から出力された状態解析結果を読み込み、以前の状態解析結果を示す状態解析結果履歴１０２に追加する。その後、ステップ５０２では、状態解析結果履歴１０２から以前の状態解析結果を読み込む。
【００４４】
ステップ５０３では、ステップ５０１で読み込んだ現在の状態解析結果とステップ５０２で読み込んだ以前の状態解析結果とを順次比較し、現在の状態解析結果と以前の状態解析結果中の乱れ要因に対応する各値が全て一致しているかどうかを調べ、現在の状態解析結果が以前の状態解析結果と一致している場合にはステップ５０４からステップ５０５へ進み、現在の状態解析結果と一致した以前の状態解析結果の際に選択された乱れ解消処理を、現在の状態解析結果に対する乱れ解消処理として選択する。ここで、以前の状態解析結果の際に選択された乱れ解消処理を示す情報は、その状態解析結果の各値と共に状態解析結果履歴１０２に格納されているものとする。
【００４５】
一方、現在の状態解析結果が以前の状態解析結果と一致しない場合にはステップ５０６へ進み、現在の状態解析結果の各値の内、格納状態の乱れ要因のリスト１１３中の項目に対応する値を取得する。
【００４６】
ステップ５０７では、乱れ判定閾値のリスト１１４を読み込み、ステップ５０８では、ステップ５０６で取得した状態解析結果の値とステップ５０７で読み込んだ乱れ判定閾値のリスト１１４中の閾値とを比較し、ステップ５０６で値を取得した乱れ要因の内で乱れ判定閾値のリスト１１４中の閾値を超えている乱れ要因を取得する。
【００４７】
ステップ５０９では、乱れ解消処理と解消可能な要因の対応表１１２を参照し、ステップ５０８で閾値を超えていた乱れ要因について、その乱れ要因を解消可能な処理を、乱れ解消処理と解消可能な要因の対応表１１２の中から選択する。
【００４８】
ステップ５１０では、ステップ５０９で複数の処理が選択されたかどうかを調べ、複数の処理が選択された場合にはステップ５１１へ進む。ステップ５１１では、乱れ解消処理優先順位表１１５を参照し、データベースへのアクセスを停止可能な場合と不可能な場合の双方について、それぞれ最も負荷の小さい処理を、ステップ５０９で得られた複数の処理から選択した後、ステップ５１２では、その選択した処理を状態解析結果履歴１０２に保存して乱れ解消処理選択処理を終了する。
【００４９】
またステップ５０９で複数の処理が選択されなかった場合は、ステップ５１０からステップ５１２へ進み、ステップ５０９で選択された処理を状態解析結果履歴１０２に保存して乱れ解消処理選択処理を終了する。
【００５０】
例えば、状態解析を行った結果として分岐行の数のみが乱れ判定閾値のリスト１１４中の閾値を超えていた場合、図２の乱れ解消処理と解消可能な要因の対応表１１２中の「分岐行」の項目内容が「○」となっている乱れ解消処理を読み出すことにより、その乱れ要因を解消可能な処理は、「再編成」、「オン中再編成」、「分岐行回収」に絞られる。そして、図３の乱れ解消処理の優先順位表１１５中で「アクセス停止」の項目内容が共に「不要」である「オン中再編成」及び「分岐行回収」の内、「負荷」の項目内容の小さい「分岐行回収」を選択し、データベースへのアクセス停止が不可能な場合の乱れ解消処理として「分岐行回収」を、可能な場合の乱れ解消処理として「再編成」を選択する。
【００５１】
前記の様に本実施形態により、複数の乱れ解消処理からデータベースの格納状態に応じた乱れ解消処理を選択することができ、また適切な状態解析実行契機判断によって状態解析実行による負荷を軽減できる。
【００５２】
以上説明した様に本実施形態のデータベースシステムによれば、データベース処理実行コストに応じて状態解析を実行し、その状態解析結果により検出された乱れ要因による乱れを解消可能な乱れ解消処理を選択するので、データベース格納領域の状態を解析する状態解析の処理負荷を抑えると共にデータベース格納領域で生じている乱れを解消するのに最適な乱れ解消処理を効率的に選択することが可能である。
【００５３】
（実施形態２）
以下にＳＱＬ処理時間履歴を用いて次の状態解析実行時期の予測を行う実施形態２のデータベースシステムについて説明する。
【００５４】
本実施形態では、実施形態１の状態解析実行契機判断処理部１０４の処理の中で実行契機ではないと判定された場合に、次期状態解析実行時期予測処理部１０５によりＳＱＬ処理時間履歴１０３を用いて次の状態解析実行時期の予測を行う。この場合の処理の全体図を図９に、次期状態解析実行時期予測処理部１０５の概略フローを図１０に示す。
【００５５】
図９は本実施形態のデータベース乱れ解消処理全体の処理手順を示すフローチャートである。図９に示す様にステップ１２３で本実施形態のデータベース管理システム１０１は、状態解析の実行を指示する状態解析コマンドの入力が端末２０４から行われているかどうかを調べ、状態解析コマンドが入力されている場合にはステップ１０４へ進む。
【００５６】
ステップ１０４でデータベース管理システム１０１は、状態解析実行契機判断処理部１０４を起動し、状態解析実行契機判断処理部１０４によりＳＱＬ文処理時間の比率を求めて現在が状態解析を行うべき時期であるかどうかを判定する。
【００５７】
ステップ１１８では、前記判定の結果、現在が状態解析を行うべき時期であると判定されているかどうかを調べ、状態解析の実行契機であると判定されている場合にはステップ１１７で状態解析実行処理部１１７により状態解析を実行し、ステップ１０６で乱れ解消処理選択処理部１０６は、乱れ解消処理選択基準情報１１１を用いて適切な乱れ解消処理の選択を行う。
【００５８】
またステップ１１８で前記判定結果を調べた結果、状態解析の実行契機であると判定されていない場合にはステップ１０５へ進む。そしてステップ１０５で次期状態解析実行時期予測処理部１０５は、データベース処理実行コストの履歴であるＳＱＬ処理時間履歴１０３中の情報を用いて次の状態解析の実行時期を予測し、その予測結果を端末２０４へ表示する処理を行う。
【００５９】
図１０は本実施形態の次期状態解析実行時期予測処理部１０５の処理手順を示すフローチャートである。ステップ７０１で次期状態解析実行時期予測処理部１０５は、過去に計測されたＳＱＬ文処理時間の情報を含むＳＱＬ処理時間履歴１０３を読み込み、次にステップ７０２では、状態解析実行契機の閾値１１６を読み込む。
【００６０】
ステップ７０３では、ＳＱＬ文処理時間が１次関数に従って増加するものとして今後の変化を予測する。すなわち、前回実行した乱れ解消処理以降のＳＱＬ文処理時間のデータをＳＱＬ処理時間履歴１０３から読み出した後、その読み出したデータを用いて線形予測を行うことで、ＳＱＬ文処理時間が状態解析実行契機の閾値１１６を超える時期を計算し、その計算結果を端末２０４へ表示する。なお２次関数等、他の関数による予測を行っても良い。
【００６１】
前記の様に本実施形態では、適切な状態解析実行契機の予測を行うことで、端末２０４からの状態解析コマンドの入力回数を減らし、ＳＱＬ文処理時間の計測による負荷を軽減することができる。
【００６２】
（実施形態３）
以下に状態解析結果履歴を用いて次の状態解析実行時期の予測を行う実施形態３のデータベースシステムについて説明する。
【００６３】
本実施形態では、実施形態２の次期状態解析実行時期予測処理部１０５における処理を、ＳＱＬ処理時間履歴１０３を用いて行う代わりに、保存した状態解析結果履歴１０２を用いて行う。この場合の処理の全体図を図１１に、次期状態解析実行時期予測処理部１０５の概略フローを図１２に示す。
【００６４】
図１１は本実施形態のデータベース乱れ解消処理全体の処理手順を示すフローチャートである。図１１に示す様にステップ１２３で本実施形態のデータベース管理システム１０１は、状態解析の実行を指示する状態解析コマンドの入力が端末２０４から行われているかどうかを調べ、状態解析コマンドが入力されている場合にはステップ１０４へ進む。
【００６５】
ステップ１０４でデータベース管理システム１０１は、状態解析実行契機判断処理部１０４を起動し、状態解析実行契機判断処理部１０４によりＳＱＬ文処理時間の比率を求めて現在が状態解析を行うべき時期であるかどうかを判定する。
【００６６】
ステップ１１８では、前記判定の結果、現在が状態解析を行うべき時期であると判定されているかどうかを調べ、状態解析の実行契機であると判定されている場合にはステップ１１７で状態解析実行処理部１１７により状態解析を実行し、ステップ１０６で乱れ解消処理選択処理部１０６は、乱れ解消処理選択基準情報１１１を用いて適切な乱れ解消処理の選択を行う。
【００６７】
またステップ１１８で前記判定結果を調べた結果、状態解析の実行契機であると判定されていない場合にはステップ１０５へ進む。そしてステップ１０５で次期状態解析実行時期予測処理部１０５は、以前の状態解析結果を示す状態解析結果履歴１０２中の情報を用いて次の状態解析の実行時期を予測し、その予測結果を端末２０４へ表示する処理を行う。
【００６８】
図１２は本実施形態の次期状態解析実行時期予測処理部１０５の処理手順を示すフローチャートである。ステップ８０２で次期状態解析実行時期予測処理部１０５は、格納状態の乱れ要因のリスト１１３を読み込み、ステップ８０３では、その要因リストの乱れ要因に対応する値を、以前の状態解析結果を示す状態解析結果履歴１０２から読み込む。またステップ８０４では、乱れ判定閾値のリスト１１４を読み込む。
【００６９】
ステップ８０５では、前回実行した乱れ解消処理以降の状態解析結果の履歴中に２回以上過去の解析履歴が有るかどうかを調べ、２回以上過去の解析履歴がある場合にはステップ８０６へ進む。ステップ８０６では、２回以上過去の解析履歴を用いた線形予測により前回の状態解析時の予測値を算出し、その予測値と前回の状態解析結果における値との比率を計算する。
【００７０】
ステップ８０７では、前記計算した比率がデータベース管理システム１０１で規定された範囲内であるかどうかを判定し、規定範囲内であれば予測通りに状態が推移しており、大きな変動はないとしてステップ８０８へ進み、閾値に近づいている値以外に対する解析を省略して状態解析を実行する。
【００７１】
一方ステップ８０７で判定した結果、前記計算した比率が規定範囲外であればステップ１１７へ進み、通常の状態解析を実行する。またステップ８０５で状態解析結果履歴１０２中に２回以上過去の履歴が無い場合にもステップ１１７へ進み、通常の状態解析を実行する。
【００７２】
ステップ８０９では、各乱れ要因の値の推移について線形予測を行い、各値が乱れ判定閾値のリスト１１４にある閾値を超える時期を予測する。なお２次関数等、他の関数による予測を行っても良い。ステップ８１０では、前記予測した時期の内で、最も近い時期に閾値を超えるものを次期状態解析実行時期とし、その次期状態解析実行時期を端末２０４へ表示する。
【００７３】
図１３は本実施形態のステップ８０９及びステップ８１０の線形予測方法の具体例を示す図である。図１３に示す様に、例えば格納効率の低下についてこれまでの履歴から線形予測を行い（線形予測例１３０１）、格納効率低下の閾値１３０７を超える乱れ解消実行予測時期１３０４を算出する。なお図１３の線形予測例１３０１では、格納効率の低下量の変化予測を表しているものとする。
【００７４】
同様に分岐行の数、使用率０％ページ数についてもそれぞれ乱れ解消実行予測時期１３０５及び１３０６を算出し、この３つの乱れ解消実行予測時期１３０４〜１３０６の中で最も現在に近い乱れ解消実行予測時期１３０４を次期状態解析実行時期とする。
【００７５】
前記の様に本実施形態では、適切な状態解析実行契機の予測を実施形態２よりも更に精密に行うことで状態解析実行回数を減らし、状態解析実行による負荷を軽減することができる。
【００７６】
（実施形態４）
以下に各乱れ解消処理を行う条件と行った場合の効果を出力する実施形態４のデータベースシステムについて説明する。
【００７７】
本実施形態では、実施形態１の乱れ解消処理選択処理部１０６の処理を行い、結果を提示する際に、選択結果以外の処理についても、その処理を行う条件と行った場合の効果を出力する処理を行う。
【００７８】
図１４は本実施形態の乱れ解消処理の条件と効果の表示例を示す図である。図１４に示す様に、各乱れ解消処理を行う際の条件として、以下の負荷、アクセス停止、必要ディスク容量及び実行時間の項目が表示されるものとし、これらの情報は予めデータベース管理システム１０１内に用意しておくものとする。
・負荷：データベース管理システム１０１に対するその乱れ解消処理の負荷の大きさによる順位付けを表示する項目。
・アクセス停止：その乱れ解消処理を行う際にデータベースへのアクセス停止が必要かどうかを表示する項目。
・必要ディスク容量：その乱れ解消処理を行う際に、現在使用中の格納領域以外に必要となるディスク容量を表示する項目。
・実行時間：その乱れ解消処理の実行に必要となる時間を表示する項目。
また、それぞれの乱れ解消処理を行った場合の効果としては、各乱れ要因の乱れ解消処理実行前後の値を表示する。
【００７９】
前記の様に本実施形態では、各乱れ解消処理を選択する為の指標となる情報を提示するので、データベースへのアクセス停止が必要な処理または必要でない処理のどちらを選択するか等、データベース管理システム１０１の管理者がどの乱れ解消処理を実行するかを決定する際の選択肢を増やす効果がある。
【００８０】
なお、本発明は１個以上のプロセッサと１個以上のメモリと０個以上のディスクからなる装置群を高速通信手段で接続した高密度実装サーバであるブレードサーバや、多数のプロセッサによって処理を行う高ＳＭＰ（Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｒｏｃｅｓｓｉｎｇ）サーバ、ストレージのみで独立したネットワークを構築するＳＡＮ（Ｓｔｏｒａｇｅ  ＡｒｅａＮｅｔｗｏｒｋ）構成等に対しても適用可能である。
【００８１】
【発明の効果】
本発明によればデータベース処理実行コストに応じて状態解析を実行し、その状態解析結果により検出された乱れ要因による乱れを解消可能な乱れ解消処理を選択するので、データベース格納領域の状態を解析する状態解析の処理負荷を抑えると共にデータベース格納領域で生じている乱れを解消するのに最適な乱れ解消処理を効率的に選択することが可能である。
【図面の簡単な説明】
【図１】実施形態１のコンピュータシステムのハードウェア構成の一例を示す図である。
【図２】実施形態１の乱れ解消処理と解消可能な要因の対応表１１２の一例を示す図である。
【図３】実施形態１の乱れ解消処理優先順位表１１５の一例を示す図である。
【図４】実施形態１のコンピュータシステムのハードウェア構成の他の例を示す図である。
【図５】実施形態１のデータベース乱れ解消処理全体の処理手順を示すフローチャートである。
【図６】実施形態１の状態解析実行契機判断処理部１０４の処理手順を示すフローチャートである。
【図７】実施形態１の状態解析実行処理部１１７の処理手順を示すフローチャートである。
【図８】実施形態１の乱れ解消処理選択処理部１０６の処理手順を示すフローチャートである。
【図９】実施形態２のデータベース乱れ解消処理全体の処理手順を示すフローチャートである。
【図１０】実施形態２の次期状態解析実行時期予測処理部１０５の処理手順を示すフローチャートである。
【図１１】実施形態３のデータベース乱れ解消処理全体の処理手順を示すフローチャートである。
【図１２】実施形態３の次期状態解析実行時期予測処理部１０５の処理手順を示すフローチャートである。
【図１３】実施形態３のステップ８０９及びステップ８１０の線形予測方法の具体例を示す図である。
【図１４】実施形態４の乱れ解消処理の条件と効果の表示例を示す図である。
【符号の説明】
１０１…データベース管理システム、１０３…ＳＱＬ処理時間履歴、１０２…状態解析結果履歴、１１１…乱れ解消処理選択基準情報、１１２…乱れ解消処理と解消可能な要因の対応表、１１３…格納状態の乱れ要因のリスト、１１４…乱れ判定閾値のリスト、１１５…乱れ解消処理優先順位表、１１６…状態解析実行契機の閾値、１２２…乱れ解消処理のリスト、２０１…コンピュータシステム、２０２…ＣＰＵ、２０３…主記憶装置、２０４…端末、２０５…外部記憶装置、２０６…データベース格納領域、２０７…ネットワーク、２０８…フロッピーディスクドライブ、２０９…処理プログラム、１０４…状態解析実行契機判断処理部、１０５…次期状態解析実行時期予測処理部、１０６…乱れ解消処理選択処理部、１１７…状態解析実行処理部、２１０…ＮＡＳ、２１１…ＮＡＳ連携処理部、１３０１〜１３０３…線形予測例、１３０４〜１３０６…乱れ解消実行予測時期、１３０７〜１３０９…閾値。
【図１】
2004157728.tif 000003
【図２】
2004157728.tif 000004
【図３】
2004157728.tif 000005
【図４】
2004157728.tif 000006
【図５】
2004157728.tif 000007
【図６】
2004157728.tif 000008
【図７】
2004157728.tif 000009
【図８】
2004157728.tif 000010
【図９】
2004157728.tif 000011
【図１０】
2004157728.tif 000012
【図１１】
2004157728.tif 000013
【図１２】
2004157728.tif 000014
【図１３】
2004157728.tif 000015
【図１４】
2004157728.tif 000016