(57)【要約】    【課題】  データベース管理システムにおいて、処理量が急激に変化する場合であっても、再編成が必要となる時期を正確に予測することにより、必要な時期に再編成を実行することを前もって計画することを可能にすることが必要とされる。    【解決手段】状態解析処理を実行する状態解析処理部と、前記状態解析処理部からのデータに基づいて将来の再編成時期を予測する再編成時期予測処理部と、現在の格納状態をデータ操作情報に基づいて算出する格納状態算出処理部と、前記再編成時期予測処理部で予測した現在の格納状態と前記格納状態算出処理部にて算出した現在の格納状態とを比較する比較部と、前記比較部の結果に基づいて再編成時期を再度予測する再編成時期再予測部とを備える。【選択図】図２１
2005208953.tif 000002
【特許請求の範囲】
【請求項１】
状態解析処理を実行する状態解析処理部と、
前記状態解析処理部から得られたデータに基づいて将来の再編成時期を予測する再編成時期予測処理部と、
現在の格納状態をデータ操作情報に基づいて算出する現在の格納状態算出処理部と、
前記再編成時期予測処理部で予測した現在の格納状態と前記格納状態算出処理部にて算出した現在の格納状態とを比較する比較部と、
前記比較部の結果に基づいて再編成時期を再度予測する再編成時期再予測部とを有することを特徴とするデータベース再編成時期予測装置。
【請求項２】
コンピュータシステムと接続した外部記憶装置にデータベース格納領域を有し、該データベースの再編成時期を予測するとともに該コンピュータシステムとは別に設けられた該外部記憶装置を制御するストレージシステムであって、
状態解析処理を実行する状態解析処理部と、
前記状態解析処理部から得られたデータに基づいて将来の再編成時期を予測する再編成時期予測処理部と、
現在の格納状態をデータ操作情報に基づいて算出する現在の格納状態算出処理部と、
前記再編成時期予測処理部で予測した現在の格納状態と前記格納状態算出処理部にて算出した現在の格納状態とを比較する比較部と、
前記比較部の結果に基づいて再編成時期を再度予測する再編成時期再予測部とを有することを特徴とするストレージシステム。
【請求項３】
コンピュータ処理装置の入力装置から状態解析処理実行のデータ操作を入力されることで状態解析処理を実行し、
前記状態解析処理部の結果を用いて再編成時期を予測し、
格納状態算出処理部により現在の格納状態をデータ操作情報に基づいて算出し、
前記状態解析処理部の結果から予測した現在の格納状態と前記格納状態算出処理部にて算出した現在の格納状態とを比較し、
前記比較結果に基づいて、再編時期を再予測した結果、もしくは格納状態を入力装置からの指示に基づいて前記出力装置に表示することを特徴とするデータベース再編成時期予測方法。
【請求項４】
データベースのデータを格納するデータベース格納領域の使用状況に基づいて、前記格納領域に対する挿入や削除によって発生するデータの格納状態の乱れを解消する再編成処理をし、格納効率やデータの断片化数等、格納領域内にデータがどのように配置されているかを解析する状態解析処理をするデータベース再編成時期予測方法において、
格納効率の低下やデータの断片化等といった格納状態の乱れを表す格納状態の乱れ要因のリストと、
前記乱れ要因の大きさが再編成処理が必要な状態であるか否かを判断する、乱れ判定閾値のリストと、
実際の格納状態と予測した格納状態との差が大きいという警告を発するか否かを判断するための警告出力閾値のリストを持ち、
前記状態解析実行時に、結果を状態解析実行結果履歴に保存する処理ステップと、
前記状態解析実行結果履歴の推移からの予測により、前記乱れ判定閾値を超える時期を求める再編成時期予測処理ステップと、
前記再編成時期予測の結果と状態解析実行結果履歴から、状態解析実行時点から再編成時期予測結果時点までの格納状態を示す値である格納状態値の推移を仮定する処理ステップと、
格納領域内のデータに変更を加えるデータ操作を実行した際に、前記格納状態値の推移から、現在の格納状態値の予測値である格納状態予測値を求める処理ステップと、
前記データ操作によって発生する格納状態値の変化量を累積した値を計算する処理ステップと、
前記状態解析実行結果履歴と前記変化量の累積値から現在の格納状態値である現在格納状態を求める処理ステップと、
前記現在格納状態と前記格納状態予測値を比較し、その比率が前記警告出力閾値を超えている場合、前記再編成時期予測を再度実行して補正された予測結果を出力する処理ステップを有することを特徴とするデータベース再編成時期予測方法。
【請求項５】
請求項４に記載のデータベース再編成時期予測方法において、
前記現在格納状態と前記格納状態予測値を比較し、その比率が前記警告出力閾値を超えている場合に、警告を出力する処理ステップを有することを特徴とするデータベース再編成時期予測方法。
【請求項６】
データ領域の使用状況に基づいて、データベースの格納領域に対する挿入や削除によって発生するデータの格納状態の乱れを解消する再編成処理をし、格納効率やデータの断片化数等、格納領域内にデータがどのように配置されているかを解析する状態解析を行うデータベース再編成時期予測方法において、
格納効率の低下やデータの断片化等といった格納状態の乱れを表す格納状態の乱れ要因のリストと、
前記乱れ要因の大きさが再編成処理が必要な状態であるか否かを判断する、乱れ判定閾値のリストを持ち、
データベースシステム起動時に前記状態解析を行い、結果を初期格納状態として保存する処理ステップと、
格納領域内のデータに変更を加えるデータ操作を実行した際に、データ操作によって発生する格納状態値の変化量を累積した値を求める処理ステップと、
前記初期格納状態と前記変化量を累積した値から現在の格納状態値である現在格納状態を計算する処理ステップと、
前記現在格納状態を前記乱れ判定閾値リストと比較し、再編成が必要な格納状態になっていれば再編成が必要であるという警告を出力する処理ステップを有する
ことを特徴とするデータベース再編成時期予測方法。
【請求項７】
データ領域の使用状況に基づいて、データベースの格納領域に対する挿入や削除によって発生するデータの格納状態の乱れを解消する再編成処理をし、再編成が必要となる時期を予測する再編成時期予測処理を実行するデータベース再編成時期予測方法において、
前記現在格納状態を計算した際に、計算結果を格納状態履歴として保存する処理ステップと、
格納状態履歴から再編成が必要となる時期を予測する再編成時期予測処理ステップを有することを特徴とするデータベース再編成時期予測方法。
【請求項８】
データ領域の使用状況に基づいて、データベースの格納領域に対する挿入や削除によって発生するデータの格納状態の乱れを解消する再編成処理をし、再編成が必要となる時期を予測する再編成時期予測処理を実行するデータベース再編成時期予測方法において、
再編成を実行した場合に、その処理時間を保存するステップと、
前記再編成時期予測処理において、前記処理時間を予測時刻から引く処理をするステップとを有することを特徴とするデータベース再編成時期予測方法。
【請求項９】
請求項４〜８のいずれかに記載のデータベース再編成時期予測方法において、
前記再編成時期予測の結果より、予測時期までユーザまたはシステムによって定められた閾値以上に時間がある場合に、予測実行時点から得られた予測時期までの間の点を次にいつ状態解析を行えばよいかを示す状態解析実行推奨時期として表示する処理ステップと、
前記格納状態の乱れを示す値の変化が激しい場合に、前記状態解析実行推奨時期を変化の激しさに反比例させた大きさだけ前倒しする補正を行う処理ステップを有することを特徴とするデータベース再編成時期予測方法。
【請求項１０】
請求項４〜９のいずれかに記載のデータベース再編成時期予測方法において、
再編成を実行した際に、状態解析結果履歴を予測処理に用いない無効な状態とする処理ステップと、
無効にする履歴より、格納状態の乱れを表す値の変化の傾きを格納状態遷移履歴として求める処理ステップと、
再編成直後で有効な状態解析結果履歴が存在しない場合の再編成時期予測処理は前記格納状態遷移履歴を用いて行う処理ステップを有することを特徴とするデータベース再編成時期予測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータベース管理システム(DBMS)に関する。
【背景技術】
【０００２】
データベース管理システムでは業務を継続する事により、データの挿入、削除、更新が繰り返され、それによってデータ断片化等の格納状態の乱れが発生し、性能が劣化する。そのため、格納領域内のデータを移動することによって格納状態の乱れを解消する、格納領域の再編成を定期的に行う必要がある。
【０００３】
なお、再編成は格納領域内のデータを全て取り出し、それを格納し直すことによって格納状態の乱れを解消する方式が一般的である。この方式では通常、再編成実行中に格納領域内のデータへのアクセスを全て停止する必要があり、頻繁に実行できるものではない。
【０００４】
また、特許文献１において開示されているように、データのコピーを作成し、コピーしたデータに対して再編成を実行することで、再編成実行中にも格納領域内のデータにアクセスできるようにする方法もあるが、この方式においても再編成実行中に行われた処理を再編成終了時に反映しなければいけない等、オンライン業務の処理性能に影響を及ぼす、あるいは時間のかかる処理があり、この技術を用いたからといって再編成が頻繁に実行できるわけではない。
【０００５】
そこで、従来はDBMS管理者が運用前にデータベースの格納状態が業務によってどの程度悪化するかを見積り、その見積り結果に従って定期的に再編成を実行することが一般的であった。
【０００６】
データベースの格納状態は累積トランザクション数とともに乱れが激しくなるため、定期的に再編成を実行する運用では、ユーザ数が予想以上に増加した場合等処理量が急激に増加した場合に、再編成によって乱れを解消する前に性能劣化が発生する。また、事前の見積りを間違えると、処理量の増加が予想以上だった場合にはやはり性能劣化が発生し、処理量が予想ほど増加しなかった場合には、必要以上に再編成を実行してしまうことになる。必要以上の再編成は、再編成を実行するために管理者の手間が増えることによる管理コストが増加や、再編成実行時のデータ移動の負荷による性能劣化の原因となる。
【０００７】
性能劣化や必要以上の再編成実行を回避するためには、再編成すべきか否かを判断する必要があり、そのためには、格納領域内にデータがどのように配置されているかを解析する状態解析を実行する必要がある。
【０００８】
このような状態解析は格納しているデータ全てにアクセスするために、DBMSに対する負荷が高く、頻繁に行うことができないという問題点がある。このような問題に対し、状態解析を行わずに再編成の必要性を判断する方法として、検索時のアクセス速度によって再編成の必要性を判断する方法が、特許文献２において開示されている。この場合の処理の流れを図20に示す。
【０００９】
DBMSは、データ操作を受け付けると(ステップ2001)、そのデータ操作によるアクセス速度を確認し(ステップ2002)、アクセス速度によって再編成の必要性を判断し(ステップ2003)、再編成契機であれば再編成契機であることを出力する(ステップ2004)。再編成契機でなかった場合には、そのまま運用を続行する(ステップ2005)。
【００１０】
管理者は再編成契機が出力されるのを待ち(ステップ2009)、再編成実行可能時期から実行時期を決定し(ステップ2010)、再編成を実行する(ステップ2011)。
【００１１】
【特許文献１】特開平6-67950
【００１２】
【特許文献２】特開平5-151036
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかし、再編成はデータの配置を整頓された状態にすることから、システムの停止あるいは大きな負荷を伴うため、トランザクション量が少なくなる時間帯等を見積もって計画的に実行する必要がある。
【００１４】
特許文献１のような手法では、常に現在の状態を見て再編成が必要かどうかを判定しているため、予め再編成が必要となる時期を知ることができできないという問題があり、計画的な再編成が実行できない。このため、図20のような運用では再編成が必要な状況となった場合、トランザクションが多く発生している時間にDBMSに大きな負荷をかけてしまうか、あるいは性能が劣化したまま運用を続けなければならない。
【００１５】
上記問題点に鑑み、再編成が必要となる時期を高い精度で予測することによって、必要な時期に再編成を実行することを前もって計画することを可能にすることが本発明の課題である。
【課題を解決するための手段】
【００１６】
本発明は、前記課題を解決するために、外部記憶装置から構成されるデータベース格納領域を管理し、データベースの格納領域に対する挿入や削除によって発生するデータの格納状態の乱れを解消する再編成処理と、格納効率やデータの断片化数等、格納領域内にデータがどのように配置されているかを解析する状態解析処理を持つデータベース管理システムにおいて、
格納状態の乱れ要因のリストと、
前記乱れ要因の大きさが再編成処理が必要な状態であるか否かを判断する、乱れ判定閾値のリストと、
実際の格納状態と予測した格納状態との差が大きいという警告を発するか否かを判断するための警告出力閾値のリストをデータベース管理システムが備え、
前記状態解析実行時に、結果を状態解析実行結果履歴に保存する処理と、
前記状態解析実行結果履歴の推移からの予測により、前記乱れ判定閾値を超える時期を求める再編成時期予測処理と、
前記再編成時期予測の結果と状態解析実行結果履歴から、状態解析実行時点から再編成時期予測結果時点までの格納状態を示す値である格納状態値の推移を仮定する処理と、
格納領域内のデータに変更を加えるデータ操作を実行した際に、前記格納状態値の推移から、現在の格納状態値の予測値である格納状態予測値を求める処理と、
前記データ操作によって発生する格納状態値の変化量を累積した値を計算する処理と、
前記状態解析実行結果履歴と前記変化量の累積値から現在の格納状態値である現在格納状態を求める処理と、
前記現在格納状態と前記格納状態予測値を比較し、その比率が前記警告出力閾値を超えている場合、前記再編成時期予測を再度実行して補正された予測結果を出力する処理を有することを特徴とするデータベース再編成時期予測方法によって課題を解決するものである。
この場合の処理の流れを図21に示す。
DBMSは状態解析コマンドを受け付けると(ステップ2101)、状態解析を行った結果を履歴として保存し(ステップ2102)、その履歴を用いて再編成時期を予測する(ステップ2103)。その後、データ操作命令を受け付けた場合には(ステップ2104)、そのデータ操作による格納状態の変化を算出し(ステップ2105)、格納状態変化に応じて精度を高めた予測を出力する(ステップ2106)。
管理者は、運用開始後状態解析を実行し(ステップ2112)、それ以降DBMSから出力される再編成時期予測結果を確認し(ステップ2113)、ここで得られた予測時期に再編成を実行する(ステップ2107)。
また、図２３を用いて、本発明に係わるデータベース処理システムとしての再編成時期予測機能の構成を説明する。
図２３のコンピュータシステム201には、コンピュータシステムとネットワーク接続した外部記憶装置205に格納されたデータベースの再編成処理を実行するために、次の処理部を備えている。
状態解析処理を実行する状態解析処理部2300、前記状態解析処理部からのデータに基づいて将来の再編成時期を予測する再編成時期予測処理部2301、現在の格納状態をデータ操作情報に基づいて算出する格納状態算出処理部2302、前記再編成時期予測処理部で予測した現在の格納状態と前記格納状態算出処理部にて算出した現在の格納状態とを比較する比較部2303、前記比較部の結果に基づいて再編成時期を再度予測する再編成時期再予測部2304である。
【発明の効果】
【００１７】
処理量が急激に変化する環境でも、処理量の変化量による影響を考慮して再編成が必要となる時期を正確に予測することにより、必要な時期に再編成を実行することを前もって計画することが可能となる。
【発明を実施するための最良の形態】
【００１８】
本発明の第1の実施例について説明する。
【００１９】
図2は本実施形態のコンピュータシステム構成の一例を示す図である。
【００２０】
コンピュータシステム201は、CPU202、主記憶装置203、磁気ディスク装置等の外部記憶装置205及びフレキシブルディスクドライブ208からなり、多数の端末204とネットワーク207を介して接続している。主記憶装置203上にはデータベース管理システム101および状態解析ユーティリティ118が置かれ、外部記憶装置205にはデータベース管理システム101が管理するデータベースを格納するデータベース格納領域206が置かれる。
【００２１】
さらにデータベース管理システム101を実現する処理プログラム209や、状態解析ユーティリティ118を実現する処理プログラム212、それらが利用する現在格納状態推測値102、状態解析結果の履歴103、再編成時期予測結果104、格納状態の乱れ要因リスト210、乱れ判定閾値のリスト120、警告出力の閾値211が外部記憶装置205に格納される。
【００２２】
外部記憶装置205に格納されているプログラムを主記憶装置203にロードし、CPU202が当該プログラムを解析実行することにより、データベース管理システム101、状態解析ユーティリティ118が動作する。
【００２３】
端末204はネットワーク207を介してデータベース管理システム101を操作し、状態解析ユーティリティを実行するための状態解析コマンドの入力、格納領域内のデータに変更を加えるデータ操作である問合せの実行要求、情報の出力などが行われる。なお、フローの中では問合せはSQLで説明する。また、205内のプログラムはフレキシブルディスクドライブ208のような外部の可搬型ドライブあるいはネットワーク207経由で提供されてもかまわない。
【００２４】
格納状態の乱れ要因リスト210は、予めDBMS内に作りこまれている、格納状態が乱れる要因となる項目のリストであり、本実施例では以下の2つからなる。
・使用中領域の格納効率：使用中のデータベース格納領域に格納可能な最大データ量に対する、格納している実データ量の割合。データベースに対して挿入と削除を繰り返すことで空き領域の分散が発生し、使用中領域内に空き領域が発生するために格納効率が低下する。
・分岐行の数：データベースの1つの行が格納領域へのI/O単位であるページ間で、複数の断片に分かれて存在している状態。更新処理によって行の長さが大きくなった場合に、1ページに行が収まらない場合に発生する、断片化した行の数である。
【００２５】
警告出力閾値のリスト211は格納状態が予測から外れた場合に、どの程度外れたら警告を出すかの閾値のリストであり、予めデフォルト値がDBMS内に作りこまれているがユーザ指定値を用いることもできる。これは図17に示すように、格納領域、乱れの種類、閾値を表す値からなる。
【００２６】
現在格納状態推測値102はSQL文の処理を実行することによって使用中領域の格納効率及び分岐行の数がどれだけ変化したかを表したものである。これは図14に示すように、格納領域、乱れの種類、格納状態値の変化量を表す値からなる。
【００２７】
状態解析実行結果履歴103は、状態解析によって得られた実行結果の履歴である。これは図15に示すように格納領域、取得日時、乱れの種類、状態解析によって得られた値からなる。
【００２８】
再編成時期予測結果104は、状態解析実行結果履歴103の推移から再編成がいつ必要になるかを予測する再編成時期予測処理113を実行した結果である。これは図16に示すように、格納領域と、その領域において再編成がいつ必要になるか予測した時期からなる。
【００２９】
乱れ判定閾値のリスト120は、再編成が必要になったことを示す値のリストであり、予めデフォルト値がDBMS内に作りこまれているがユーザ指定値を用いることもできる。これは図18に示すように、格納領域、乱れの種類、乱れ判定の閾値からなる。
【００３０】
本発明における処理全体のフローを図1に示す。この中のDBMS、状態解析ユーティリティ、再編成ユーティリティの処理それぞれに分けて以下で説明する。
【００３１】
一般にDBMS管理者は、図2における端末204からコマンドを入力する(ステップ117)ことで、DBMSに状態解析ユーティリティや再編成ユーティリティの実行を指示する。また、SQL文の処理は通常他の業務アプリケーション等から発行されるが、端末か204からDBMSに対し、SQL文の処理を命じることも可能である。
【００３２】
状態解析ユーティリティ118実行時の処理フローは以下の通りである。
【００３３】
状態解析コマンドを入力されることにより(ステップ117)、格納領域内のデータを読み込んで使用中領域の格納効率と分岐行の数を求める状態解析処理を実行する(ステップ109)。求めた状態解析結果と、取得した時刻を状態解析実行結果履歴103に保存し(ステップ116)、さらに、得られた状態解析結果の値で現在格納状態推測値102を初期化する(ステップ110)。
次に状態解析実行結果と乱れ判定閾値のリスト120から、状態解析で得られた値がそれぞれ乱れ判定閾値を超えているかによって、再編成が必要となる再編成契機かを判断し(ステップ111)、再編成契機であれば再編成契機メッセージ出力処理を行う(ステップ121)。
ユーザはメッセージが出力されると再編成コマンドを入力し(ステップ112)、再編成ユーティリティを実行する。
再編成ユーティリティは、図1のフローに示すように、再編成処理を実行する(ステップ119)。
再編成契機でなかった場合には、再編成時期予測処理を実行し(ステップ113)、状態解析実行結果履歴103の推移から将来乱れ判定閾値を超える時期を計算することで次にいつ再編成が必要になるかを予測する。
【００３４】
これは図15のような状態解析の実行結果履歴から、格納領域1501と乱れの種類1503それぞれについて独立に、取得日時1502をX軸、値1504をY軸としてグラフに履歴をプロットし、このプロットした点から最小二乗法等を用いて図18の乱れ判定閾値の値1803に達する点を予測する。例として、図15の格納領域1の格納効率については取得日時と値の組が(2000/01/01 0:00:00、80)、(2000/01/02 0:00:00、70)、(2000/01/03 0:00:00、60)となっており、線形予測によって、2000/01/07 0:00:00に図18の閾値20を切ることが予測されるため、図16のように格納領域1の予測時期が2000/01/07 0:00:00となる。この時、分岐行数は変化していないため予測には用いられず、格納領域2については十分な履歴がないため予測は行われない。
【００３５】
このようにして得られた結果を再編成時期予測結果104に出力し、保存する(ステップ114)。
【００３６】
図1のデータベース管理システム101内部でのINSERT、DELETE、UPDATE等、格納状態に変化を及ぼすSQL文の処理フローについて説明する。
【００３７】
格納状態に変化を及ぼすSQL文が入力された際に(ステップ122)、SQL文により指示された処理を実行し(ステップ115)、処理の内容より格納状態の乱れの変化量を算出する格納状態変化算出処理を実行する(ステップ105)。
【００３８】
格納状態変化算出処理105のフローを図3に示す。
まず現在格納状態推測値102を読み込み(ステップ306)、その後SQL文実行時に得られる情報からINSERT、DELETE等が何を行ったのか、行の長さをどれだけ増減させたか、分岐行を発生させたかを解析する(ステップ301)。
前記解析によってデータ量が変化しているかを判断し(ステップ302)、変化している場合はデータ量の変化と使用している格納領域の容量から格納効率変化量を算出する(ステップ303)。例として、INSERTによって挿入が行われた場合には、INSERTされた行の長さを見ることで、現在格納状態推測値102から得られる、現在の格納データの総量にその行の長さを足し合わせ、格納効率の再計算を行う。
さらに、前記解析によって分岐行が発生・削除されているかを判断し(ステップ304)、その数を数えることによって分岐行の数の変化量を計算する(ステップ305)。
【００３９】
図1のフローに戻り、次に現在格納状態推測値102と状態解析実行結果履歴103から現在格納状態を算出する(ステップ106)。
【００４０】
現在格納状態算出処理106のフローを図4に示す。
状態解析実行結果履歴103の中で最新のものを読み込む(ステップ402)。これに格納状態変化算出処理105で得られた結果を加算し(ステップ403)、現在格納状態推測値102に格納する(ステップ404)。
【００４１】
図1のフローに戻り、現在格納状態と、再編成時期予測結果104から得られる現在格納状態の予測値を比較する(ステップ107)。
【００４２】
現在格納状態と予測値の比較処理107のフローを図5に示す。
再編成時期予測結果104を読み込む(ステップ501)。
状態解析実行結果履歴103の中で最新のものを読み込み(ステップ402)、
再編成時期予測結果104と状態解析実行結果履歴から予測される現在格納状態の予測値を計算し(ステップ503)、現在格納状態推測値102と比較してその比率を得る(ステップ504)。
図1のフローに戻り、得られた比率が警告出力の閾値リスト211の閾値よりも大きい場合には(ステップ108)、予測が外れていることを検知した状態であるため、現在格納状態と状態解析実行結果履歴103から再編成時期予測処理126を実行し、得られた予測結果を出力する(ステップ125)。
【００４３】
具体例として図14の現在格納状態推測値の中で格納領域1の格納効率の場合、現在格納状態推測値が40であり、現在が2000/01/04 0:00:00であったとする。図15の状態解析結果履歴の推移から2000/01/04 0:00:00には格納効率は50であると推測される。この比率は50/40=1.25であり、図17の警告出力閾値のリストにある1.1をこえているため、警告を出力し、最予測を促すことになる。
以上でSQL文処理を終了する(ステップ123)。
【００４４】
以上が本発明の第1の実施形態である。
本実施例により、INSERT、UPDATE、DELETE等の格納状態が変化するSQL文を処理した際に、格納状態がどのように変化したかを算出しておくことで、状態解析によって予測を出した後には状態解析を行わずに現在格納状態を算出することができる。
【００４５】
これにより、格納状態の乱れ増加率が大きく増加した場合等において、増加率の変化を検知し、その変化による補正を加えた再編成時期の予測結果を出力することができる。また、検知した際に警告のみを出力し、警告出力時にユーザが状態解析を実行することにより再編成時期を補正することも可能である。このためユーザは、運用開始後数回の状態解析実行によって予測を出した後は、随時表示される予測時期を見ることで、その時期に再編成を計画すればよく、計画的な再編成実行が可能となる。
【００４６】
次に本発明の第2の実施例について説明する。
【００４７】
第2の実施例は、第1の実施例のように状態解析を頻繁に実行せず、DBMS起動時のみに実行し、それ以降は問合せ処理によって得られる格納状態の変化のみで予測、再編成契機判断を行う方式である。
この場合の全体処理フローを図6に、本実施形態のコンピュータシステム構成の一例を示す図を図7に示す。構成としては第1の実施例から状態解析ユーティリティを省き、状態解析をDBMS及び再編成ユーティリティの中に含めた形式になっている。
この処理は、DBMS起動時(ステップ601)に、現在格納状態推測値102を初期化し(ステップ110)、状態解析を実行して(ステップ109)その結果を初期格納状態603に保存する(ステップ602)。
【００４８】
INSERT、DELETE、UPDATE等、格納状態に変化を及ぼすSQL文の処理が入力された際に(ステップ122)、SQL文により指示された処理を実行し(ステップ115)、処理の内容より格納状態の乱れの変化量を算出する(ステップ105)。これは図3のフローで示したものと同様である。
【００４９】
次に算出処理によって得られた現在格納状態推測値102と初期格納状態603から現在格納状態を計算する(ステップ106)。これは図4のフローで示したものと同様である。
【００５０】
得られた現在格納状態を格納状態履歴604として保存し(ステップ606)、保存された履歴を用いて再編成時期の予測を行う(ステップ113)。得られた予測結果を再編成時期予測結果104として保存する(ステップ114)。
【００５１】
ここで、得られた現在格納状態と乱れ判定閾値のリスト120から、現在の格納状態が、再編成契機となっているかどうかを判別し(ステップ111)、再編成契機であった場合には再編成処理が必要であるという警告を出力する(ステップ801)。
以上でSQL文処理を終了する(ステップ123)。
なお、初期格納状態603及び格納状態履歴604は、図15に示した状態解析結果履歴103と同様の形式である。
ユーザは、再編成時期予測結果104を表示する時期予測コマンドを入力して(ステップ609)予測時期を確認する。予測時期になると(ステップ608)、ユーザは再編成コマンドを入力する(ステップ112)。
そして現在格納状態推測値102を初期化し、状態解析を実行して(ステップ109)その結果を初期格納状態603に保存する(ステップ602)。
【００５２】
以上が本発明の第2の実施形態である。
本実施例により、状態解析を実行することなくSQL文の処理に応じた再編成時期の予測を行うことが可能となり、DBMS内部の処理のみで再編成をいつ実行すれば良いかユーザが知ることができるようになる。また、予測結果の日時に近づいてきたらアラートを出すことも可能である。
【００５３】
次に本発明の第3の実施例について説明する。
本実施形態のコンピュータシステム構成の一例を示す図を図11に示す。
この例では外部記憶装置205を全てNAS(Network Attached Storage)213によって管理しており、データベース管理システム101内で行っていた状態解析処理109、状態解析実行結果履歴保存処理116、予測結果保存出力処理114、格納状態変化記録算出処理105、再編成時期予測処理113、再編成時期予測結果補正処理905、次期状態解析実行推奨時期表示903、現在格納状態算出処理106、現在格納状態と予測値の比較処理107、予測補正結果出力処理125をNAS213内部で処理する方式である。
この場合、データベース管理システム101とNAS213の連携を取るために、NAS連携処理214が必要となる。
処理内容については第1実施例と同様である。
本実施例により、外部記憶装置205を全てNASで管理している環境においても本発明を適用し、必要な時期に再編成を実行することを前もって計画することが可能となる。
【００５４】
次に本発明の第4の実施例について説明する。
【００５５】
この場合の全体処理フローを図12に、本実施形態のコンピュータシステム構成の一例を示す図を図13に示す。  この例は第1の実施例に加えて、再編成実行時間による再編成予測時期の補正、次期状態解析実行推奨時期の表示、再編成実行時の履歴管理を追加したものである。
【００５６】
状態解析ユーティリティ118実行時の処理フローは以下の通りである。
状態解析コマンドが入力されると(ステップ117)、格納領域内のデータを読み込み、格納状態の乱れ要因リスト210の、使用中領域の格納効率と分岐行の数を求める、状態解析を実行する(ステップ109)。求めた状態解析結果と、取得した時刻を状態解析実行結果履歴103に保存し(ステップ116)、さらに現在格納状態推測値102を初期化する(ステップ110)。
次に状態解析実行結果と乱れ判定閾値のリスト120から、状態解析で得られた値がそれぞれ乱れ判定閾値を超えているかによって、再編成が必要となる再編成契機かを判断し(ステップ111)、再編成契機であれば再編成契機メッセージ出力処理を行う(ステップ121)。
ユーザはメッセージが出力されると再編成コマンドを入力し(ステップ112)、再編成ユーティリティを実行する。
【００５７】
再編成契機でなかった場合には、状態解析実行結果履歴103の推移から将来乱れ判定閾値を超える時期を予測することで次にいつ再編成が必要になるかを予測する、再編成時期予測処理を実行し(ステップ113)、得られた予測時期に対して再編成時期予測結果補正処理を実行する(ステップ905)。
再編成時期予測結果補正処理905のフローを、図10に示す。
まず、再編成履歴を読み込み(ステップ1201)、再編成履歴が存在するかどうかを判別し(ステップ1202)、存在する場合は、再編成の処理時間の平均時間を算出し、得られた平均処理時間を予測時期から引く(ステップ1205)。
再編成履歴が存在しない場合には、状態解析処理109によって得られた格納データ量から、再編成にかかる時間を算出し(ステップ1204)、算出した時間を予測時期から引く(ステップ1205)。
【００５８】
図12のフローに戻り、このようにして、得られた結果を再編成時期予測結果104に出力し、保存する(ステップ114)。次に、次期状態解析実行推奨時期表示処理を行う(ステップ903)。
次期状態解析実行推奨時期表示903のフローを図8に示す。
まず予測時期までの間の点を状態解析実行推奨時期とする(ステップ1001)。
次に状態解析実行結果履歴を読み込み(ステップ1002)、履歴の傾きに比例した値を状態解析実行推奨時期から引き(ステップ1003)、決定された状態解析実行推奨時期を出力する(ステップ1004)。
ユーザは表示された時期に再び状態解析コマンドを入力する(ステップ117)。
再編成ユーティリティは、図12のフローに示すように、再編成処理を実行し(ステップ119)、再編成にかかった処理時間及び実行時刻を再編成履歴902に記録する(ステップ901)。その後、履歴管理処理を実行する(ステップ904)。
【００５９】
履歴管理処理904のフローを図9に示す。
履歴管理処理904は、状態解析実行結果履歴103を読み込み(ステップ1101)、
再編成履歴902を読み込む(ステップ1102)。
前回再編成を実行してから現在まで乱れを示す値がどのように変化したかを表すために、状態解析実行結果である乱れを示す値の傾きを計算し、履歴推移傾向215として保存する(ステップ1103)。これを図22に示す。
過去の状態解析実行結果履歴を再編成以降の予測には用いないように無効化する(ステップ1104)。
【００６０】
再編成時期予測処理113を行う際に、履歴の無効化によって予測に十分な履歴が存在しない場合には、履歴推移傾向215の傾きから将来乱れ判定閾値を超える時期を予測する。
【００６１】
図12でデータベース管理システム101内部でのINSERT、DELETE、UPDATE等、格納状態に変化を及ぼすSQL文の処理フローについて説明する。
【００６２】
格納状態に変化を及ぼすSQL文の処理が入力された際に(ステップ122)、SQL文により指示された処理を実行し(ステップ115)、処理の内容より格納状態の乱れの変化量を算出する格納状態変化算出処理を実行する(ステップ105)。これは図3のフローで示したものと同様である。
【００６３】
図12のフローに戻り、次に格納状態変化算出処理105によって得られた現在格納状態推測値102と状態解析実行結果履歴103から現在格納状態を算出する(ステップ106)。これは図4のフローで示したものと同様である。
【００６４】
図12のフローに戻り、現在格納状態と、再編成時期予測結果104から得られる現在格納状態の予測値を比較する(ステップ107)。
【００６５】
現在格納状態と予測値の比較処理107のフローを図5に示す。
再編成時期予測結果104を読み込む(ステップ501)。
状態解析実行結果履歴103の中で最新のものを読み込み(ステップ402)、
再編成時期予測結果104と状態解析実行結果履歴をから予測される現在格納状態の予測値を計算し(ステップ503)、
現在格納状態算出処理106で計算した現在格納状態と得られた予測値とを比較してその比率を得る(ステップ504)。
【００６６】
図12のフローに戻り、得られた比が警告出力の閾値リスト211の閾値よりも大きい場合には(ステップ108)、予測が外れていることを検知した状態であるため、現在格納状態と状態解析実行結果履歴103から再編成時期予測処理126を実行し、補正された予測を出力する(ステップ125)。
以上でSQL文処理を終了する(ステップ123)。
本実施例により、さらに、次に状態解析をいつ実行すればよいかの指針を得ること、再編成実行直後に簡単な予測を行うことが可能となっている。
【００６７】
図２４に、本発明の実施例をデータベース管理システムに実装した場合に、再編成時期予測を管理する管理者に好都合な管理モニターの内容を示す図である。
再編成処理の予測が外れた場合に、図２４に示すように、その時点における格納状態の推測値2401（格納効率などの詳細なデータ2402も含む）とその予測値からのずれ2403、補正した再編成時期予測時期2404を警告とともに、表示画面上に出力できる。このような警告が出力されることによって、予測が外れた場合にＤＢＭＳへの大きな負荷無に随時精度の高い再予測結果を得ることができ、結果として高い精度の予測が行えるという効果があります。
【００６８】
本画面では、上記のデータを一画面上にまとめて表示したが、適宜分割して別画面で表示してもかまわない。また、再編成時期を管理するユーザにとって、このような表示画面には、状態解析処理実行のデータ操作を指示する指示部や、補正前の再編成時期の予測結果を出力する再編成時期予測結果出力部や、再編成をデータベース管理システムに指示する再編成実行指示部を画面の表示部内に備える構成とすることで、容易に再編成処理の管理可能となる。
【図面の簡単な説明】
【００６９】
【図１】本発明における処理の全体図である。
【図２】本発明を実施するためのデータベース管理システムの構成図である。
【図３】本実施例に関わる格納状態変化算出処理の概略処理フローである。
【図４】本実施例に関わる現在格納状態算出処理の概略処理フローである。
【図５】本実施例に関わる現在格納状態と予測値の比較処理の概略処理フローである。
【図６】本発明における処理の全体図である。
【図７】本発明を実施するためのデータベース管理システムの構成図である。
【図８】本発明における処理の全体図である。
【図９】本実施例に関わる次期状態解析実行推奨時期表示処理の概略処理フローである。
【図１０】本実施例に関わる過去履歴管理処理の概略処理フローである。
【図１１】本発明を実施するためのデータベース管理システムの構成図である。
【図１２】本実施例に関わる現在格納状態算出処理の概略処理フローである。
【図１３】本発明を実施するためのデータベース管理システムの構成図である。
【図１４】現在の格納状態の推測値である。
【図１５】状態解析の実行結果履歴である。
【図１６】再編成時期予測の実行結果である。
【図１７】格納状態と予測した状態との差が大きいことを示す警告出力閾値のリストである。
【図１８】格納状態が乱れているかを判断する基準となる乱れ判定閾値のリストである。
【図１９】再編成処理の実行履歴である。
【図２０】従来技術における処理の概略フローである。
【図２１】本発明における解決手段の概略フローである。
【図２２】乱れを示す値がどのように変化したかを表す履歴推移傾向である。
【図２３】本発明の一例としての再編成時期予測装置の構成を説明ずる図である。
【図２４】本発明を実装した場合に、再編成時期を管理する管理者に対して再編成に関する警告を出力する表示画面例を示す図である。
【符号の説明】
【００７０】
101…データベース管理システム
102…格納状態変化記録
103…状態解析実行結果履歴
104…再編成時期予測結果
105…格納状態変化算出
106…現在格納状態算出
107…現在格納状態と予測値の比較
109…状態解析実行
110…格納状態変化記録初期化
112…再編成コマンド入力
113…再編成時期予測
114…予測結果保存出力
115…INSERT、UPDATE、DELETE処理実行
116…状態解析実行結果履歴保存
118…状態解析ユーティリティ
121…再編成契機メッセージ出力
125…予測補正結果出力
126…再編成時期予測
127…再編成ユーティリティ
201…コンピュータシステム
202…CPU
203…主記憶装置
204…端末
205…外部記憶装置
206…データベース格納領域
207…ネットワーク
208…フレキシブルディスクドライブ
209…DBMS処理プログラム
210…格納状態の乱れ要因リスト
211…警告出力閾値のリスト
212…状態解析処理プログラム
602…初期格納状態保存
603…初期格納状態
604…格納状態履歴
605…再編成時期表示
801…再編成警告出力
901…再編成実行時刻、処理時間記録
902…再編成履歴
903…次期状態解析実行推奨時期表示
904…履歴管理
905…再編成時期予測結果補正
【図１】
2005208953.tif 000003
【図２】
2005208953.tif 000004
【図３】
2005208953.tif 000005
【図４】
2005208953.tif 000006
【図５】
2005208953.tif 000007
【図６】
2005208953.tif 000008
【図７】
2005208953.tif 000009
【図８】
2005208953.tif 000010
【図９】
2005208953.tif 000011
【図１０】
2005208953.tif 000012
【図１１】
2005208953.tif 000013
【図１２】
2005208953.tif 000014
【図１３】
2005208953.tif 000015
【図１４】
2005208953.tif 000016
【図１５】
2005208953.tif 000017
【図１６】
2005208953.tif 000018
【図１７】
2005208953.tif 000019
【図１８】
2005208953.tif 000020
【図１９】
2005208953.tif 000021
【図２０】
2005208953.tif 000022
【図２１】
2005208953.tif 000023
【図２２】
2005208953.tif 000024
【図２３】
2005208953.tif 000025
【図２４】
2005208953.tif 000026