(57)【要約】【課題】データベースの運用保守業務に必要な時間を短縮する。【解決手段】記憶装置に格納されたデータベースを管理するデータベース管理装置において、記憶装置から読み出したデータをメモリに記憶するロード処理を実行し、メモリに記憶されたデータを読み書きすることによって業務処理を実行し、メモリに記憶されたデータを記憶装置に書き込むアンロード処理を実行し、ロード処理及びアンロード処理を実行する少なくともいずれか一方のタイミングで、メモリに記憶されたデータを利用して、データベースの運用処理を実行する。【選択図】図１
2010039819.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に格納されたデータベースを管理するデータベース管理装置におけるデータベース管理方法であって、
前記データベース管理装置は、前記記憶装置に接続されるインターフェース、前記インターフェースに接続されるプロセッサ及び前記プロセッサに接続されるメモリを備え、
前記方法は、
前記記憶装置から読み出したデータを前記メモリに記憶するロード処理を実行し、
前記メモリに記憶されたデータを読み書きすることによって業務処理を実行し、
前記メモリに記憶されたデータを前記記憶装置に書き込むアンロード処理を実行し、
前記ロード処理及び前記アンロード処理を実行する少なくともいずれか一方のタイミングで、前記メモリに記憶されたデータを利用して、前記データベースの運用処理を実行することを特徴とするデータベース管理方法。
【請求項２】
前記ロード処理を実行するタイミングで前記データベースの運用処理を実行する場合には、前記記憶装置からのデータの読み出しが完了し、かつ、前記メモリに記憶されたデータを利用して、前記データベースの運用処理を実行することを特徴とする請求項１に記載のデータベース管理方法。
【請求項３】
前記アンロード処理を実行するタイミングで前記データベースの運用処理を実行する場合には、前記メモリに記憶され、かつ、前記記憶装置にデータの書き込みが完了したデータを利用して、前記データベースの運用処理を実行することを特徴とする請求項１に記載のデータベース管理方法。
【請求項４】
前記業務処理に前記データを更新する処理が含まれる場合には、前記アンロード処理を実行するタイミングで前記データベースの運用処理を実行することを特徴とする請求項１に記載のデータベース管理方法。
【請求項５】
前記業務処理に前記データを更新する処理が含まれない場合には、前記ロード処理を実行するタイミングで前記データベースの運用処理を実行することを特徴とする請求項１に記載のデータベース管理方法。
【請求項６】
前記データベース管理装置は、前記データベースのバックアップデータを格納するバックアップ装置にさらに接続され、
前記データベースの運用処理は、前記メモリに記憶されたデータを前記バックアップ装置に格納する処理であることを特徴とする請求項１に記載のデータベース管理方法。
【請求項７】
前記データベースの運用処理は、
前記メモリに記憶されたデータを、前記メモリ上に割り当てられた詰め替え用バッファにレコード単位で順次格納し、
前記詰め替え用バッファに格納されたデータを前記記憶装置に格納することによって前記データベースを再編成する処理であることを特徴とする請求項１に記載のデータベース管理方法。
【請求項８】
前記データベース管理装置は、前記データベースを構成するオブジェクトの統計情報に基づいて、前記データベースに対するアクセス要求の処理を最適化し、
前記データベースの運用処理は、前記メモリに記憶されたデータに基づいて、前記処理を最適化するための統計情報を生成する処理であることを特徴とする請求項１に記載のデータベース管理方法。
【請求項９】
記憶装置に格納されたデータベースを管理するデータベース管理装置であって、
前記記憶装置に接続されるインターフェース、前記インターフェースに接続されるプロセッサ及び前記プロセッサに接続されるメモリを備え、
前記プロセッサは、
前記記憶装置からデータを読み出し、前記読み出されたデータを前記メモリに記憶するロード処理を実行し、
前記メモリに記憶されたデータを読み書きすることによって業務処理を実行し、
前記メモリに記憶されたデータを前記記憶装置に書き込むアンロード処理を実行し、
前記ロード処理及び前記アンロード処理を実行する少なくともいずれか一方のタイミングで、前記メモリに記憶されたデータを利用して、前記データベースの運用処理を実行することを特徴とするデータベース管理装置。
【請求項１０】
記憶装置に格納されたデータベースを管理するデータベース管理装置で実行されるデータベース管理プログラムであって、
前記記憶装置からデータを読み出し、前記読み出されたデータを前記メモリに記憶するロード処理を実行する手順と、
前記メモリに記憶されたデータを読み書きすることによって業務処理を実行する手順と、
前記メモリに記憶されたデータを前記記憶装置に書き込むアンロード処理を実行する手順と、
前記ロード処理及び前記アンロード処理を実行する少なくともいずれか一方のタイミングで、前記メモリに記憶されたデータを利用して、前記データベースの運用処理を実行する手順と、を含むことを特徴とするデータベース管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースの運用業務の所要時間を短縮する技術に関する。
【背景技術】
【０００２】
企業では、情報を管理するためにデータベースを含むシステムが一般的に利用されている。また、データベースを含むシステムでは、データのバックアップを取得するなどの運用業務が定期的に行われている。
【０００３】
また、データベースを含むシステムでは、オンライン業務によって蓄積及び更新されたデータをバッチ業務で一括して処理することによって集計し、集計された情報を経営判断などに利用することがある。
【０００４】
蓄積された情報を集計するようなバッチ業務では、大量のデータにアクセスする必要があるため、バッチ業務の実行中にはシステムの負荷が増大しやすい。特に、ディスクドライブなどの外部記憶媒体にデータが格納されている場合には、データの入出力による負荷が大きくなる。このため、バッチ業務は、負荷が比較的小さい夜間などに実行される場合が多い。
【０００５】
そこで、データの入出力による負荷を低減させるために、外部記憶媒体に対するデータの入出力回数を少なくする技術が提案されている。例えば、データベースに対する複数の全件検索要求を受け付けた場合に、メモリ上に読み出されたデータを再利用することによって、外部記憶媒体に対するデータの入出力回数を減少させ、応答時間の短縮及びスループットの向上を図る技術が開示されている（特許文献１参照）。
【０００６】
また、近年、大容量のメモリをシステムに搭載可能になったため、不揮発性の記憶装置に格納されたデータをメモリ上に記憶させ、当該データを読み書きすることによって処理の高速化を図るインメモリデータベースが登場している。特に、バッチ業務を実行する場合には、処理中に外部記憶媒体にアクセスする必要がないため、システムの負荷の低減に大きな効果を得ることができる。
【特許文献１】特開平０８−６８２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
インメモリデータベースでは、データベースの運用業務、例えば、データのバックアップを取得する場合には、バックアップ中にデータが更新されることを防止するために、オンライン業務を停止させる。また、バックアップを取得する手順としては、まず、オンライン業務を停止し、メモリ上に記憶されているデータを外部記憶媒体に書き出す。その後、外部記憶媒体に格納されたデータを読み出し、バックアップを格納する記憶媒体に読み出されたデータを書き込む。
【０００８】
したがって、オンライン業務の終了時に外部記憶媒体にデータが書き込まれ、さらに、バックアップを取得する場合に外部記憶媒体からデータが読み出される。また、バッチ業務を実行するためにインメモリデータ処理を実行するためには、データをインメモリ化する際に、さらに、外部記憶媒体からデータを読み出してメモリに記憶する必要がある。
【０００９】
以上のように頻繁に外部記憶媒体に格納されたデータを読み書きすると、システムの負荷が増大してしまう。また、データベースの容量が大きければ、バックアップの取得及びデータのインメモリ化によってさらに負荷が増大し、データベースの運用業務及びバッチ業務の所要時間、すなわち、オンライン業務の停止時間が増大してしまう。
【００１０】
本発明では、外部記憶媒体にアクセスする頻度を低減することによって、バックアップなどの運用業務に必要な時間を短縮し、オンライン業務の停止時間を短縮するための技術を提供する。
【課題を解決するための手段】
【００１１】
本発明の一形態では、記憶装置に格納されたデータベースを管理するデータベース管理装置におけるデータベース管理方法であって、前記データベース管理装置は、前記記憶装置に接続されるインターフェース、前記インターフェースに接続されるプロセッサ及び前記プロセッサに接続されるメモリを備え、前記方法は、前記記憶装置から読み出したデータを前記メモリに記憶するロード処理を実行し、前記メモリに記憶されたデータを読み書きすることによって業務処理を実行し、前記メモリに記憶されたデータを前記記憶装置に書き込むアンロード処理を実行し、前記ロード処理及び前記アンロード処理を実行する少なくともいずれか一方のタイミングで、前記メモリに記憶されたデータを利用して、前記データベースの運用処理を実行する。
【発明の効果】
【００１２】
本発明の代表的な一形態によれば、メモリに記憶されたデータを利用してバックアップなどのデータベースの運用処理を実行することによって、外部記憶媒体からデータを読み出す時間を削減することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１４】
図１は、本発明の実施の形態の計算機システムの構成を示す図である。
【００１５】
本発明の実施の形態の計算機システムは、データベース管理装置１００、ストレージ装置１５０、端末１７０、及びバックアップ装置１８０を含む。データベース管理装置１００、ストレージ装置１５０、端末１７０、及びバックアップ装置１８０は、ネットワークを介して互いに接続される。
【００１６】
データベース管理装置１００は、ストレージ装置１５０に格納されたデータを管理する。また、データベース管理装置１００は、端末１７０からデータのアクセス要求を受け付け、管理対象のデータの読み書きを制御する。また、データベース管理装置１００によって管理されるデータは、バックアップ装置１８０にバックアップデータが格納される。
【００１７】
また、データベース管理装置１００は、インメモリデータ処理を実行することが可能である。インメモリデータ処理とは、ストレージ装置１５０に格納されている管理対象のデータをメモリ１２０に格納し、データのアクセス要求を受け付けた場合にはメモリ１２０に記憶されているデータにアクセスするように制御する処理である。ストレージ装置１５０にアクセスする必要がなくなるため、データアクセスの応答性能を向上させることができる。
【００１８】
ストレージ装置１５０は、前述したように、データベース管理装置１００によって管理されるデータを格納する。なお、ストレージ装置１５０にデータを格納せずに、データベース管理装置１００にディスクドライブなどの記憶装置を搭載し、当該記憶装置にデータを格納するようにしてもよい。また、データベース管理装置１００とストレージ装置１５０とは、イーサネット（「イーサネット」は登録商標、以下同じ）などによって接続されてもよいし、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などによって接続されてもよい。
【００１９】
端末１７０は、利用者からの入力を受け付け、データベース管理装置１００にデータのアクセス要求などを送信する。
【００２０】
バックアップ装置１８０は、前述したように、データベース管理装置１００によって管理されるデータのバックアップを格納する。バックアップ装置１８０は、例えば、ストレージ装置であるが、データベース管理装置１００に直接接続された外部記憶媒体であってもよいし、テープデバイスなどであってもよい。
【００２１】
ここで、データベース管理装置１００の構成について説明する。データベース管理装置１００は、プロセッサ１１０、メモリ１２０、及びインターフェース１４０を含む。
【００２２】
プロセッサ１１０は、メモリ１２０に記憶されたプログラムを処理することによって、各種業務処理を実行する。メモリ１２０は、プロセッサ１１０によって処理されるプログラム及び当該プログラムによって利用されるデータを記憶する。なお、メモリ１２０に記憶されたプログラム及びデータについては後述する。
【００２３】
インターフェース１４０は、ネットワーク１６０に接続し、端末１７０及びバックアップ装置１８０に接続する。
【００２４】
ここで、メモリ１２０に記憶されたプログラム及びデータについて説明する。メモリ１２０には、プログラムとして、ＤＢアクセス要求解析部１２１、ＤＢアクセス処理部１２２、インメモリ要求解析部１２３、インメモリ処理部１２４、及びＤＢ運用処理部１２５が記憶される。さらに、インメモリ管理テーブル１３１が記憶される。データベースに格納されたデータ又は一時的にデータを格納するための記憶領域として、インメモリデータバッファ１３２、グローバルバッファ１３３、ログ用バッファ１３４、及びワークエリア１３５がメモリ１２０に割り当てられる。
【００２５】
ＤＢアクセス要求解析部１２１は、端末１７０などによって送信されたデータアクセス要求を受け付け、要求された内容を解析する。ＤＢアクセス処理部１２２は、端末１７０によって送信されたデータアクセス要求の解析結果に基づいて、データベース１５２に格納されたデータを読み書きする。
【００２６】
インメモリ要求解析部１２３は、前述したインメモリデータ処理の実行又は解除などのコマンドを受け付け、解析する。インメモリ処理部１２４は、インメモリ要求解析部１２３が受け付けたコマンドの解析結果に基づいて、インメモリデータ処理を制御する。
【００２７】
ＤＢ運用処理部１２５は、バックアップなどの運用に必要な処理を実行するためのプログラム群である。ＤＢ運用処理部１２５には、一例として、ＤＢバックアップ処理部１２６、ＤＢ再編成処理部１２７及びＤＢ最適化情報取得処理部１２８を含む。
【００２８】
ＤＢバックアップ処理部１２６は、ストレージ装置１５０に格納されたＤＢ定義情報１５１、データベース１５２及びログ１５３をバックアップする。本発明の実施の形態では、バックアップ装置１８０に格納されたバックアップ１８５にバックアップデータが格納される。
【００２９】
ＤＢ再編成処理部１２７は、データベースに格納されたデータの物理的な格納順序を再編成する。データベースは、データの削除及び追加が繰り返し実行されると、各レコードが格納された物理的な領域が断片化される。データベースの再編成とは、レコードの物理的な格納順序と論理的な格納順序とを整合させてＤＢ領域にデータを再格納することによって断片化を解消することである。
【００３０】
ＤＢ最適化情報取得処理部１２８は、データベースの性能を最適化するために、当該データベースを構成するオブジェクトの統計情報などを含む最適化情報を取得する。データベースの性能の最適化は、例えば、データの検索処理の高速化である。また、データベースを構成するオブジェクトには、データを格納する表及び検索を高速化するための索引情報などが含まれる。オブジェクトの統計情報には、例えば、オブジェクトが表の場合、レコード数及びデータ容量などが含まれる。したがって、データの更新などにともなって最適化情報が変化するため、データベースの性能を維持するためには、定期的に最適化情報を取得し、データベースをチューニングする必要がある。
【００３１】
インメモリ管理テーブル１３１は、インメモリデータバッファ１３２を管理するためのテーブルである。インメモリ管理テーブル１３１の詳細については、図２にて後述する。
【００３２】
インメモリデータバッファ１３２は、データベース１５２に格納されたデータがＤＢ領域単位（例えば、ファイルなど）に記憶される領域である。グローバルバッファ１３３には、データベース１５２に格納されたデータがページ単位で記憶される。メモリ１２０とストレージ装置１５０との間のデータの入出力はページ単位で管理される。
【００３３】
ログ用バッファ１３４は、データが更新される場合にログ情報を一時的に記憶する領域である。ワークエリア１３５は、一時的にデータを格納するための領域である。例えば、データをソート場合などに使用され、処理中に一時的に使用されるポインタなどの変数が格納される。
【００３４】
ストレージ装置１５０は、コントローラ１５４、インターフェース１５５及び記憶装置１５６を含む。
【００３５】
コントローラ１５４は、データベース管理装置１００からの要求に基づいて、データの入出力を制御する。インターフェース１５５は、ネットワークを介してデータベース管理装置１００と接続する。
【００３６】
記憶装置１５６は、データベース（ＤＢ）定義情報１５１、データベース１５２、及びログ１５３を格納する。
【００３７】
ＤＢ定義情報１５１は、管理されているデータベースのスキーマ情報などが格納される。例えば、データが表形式で格納されている場合には、表を格納するフィールド名、データ型などの定義情報が格納される。
【００３８】
データベース１５２は、管理対象であるデータそのものが格納される。ログ１５３は、データベース１５２に格納されたデータの更新履歴が格納される。ログ１５３に格納されたログ情報によって、障害発生時などにデータを回復させることができる。
【００３９】
バックアップ装置１８０は、コントローラ１８１、インターフェース１８２及び記憶装置１８３を含む。
【００４０】
コントローラ１８１は、データベース管理装置１００からの要求に基づいて、データの入出力を制御する。インターフェース１８２は、ネットワークを介してデータベース管理装置１００と接続する。記憶装置１８３は、データベース管理装置１００で管理されるデータのバックアップデータを格納する。
【００４１】
図２は、本発明の実施の形態のインメモリ管理テーブル１３１の一例を示す図である。
【００４２】
インメモリ管理テーブル１３１は、前述したように、インメモリデータバッファ１３２を管理する。具体的には、ストレージ装置１５０においてデータが物理的に格納されている領域（ファイル）と、インメモリデータバッファ１３２に格納された領域との対応を管理する。
【００４３】
インメモリ管理テーブル１３１は、データベース（ＤＢ）領域名２０１、ファイル名２０２、サイズ２０３、更新有無フラグ２０４、インメモリバッファアドレス２０５、及びカレントポインタ２０６を含む。
【００４４】
ＤＢ領域名２０１は、データを記憶する領域（ＤＢ領域）を識別する名前である。ＤＢ領域は、１以上のファイルによって提供される。ＤＢ領域には、ページ単位でデータが格納される。ファイル名２０２は、ＤＢ領域を提供するファイルの名前である。サイズ２０３は、ＤＢ領域のサイズ（容量）である。
【００４５】
更新有無フラグ２０４は、ＤＢ領域がインメモリデータバッファ１３２に存在する場合に、格納されたデータが更新されたか否かを示すフラグである。ＤＢ領域に格納されたデータが更新された場合には「ＯＮ」を設定し、更新されていない場合には「ＯＦＦ」を設定する。なお、データベース１５２に更新が反映された場合には、更新有無フラグ２０４を「ＯＮ」に設定する。
【００４６】
インメモリバッファアドレス２０５は、ＤＢ領域が割り当てられたインメモリデータバッファ１３２上のアドレスである。カレントポインタ２０６は、データが順次読み出される場合に、現在読み出されている領域のアドレスである。
【００４７】
なお、インメモリ管理テーブル１３１は、データベースが起動されたタイミングで作成されてもよいし、インメモリデータ処理の実行の際に作成するようにしてもよい。
【００４８】
ここで、図３から図７を参照しながらデータベース管理装置１００による運用手順について説明する。ここで説明する運用手順では、まず、オンライン業務を停止し、バッチ業務１及びバッチ業務２を実行する。バッチ業務終業後、オンライン業務を再開する。本発明の実施の形態では、バッチ業務の開始又は終了時に運用業務を行うことによって、運用業務に要する時間を低減させる。
【００４９】
バッチ業務では、インメモリデータバッファ１３２にデータベース１５２に格納されたデータをすべて読み出して処理を実行する。一方、オンライン業務では、データベース１５２に格納されたデータを、グローバルバッファにページごとに読み出して処理を実行する。
【００５０】
バッチ業務のように、大量のデータを読み書きする処理を実行する場合には、ストレージ装置１５０に対するデータの入出力によって、パフォーマンスが悪化してしまう。データをすべてメモリ上にロードすることによって、ストレージ装置１５０に対するデータの入出力を最小限に抑えることができる。
【００５１】
また、通常、データをバックアップする場合には、データベース１５２に格納されたデータを読み出し、読み出されたデータがバックアップ先に書き込まれる。データベース１５２に格納されたデータを読み出す処理は、ストレージ装置１５０に対して大量のデータ入出力が行われるため、システムに大きな負荷を与える。
【００５２】
本発明の実施の形態では、インメモリデータ処理の実行時に、データをインメモリデータバッファ１３２にデータを読み出すタイミングでデータベースのバックアップなどの運用処理を実施することによって、ストレージ装置１５０に対するデータ入出力による負荷の増大を抑制する。
【００５３】
図３は、本発明の実施の形態のデータベース管理装置１００による運用手順を示す図である。図３では、オンライン業務を停止させ、グローバルバッファに格納されたデータとデータベース１５２に格納されたデータとを同期させる処理について説明する。
【００５４】
オンライン業務では、データがデータベース１５２から読み出され、グローバルバッファに格納される。図３を参照すると、一例として、ＤＢ領域「ＤＢＡＲＥＡ１」からグローバルバッファプール１にテーブル３０１に読み出される。このとき、テーブル３０１のインデクス３０２がグローバルバッファプール２に読み出される（図３左側）。その後、オンライン業務停止時には、オンライン業務によって、テーブル３０１及びインデクス３０２の内容が更新されている。
【００５５】
オンライン業務停止後、データベース管理装置１００のプロセッサ１１０は、グローバルバッファに格納されているデータとデータベース１５２に格納されているデータとを同期させる（手順１、図３右側）。
【００５６】
図４は、本発明の実施の形態のデータベース管理装置１００による運用手順を示す図である。図４では、オンライン業務停止後、バッチ業務を開始する前にバックアップを取得する処理について説明する。
【００５７】
バッチ業務は、前述したように、インメモリデータ処理で実行される。したがって、バッチ業務を開始する前に、まず、データベース管理装置１００のプロセッサ１１０によって、インメモリ処理部１２４が実行され、データベース１５２に格納されたデータがインメモリデータバッファ１３２に読み出される（手順２）。
【００５８】
インメモリデータバッファ１３２及びデータベース１５２は、インメモリデータバッファ１３２にデータが読み出された時点で、同期された状態になっている。したがって、インメモリデータバッファ１３２に読み出されたデータを利用して運用業務を実行することによって、ストレージ装置１５０から別途データを読み出さずに運用業務を実行することが可能となる。
【００５９】
また、バッチ業務を開始する前に運用業務を実行する場合には、バッチ業務と運用業務とを並行して実行することによって、オンライン業務の停止時間を短縮することが可能となる。
【００６０】
図５は、本発明の実施の形態のデータベース管理装置１００による運用手順を示す図である。図５では、バッチ業務１によって更新されたインメモリデータバッファ１３２に格納されたデータと、データベース１５２に格納されたデータとを同期させるとともに、運用業務を実行する手順について説明する。
【００６１】
データベース１５２に格納されたデータがインメモリデータバッファ１３２に読み出されると、バッチ業務１が開始される（手順３、図５左側）。バッチ業務１に更新処理が含まれていると、インメモリデータバッファ１３２に格納されたデータと、データベース１５２に格納されたデータとが一致しない非同期状態になる。
【００６２】
バッチ業務１が終了した時点では、インメモリデータバッファ１３２と、データベース１５２とが非同期状態になっているため、インメモリデータバッファ１３２とデータベース１５２とを同期させる（手順４−１、図５右側）。このとき、並行してインメモリデータバッファ１３２に格納された更新済みデータを利用してバックアップなどの運用業務を実行することができる。
【００６３】
なお、バッチ業務１終了後に継続して他のバッチ業務を実施する場合には、インメモリデータバッファ１３２とデータベース１５２とを同期させずに、バッチ業務を継続して実施してもよい。この場合には、さらにストレージ装置１５０に対するデータ入出力を削減することができるため、バッチ業務に要する時間を削減することが可能となる。しかし、後続のバッチ業務における処理が失敗した場合には、データベース１５２に格納されたデータ又は最新のバックアップデータをインメモリ化し、バッチ業務を再実行する必要がある。
【００６４】
図６は、本発明の実施の形態のデータベース管理装置１００による運用手順を示す図である。図６では、バッチ業務２の開始から、終了後にインメモリデータバッファ１３２に格納されたデータによって、データベース１５２を再編成させる手順について説明する。
【００６５】
バッチ業務１が終了した後、インメモリデータバッファ１３２とデータベース１５２との同期が完了すると、バッチ業務２が開始される（図６左側）。
【００６６】
バッチ業務２が完了すると、インメモリデータバッファ１３２に格納されたデータをデータベース１５２に反映させる。図６に示す場合には、インメモリデータバッファ１３２に格納されたデータをそのままデータベース１５２に反映させるのではなく、運用業務の一つであるデータベース再編成を実行する（手順４−２、図６右側）。データベースの再編成とは、前述したように、ＤＢ領域の断片化が解消されるように、データを再格納することである。具体的には、インメモリデータバッファ１３２に格納されたデータをレコード単位でバッファ（ワークエリア１３５）に格納し、格納されたデータ容量が１ページの容量になった場合にデータベース１５２に書き込む。
【００６７】
さらに、この時点で、インメモリデータバッファ１３２に格納されたデータを利用して、バックアップを取得したり、前述したデータベースを構成するオブジェクトの統計情報を含む最適化情報を取得したりしてもよい。
【００６８】
図７は、本発明の実施の形態のデータベース管理装置１００による運用手順を示す図である。図７では、バッチ業務２の終了後、オンライン業務を再開する手順について説明する。
【００６９】
本発明の実施の形態では、一連のバッチ業務がすべて終了し、オンライン業務を再開する場合には、まず、インメモリデータバッファ１３２をメモリ１２０から削除する（手順５）。その後、グローバルバッファ１３３を使用してオンライン業務を再開する（手順６）。
【００７０】
以上に示したように、オンライン業務を停止した後、バッチ業務の実行前又は実行後のタイミングで運用業務としてデータベース運用処理が実行される。そこで、バッチ業務の実行するコマンドにオプションとして、当該バッチ業務の実行前又は実行後にデータベース運用処理を実行するように指定することが可能である。
【００７１】
また、データベース運用処理がバックアップの取得であって、バッチ業務に更新処理が含まれている場合には、バッチ業務の実行前にバックアップを取得しても直後に更新されてしまう。この場合には、バッチ業務の実行後にバックアップを取得すれば最新のバックアップを取得することができる。一方、バッチ業務に更新処理が含まれていなければ、バッチ業務と並行してバックアップを取得することができるため、バッチ業務及びデータベース運用処理の処理時間の合計を短縮することが可能となる。また、バッチ業務に更新処理が含まれる場合には、バッチ業務の失敗に備えてバッチ業務の実行前及び実行後にバックアップを取得するようにしてもよい。
【００７２】
さらに、バッチ業務の内容を解析し、バッチ業務に更新処理が含まれているか否かを判定し、判定結果に基づいてバックアップを実行するタイミングを自動的に決定するようにしてもよい。
【００７３】
続いて、メモリロード時及びメモリアンロード時にバックアップなどのデータベース運用処理を実行する処理の概要について説明する。メモリロード時及びメモリアンロード時にバックアップ処理を実行する処理の概要について、図８及び図９を参照しながら説明する。さらに、図１０を参照しながらメモリアンロード時にデータベースを再編成する処理の概要について説明する。
【００７４】
図８は、本発明の実施の形態のメモリロード処理におけるバックアップ処理の概要を説明する図である。
【００７５】
メモリロード処理は、バッチ業務を開始する前に、データベース１５２からインメモリデータバッファ１３２にデータをロードする処理である。
【００７６】
メモリロード処理におけるデータベース運用処理は、前述したように、実行されるバッチ業務に更新処理が含まれない場合に特に有効である。バッチ業務と並行してバックアップを取得できるため、バッチ業務及びデータベース運用処理の処理時間の合計を短縮することが可能となる。
【００７７】
図８に示す処理では、データベース１５２からインメモリデータバッファ１３２にデータがロードされた後、ロードされたデータをページごとにバックアップ１８５に書き込むことによってバックアップを取得する。
【００７８】
データベース１５２は、ページごとに領域が分割され、データが格納されている。データベース管理装置１００のプロセッサ１１０は、インメモリ処理部１２４を実行することによって、データベース１５２に格納されたデータを先頭アドレスから順次インメモリデータバッファ１３２にロードする。カレントポインタ８０１は、インメモリデータバッファ１３２にロードが完了したページのアドレスである。
【００７９】
データベース管理装置１００のプロセッサ１１０は、ＤＢ運用処理部１２５のＤＢバックアップ処理部１２６を実行することによって、インメモリデータバッファ１３２にロードされたデータをページごとに順次バックアップ１８５に書き込む。バックアップポインタ８０２は、インメモリデータバッファ１３２からバックアップ１８５にデータが書き込まれたページのアドレスである。
【００８０】
カレントポインタ８０１及びバックアップポインタ８０２は、インメモリデータバッファ１３２内のアドレスを示しており、データベース１５２からデータの読み出し、及びバックアップ１８５へのデータの書き込みの進捗に応じて値が更新される。また、バックアップポインタ８０２がカレントポインタ８０１を追い越すことはなく、バックアップポインタ８０２がカレントポインタ８０１に追いついた場合には、インメモリデータバッファ１３２にデータがロードされるまで待機する。
【００８１】
図９は、本発明の実施の形態のメモリアンロード処理におけるバックアップ処理の概要を説明する図である。
【００８２】
メモリアンロード処理は、バッチ業務が終了した後、インメモリデータバッファ１３２に格納されたデータをデータベース１５２に反映させる処理である。バッチ業務に更新処理が含まれる場合に、更新後のデータに基づいてデータベース運用処理が実行される場合に本処理が実行される。
【００８３】
図９に示す処理では、インメモリデータバッファ１３２に格納されたデータをデータベース１５２に反映させた後、ページごとにバックアップ１８５にデータを書き込む。
【００８４】
データベース管理装置１００のプロセッサ１１０は、インメモリ処理部１２４を実行することによって、インメモリデータバッファ１３２格納されたデータを先頭アドレスから順次データベース１５２に書き込む。カレントポインタ８０１は、データベース１５２に書き込みが終了したページのアドレスである。
【００８５】
データベース管理装置１００のプロセッサ１１０は、メモリロード処理におけるバックアップ処理と同様に、ＤＢ運用処理部１２５のＤＢバックアップ処理部１２６を実行することによって、インメモリデータバッファ１３２にロードされたデータをページごとに順次バックアップ１８５に書き込む。バックアップポインタ８０２は、インメモリデータバッファ１３２からバックアップ１８５にデータが書き込まれたページのアドレスである。
【００８６】
図１０は、本発明の実施の形態のメモリアンロード処理におけるデータベース再編成処理の概要を説明する図である。
【００８７】
データベース再編成処理では、断片化して格納されたデータを再編成することによって、断片化を解消する。インデクスについても同様に断片化を解消する。
【００８８】
本発明の実施の形態のデータベース再編成処理では、バッチ業務終了後、インメモリデータバッファ１３２に格納されたデータを、一旦、詰め替えバッファにレコードごとに格納し、ページごとにデータベース１５２に書き込む。なお、詰め替えバッファは、メモリ１２０のワークエリア１３５に作成され、データベース再編成処理が終了すると削除される。
【００８９】
データベース管理装置１００のプロセッサ１１０は、ＤＢ運用処理部１２５のＤＢ再編成処理部１２７を実行することによって、インメモリデータバッファ１３２に格納されたデータを再編成し、ページごとにデータベース１５２に書き込む。カレントポインタ８０１は、詰め替えバッファにレコードの書き込みが終了したページのアドレスである。
【００９０】
データベース管理装置１００のプロセッサ１１０は、ＤＢ再編成処理部１２７を実行し、再編成されたデータのインデクスについても再編成を実行する。再編成されたインデクスは、インデクス情報ファイルに書き込まれる。インデクス情報ファイルは、ワークエリア１３５に作成される。ＤＢ再編成ポインタ９０１は、インデクス情報ファイルにインデクス情報の書き込みが終了したページのアドレスである。
【００９１】
カレントポインタ８０１及びＤＢ再編成ポインタ９０１は、インメモリデータバッファ１３２内のアドレスを示している。インデクスの再編成は、データの再編成の後に行われるため、カレントポインタ８０１がＤＢ再編成ポインタ９０１よりも常に先行するように制御される。
【００９２】
データベース管理装置１００のプロセッサ１１０は、データベース１５２に対する再編成が終了すると、インデクス情報ファイルに基づいて、インデクスの再編成を実行する。インデクスの再編成が終了すると、ワークエリア１３５に作成されたインデクス情報ファイルを削除し、データベース再編成処理を終了する。
【００９３】
ここで、メモリロード処理及びメモリアンロード処理の詳細について説明する。
【００９４】
図１１は、本発明の実施の形態のメモリロード処理の手順を説明するフローチャートである。
【００９５】
データベース管理装置１００のプロセッサ１１０は、インメモリデータ処理の要求を受け付けると、まず、インメモリ要求解析部１２３によって、受け付けた要求に基づいてインメモリ化する対象のデータベース領域を解析する（Ｓ１１０１）。インメモリデータ処理は、例えば、バッチ業務の開始前などに要求される。データベース領域の解析には、インメモリ化する対象のデータベース領域の妥当性の判定、指定されたデータベース領域のサイズの取得などが含まれる。
【００９６】
続いて、データベース管理装置１００のプロセッサ１１０は、インメモリ処理部１２４を実行することによって、Ｓ１１０１の解析処理の結果に基づいて、インメモリデータバッファ１３２をメモリ１２０に割り当てる（Ｓ１１０２）。さらに、カレントポインタを割り当てられたインメモリデータバッファ１３２の先頭アドレスに設定することによって初期化する（Ｓ１１０３）。
【００９７】
その後、データベース管理装置１００のプロセッサ１１０は、ＤＢ運用処理部１２５を実行し、データベース運用処理を開始する（Ｓ１１０４）。ＤＢ運用処理部１２５には、前述したように、ＤＢバックアップ処理部１２６などが含まれる。ＤＢ運用処理部１２５の詳細については、図１３から図１５にて説明を後述する。
【００９８】
データベース管理装置１００のプロセッサ１１０は、インメモリ処理部１２４によって、データベース１５２からデータを読み出し、ページごとにインメモリデータバッファ１３２に格納する（Ｓ１１０５）。インメモリデータバッファ１３２にデータが格納されると、カレントポインタが格納されたデータのアドレスに更新される（Ｓ１１０６）。
【００９９】
さらに、データベース管理装置１００のプロセッサ１１０は、データが最後まで読み出された否かを判定する（Ｓ１１０７）。データの読み出しが完了した場合には（Ｓ１１０７の結果が「Ｙｅｓ」）、メモリロード処理を完了する。データの読み出しが完了していない場合には（Ｓ１１０７の結果が「Ｎｏ」）、データの読み出しを継続する（Ｓ１１０５）。
【０１００】
図１２は、本発明の実施の形態のメモリアンロード処理の手順を説明するフローチャートである。
【０１０１】
データベース管理装置１００のプロセッサ１１０は、インメモリデータバッファ１３２に格納されたデータをデータベース１５２に書き込む場合には、まず、インメモリ処理部１２４によって、インメモリ化されたデータベース領域を解析する（Ｓ１２０１）。さらに、カレントポインタを割り当てられたインメモリデータバッファ１３２の先頭アドレスに設定することによって初期化する（Ｓ１２０２）。
【０１０２】
その後、データベース管理装置１００のプロセッサ１１０は、ＤＢ運用処理部１２５を実行し、データベース運用処理を開始する（Ｓ１２０３）。
【０１０３】
データベース管理装置１００のプロセッサ１１０は、インメモリ処理部１２４を実行し、インメモリデータバッファ１３２に格納されたデータが、インメモリデータ処理によって更新されたか否かを判定する（Ｓ１２０４）。インメモリデータバッファ１３２に格納されたデータの更新の有無は、インメモリ管理テーブル１３１の更新有無フラグ２０４を参照することによって判定することができる。
【０１０４】
データベース管理装置１００のプロセッサ１１０は、インメモリデータバッファ１３２に格納されたデータが更新された場合には（Ｓ１２０４の結果が「Ｙｅｓ」）、データベース１５２に更新内容を反映させる必要があるため、データベース１５２にデータを書き込む必要がある。データベース管理装置１００のプロセッサ１１０は、まず、ＤＢ再編成が要求されているか否かを判定する（Ｓ１２０５）。
【０１０５】
データベース管理装置１００のプロセッサ１１０は、ＤＢ再編成が要求されていない場合には（Ｓ１２０５の結果が「Ｎｏ」）、更新されたデータをデータベース１５２に書き込む（Ｓ１２０６）。
【０１０６】
データベース管理装置１００のプロセッサ１１０は、ＤＢ再編成が要求されていた場合（Ｓ１２０５の結果が「Ｙｅｓ」）、又は更新されたデータをデータベース１５２に書き込みが終了した場合には、書き込みが完了したデータのアドレスにカレントポインタを更新する（Ｓ１２０７）。なお、ＤＢ再編成を実行する場合には、Ｓ１２０３の処理で本処理と並行して実行されているＤＢ再編成処理によってデータベース１５２にデータが書き込まれるため、Ｓ１２０６の処理を実行しない。データベース再編成処理については、図１４にて後述する。なお、ＤＢ再編成処理が失敗した場合に備えて、Ｓ１２０３の処理でバックアップを取得するようにしてもよい。
【０１０７】
データベース管理装置１００のプロセッサ１１０は、カレントポインタがＤＢ領域の終端に到達したか否かを判定する（Ｓ１２０８）。カレントポインタがＤＢ領域の終端に到達していない場合には（Ｓ１２０８の結果が「Ｎｏ」）、インメモリデータバッファ１３２に格納された未処理のデータに対してＳ１２０５からＳ１２０７の処理を継続する。
【０１０８】
データベース管理装置１００のプロセッサ１１０は、カレントポインタがＤＢ領域の終端に到達した場合には（Ｓ１２０８の結果が「Ｙｅｓ」）、再度、ＤＢ再編成が要求されているか否かを判定する（Ｓ１２０９）。ＤＢ再編成が要求されている場合には（Ｓ１２０９の結果が「Ｙｅｓ」）、並行して実行されているＤＢ再編成処理の実行が完了するまで待機する（Ｓ１２１０）。
【０１０９】
データベース管理装置１００のプロセッサ１１０は、ＤＢ再編成が要求されていない場合（Ｓ１２０９の結果が「Ｎｏ」）、又はＤＢ再編成処理の実行が完了した場合には、メモリ１２０に割り当てられたインメモリデータバッファ１３２を解放し、メモリアンロード処理を終了する。
【０１１０】
以上、データベース運用処理を実行するタイミングであるデータロード処理及びデータアンロード処理について説明した。続いて、データロード処理及びデータアンロード処理において実行されるデータベース運用処理の詳細について、図１３から図１５を参照しながら説明する。
【０１１１】
図１３は、本発明の実施の形態のＤＢバックアップ処理の手順を説明するフローチャートである。
【０１１２】
ＤＢバックアップ処理は、前述したように、ＤＢバックアップ処理部１２６がデータベース管理装置１００のプロセッサ１１０に処理されることによって実行される。
【０１１３】
データベース管理装置１００のプロセッサ１１０は、データロード処理又はデータアンロード処理によって、ＤＢバックアップ処理の実行が要求されると、まず、バックアップを格納するためのバックアップファイルを初期化する（Ｓ１３０１）。バックアップファイルの初期化とは、例えば、バックアップ装置１８０の記憶装置１８３にバックアップを格納するためのファイルを新たに生成することである。
【０１１４】
データベース管理装置１００のプロセッサ１１０は、続いて、バックアップポインタを初期化する（Ｓ１３０２）。バックアップポインタは、前述したように、バックアップの格納が完了したページのアドレスである。バックアップポインタの初期化とは、バックアップポインタをインメモリデータバッファ１３２の先頭アドレスに設定することである。
【０１１５】
データベース管理装置１００のプロセッサ１１０は、カレントポインタがバックアップポインタよりも先行しているか否かを判定する（Ｓ１３０３）。カレントポインタは、前述したように、データロード時にデータベース１５２からインメモリデータバッファ１３２に格納されたデータのアドレス又はデータアンロード時にインメモリデータバッファ１３２からデータベース１５２に格納されたデータのアドレスである。
【０１１６】
データベース管理装置１００のプロセッサ１１０は、カレントポインタがバックアップポインタよりも先行していない場合（Ｓ１３０３の結果が「Ｎｏ」）、すなわち、バックアップポインタがカレントポインタに追いついている場合には、データのロード済み又はアンロード済みのデータが存在しないため、現時点でバックアップ可能なデータが存在しないこととなるため、データがロード又はアンロードされるまで待機する。
【０１１７】
一方、データベース管理装置１００のプロセッサ１１０は、カレントポインタがバックアップポインタよりも先行している場合には（Ｓ１３０３の結果が「Ｙｅｓ」）、バックアップ可能なデータが存在するため、Ｓ１３０１の処理で初期化されたバックアップファイルにデータを書き込む（Ｓ１３０４）。バックアップファイルにバックアップ可能なデータを書き込むと、バックアップポインタの値をカレントポインタの値に更新する（Ｓ１３０５）。
【０１１８】
データベース管理装置１００のプロセッサ１１０は、すべてのバックアップ対象のデータがバックアップファイルに書き込まれたか否かを判定する（Ｓ１３０６）。すべてのバックアップ対象のデータがバックアップファイルに書き込まれていない場合には（Ｓ１３０６の結果が「Ｎｏ」）、バックアップ処理を継続する。
【０１１９】
一方、データベース管理装置１００のプロセッサ１１０は、バックアップ対象のデータがすべてバックアップファイルに書き込まれた場合には（Ｓ１３０６の結果が「Ｙｅｓ」）、バックアップファイル終了処理を実行する（Ｓ１３０７）。バックアップファイル終了処理は、例えば、バックアップファイルをクローズする処理などである。
【０１２０】
図１４は、本発明の実施の形態のＤＢ再編成処理の手順を説明するフローチャートである。
【０１２１】
ＤＢ再編成処理は、前述したように、ＤＢ再編成処理部１２７がデータベース管理装置１００のプロセッサ１１０に処理されることによって実行される。
【０１２２】
本発明の実施の形態では、インメモリデータバッファ１３２からレコードを読み出し、詰め替え用バッファに順次格納することによって、レコードを物理的に整列させる。詰め替え用バッファに格納されたデータをページ単位でＤＢ領域に格納することによってデータベースを再編成する。詰め替え用バッファは、レコードを整列するために読み出されたレコードを一時的に格納するためにメモリ１２０に割り当てられた記憶領域である。
【０１２３】
データベース管理装置１００のプロセッサ１１０は、データロード処理又はデータアンロード処理によって、ＤＢ再編成処理の実行が要求されると、まず、レコードを再編成するための、詰め替え用バッファを初期化する（Ｓ１４０１）。詰め替え用バッファの初期化とは、ワークエリア１３５に詰め替え用バッファを割り当てることである。なお、詰め替え用バッファのサイズは、１ページのサイズ以上であればよい。
【０１２４】
データベース管理装置１００のプロセッサ１１０は、次に、ＤＢ再編成ポインタを初期化する（Ｓ１４０２）。ＤＢ再編成ポインタとは、インメモリデータバッファ１３２上で、データベースの再編成が完了した領域のアドレスを示す。ＤＢ再編成ポインタの初期化とは、ＤＢ再編成ポインタをインメモリデータバッファ１３２の先頭アドレスに設定することである。
【０１２５】
続いて、データベース管理装置１００のプロセッサ１１０は、カレントポインタがＤＢ再編成ポインタよりも先行しているか否かを判定する（Ｓ１４０３）。カレントポインタがＤＢ再編成ポインタよりも先行していない場合には（Ｓ１４０３の結果が「Ｎｏ」）、詰め替え用バッファに書き込むデータが存在しないため、カレントポインタが更新されるまで待機する。
【０１２６】
データベース管理装置１００のプロセッサ１１０は、カレントポインタがＤＢ再編成ポインタよりも先行している場合には（Ｓ１４０３の結果が「Ｙｅｓ」）、ＤＢ詰め替え処理を実行する（Ｓ１４０４）。ＤＢ詰め替え処理とは、前述したように、ＤＢ詰め替え用バッファに順次レコードを格納することである。
【０１２７】
データベース管理装置１００のプロセッサ１１０は、さらに、ＤＢ詰め替え処理が実行されたレコードに対応するインデクス情報を作成する（Ｓ１４０５）。作成されたインデクス情報は、ワークエリア１３５に一時的に格納される。
【０１２８】
データベース管理装置１００のプロセッサ１１０は、続いて、ＤＢ詰め替え用バッファが満杯であるか否かを判定する（Ｓ１４０６）。ＤＢ詰め替え用バッファが満杯でない場合には（Ｓ１４０６の結果が「Ｎｏ」）、ＤＢ再編成ポインタの値をカレントポインタの値に更新し（Ｓ１４０９）、ＤＢ再編成処理を継続する。
【０１２９】
一方、データベース管理装置１００のプロセッサ１１０は、ＤＢ詰め替え用バッファが満杯の場合には（Ｓ１４０６の結果が「Ｙｅｓ」）、ＤＢ詰め替え用バッファに格納されたデータをページごとにデータベース１５２に書き込む（Ｓ１４０７）。さらに、Ｓ１４０５の処理で作成されたインデクス情報をインデクス情報ファイルに書き込む（Ｓ１４０８）。そして、ＤＢ再編成ポインタの値をカレントポインタの値に更新し（Ｓ１４０９）、ＤＢ再編成処理を継続する。
【０１３０】
データベース管理装置１００のプロセッサ１１０は、インメモリデータバッファ１３２に格納されたデータの再編成がすべて終了したか否かを判定する（Ｓ１４１０）。すべてのデータの再編成が終了していない場合には（Ｓ１４１０の結果が「Ｎｏ」）、ＤＢ再編成処理を継続する。
【０１３１】
一方、データベース管理装置１００のプロセッサ１１０は、すべてのデータの再編成が終了した場合には（Ｓ１４１０の結果が「Ｙｅｓ」）、インデクス情報ファイルに格納されたインデクス情報に基づいて、インデクスを作成する（Ｓ１４１１）。その後、ＤＢ再編成処理を終了する。
【０１３２】
図１５は、本発明の実施の形態のＤＢ最適化情報取得処理の手順を説明するフローチャートである。
【０１３３】
多くのデータベースは、表の大きさ及びインデクスのキー値の分布などの統計情報に基づいて検索処理などを最適化する機能を有している。ＤＢ最適化情報取得処理は、この統計情報（最適化情報）を取得するための処理である。また、最適化情報は、前述したように、データの更新などによって変化するため、定期的に取得する必要がある。最適化情報は、ＤＢ定義情報１５１に格納される。
【０１３４】
ＤＢ最適化情報取得処理は、前述したように、ＤＢ最適化情報取得処理部１２８がデータベース管理装置１００のプロセッサ１１０に処理されることによって実行される。
【０１３５】
データベース管理装置１００のプロセッサ１１０は、ＤＢ最適化情報取得処理の実行が要求されると、まず、最適化情報を一時的に格納するための最適化情報ファイルを初期化する（Ｓ１５０１）。最適化情報ファイルは、ワークエリア１３５に一時的に作成され、最適化情報の集計が完了すると、ＤＢ定義情報１５１に格納される。最適化情報ファイルの初期化とは、例えば、ワークエリア１３５に領域を割り当て、ファイルを新たに作成することである。
【０１３６】
データベース管理装置１００のプロセッサ１１０は、続いて、情報取得ポインタを初期化する（Ｓ１５０２）。情報取得ポインタは、最適化情報の作成が完了したデータのアドレスである。情報取得ポインタの初期化とは、情報取得ポインタをインメモリデータバッファ１３２の先頭アドレスに設定することである。
【０１３７】
続いて、データベース管理装置１００のプロセッサ１１０は、カレントポインタが情報取得ポインタよりも先行しているか否かを判定する（Ｓ１５０３）。カレントポインタが情報取得ポインタよりも先行していない場合には（Ｓ１５０３の結果が「Ｎｏ」）、最適化情報を作成する対象のデータが存在しないため、カレントポインタが更新されるまで待機する。
【０１３８】
データベース管理装置１００のプロセッサ１１０は、カレントポインタが情報取得ポインタよりも先行している場合には（Ｓ１５０３の結果が「Ｙｅｓ」）、最適化情報抽出処理を実行する（Ｓ１５０４）。最適化情報抽出処理とは、読み出されたデータに基づいて、データ量、当該データ及びインデクスの分布などの情報を抽出する。さらに、抽出された最適化情報を最適化情報ファイルに書き込み（Ｓ１５０５）、情報取得ポインタの値をカレントポインタの値に更新する（Ｓ１５０６）。
【０１３９】
データベース管理装置１００のプロセッサ１１０は、インメモリデータバッファ１３２に格納されたすべてのデータについて最適化情報を抽出し、最適化情報ファイルに書き込んだか否かを判定する（Ｓ１５０７）。すべてのデータについて最適化情報の抽出が完了していない場合には（Ｓ１５０７の結果が「Ｎｏ」）、最適化情報取得処理を継続する。
【０１４０】
一方、データベース管理装置１００のプロセッサ１１０は、すべてのデータについて最適化情報の抽出が完了し、最適化情報ファイルに書き込まれた場合には（Ｓ１５０７の結果が「Ｙｅｓ」）、最適化情報ファイル集計処理を実行する（Ｓ１５０８）。最適化情報ファイル集計処理とは、データごとに抽出されたデータ量及びデータの分布などを処理することによって、統計情報を集計する処理である。最適化情報ファイル集計処理が完了すると、集計結果をＤＢ定義情報１５１に反映させる最適化情報更新処理を実行する（Ｓ１５０８）。最後に、最適化情報ファイルを削除し、ワークエリア１３５内の領域を解放し、ＤＢ最適化情報取得処理を終了する。
【０１４１】
最後に、インメモリデータ処理におけるデータアクセス手順について説明する。
【０１４２】
図１６は、本発明の実施の形態のインメモリデータ処理におけるＤＢアクセス処理の手順を説明するフローチャートである。
【０１４３】
本発明の実施の形態では、オンライン業務が停止された後、バッチ業務においてインメモリデータ処理が実行される。図１６に示す処理は、バッチ業務において要求されたＤＢアクセス処理を実行するための処理である。
【０１４４】
データベース管理装置１００のプロセッサ１１０は、ＤＢアクセス要求を受け付けると、ＤＢアクセス要求解析部１２１によって、要求内容を解析する。そして、ＤＢアクセス処理部１２２を実行し、解析結果に基づいて、要求された処理が検索処理か否かを判定する（Ｓ１６０１）。
【０１４５】
データベース管理装置１００のプロセッサ１１０は、要求された処理が検索処理の場合には（Ｓ１６０１の結果が「Ｙｅｓ」）、ＤＢ検索処理を実行し（Ｓ１６０２）、ＤＢアクセス処理を終了する。
【０１４６】
データベース管理装置１００のプロセッサ１１０は、要求された処理が検索処理でない場合には（Ｓ１６０１の結果が「Ｎｏ」）、要求された処理が更新処理か否かを判定する（Ｓ１６０３）。要求された処理が更新処理でない場合には（Ｓ１６０３の結果が「Ｎｏ」）、ＤＢアクセス処理を終了する。
【０１４７】
データベース管理装置１００のプロセッサ１１０は、要求された処理が更新処理の場合には（Ｓ１６０３の結果が「Ｙｅｓ」）、ＤＢ更新処理を実行する（Ｓ１６０４）。さらに、更新されたデータベース領域に対応するインメモリ管理テーブル１３１の更新有無フラグを「ＯＮ」に設定する（Ｓ１６０５）。Ｓ１６０５の処理によって、インメモリデータバッファ１３２に格納されたデータが格納されたか否かをメモリアンロード処理において判定することができる。
【０１４８】
本発明の実施の形態では、外部記憶媒体に対する多量のデータ入出力が発生するバッチ業務を実行する際に、すべての処理対象のデータをメモリに格納するインメモリデータ処理を実行する。本発明の実施の形態によれば、バッチ業務を実行する際に、メモリに格納されたデータを利用してバックアップなどの運用業務を実行することによって、外部記憶媒体からデータを読み出すための時間を削減することができる。したがって、バッチ業務及び運用業務の総所要時間が短縮され、オンライン業務を再開するまでの時間を短縮することができる。
【図面の簡単な説明】
【０１４９】
【図１】本発明の実施の形態の計算機システムの構成を示す図である。
【図２】本発明の実施の形態のインメモリ管理テーブルの一例を示す図である。
【図３】本発明の実施の形態のデータベース管理装置による運用手順を示す図であって、オンライン業務を停止させ、グローバルバッファに格納されたデータとデータベースに格納されたデータとを同期させる処理について説明する図である。
【図４】本発明の実施の形態のデータベース管理装置による運用手順を示す図であって、オンライン業務停止後、バッチ業務を開始する前にバックアップを取得する処理について説明する図である。
【図５】本発明の実施の形態のデータベース管理装置による運用手順を示す図であって、バッチ業務１によって更新されたインメモリデータバッファに格納されたデータと、データベースに格納されたデータとを同期させるとともに、運用業務を実行する手順について説明する図である。
【図６】本発明の実施の形態のデータベース管理装置による運用手順を示す図であって、バッチ業務２の開始から、終了後にインメモリデータバッファに格納されたデータによって、データベースを再編成させる手順について説明する図である。
【図７】本発明の実施の形態のデータベース管理装置による運用手順を示す図であって、バッチ業務２の終了後、オンライン業務を再開する手順について説明する図である。
【図８】本発明の実施の形態のメモリロード処理におけるバックアップ処理の概要を説明する図である。
【図９】本発明の実施の形態のメモリアンロード処理におけるバックアップ処理の概要を説明する図である。
【図１０】本発明の実施の形態のメモリアンロード処理におけるデータベース再編成処理の概要を説明する図である。
【図１１】本発明の実施の形態のメモリロード処理の手順を説明するフローチャートである。
【図１２】本発明の実施の形態のメモリアンロード処理の手順を説明するフローチャートである。
【図１３】本発明の実施の形態のＤＢバックアップ処理の手順を説明するフローチャートである。
【図１４】本発明の実施の形態のＤＢ再編成処理の手順を説明するフローチャートである。
【図１５】本発明の実施の形態のＤＢ最適化情報取得処理の手順を説明するフローチャートである。
【図１６】本発明の実施の形態のインメモリデータ処理におけるＤＢアクセス処理の手順を説明するフローチャートである。
【符号の説明】
【０１５０】
１００    データベース管理装置
１１０    プロセッサ
１２０    メモリ
１２１    ＤＢアクセス要求解析部
１２２    ＤＢアクセス処理部
１２３    インメモリ要求解析部
１２４    インメモリ処理部
１２５    ＤＢ運用処理部
１２６    ＤＢバックアップ処理部
１２７    ＤＢ再編成処理部
１２８    ＤＢ最適化情報取得処理部
１３１    インメモリ管理テーブル
１３２    インメモリデータバッファ
１３３    グローバルバッファ
１３４    ログ用バッファ
１３５    ワークエリア
１４０    インターフェース
１５０    ストレージ装置
１５１    ＤＢ定義情報
１５２    データベース
１５３    ログ
１６０    ネットワーク
１７０    端末
１８０    バックアップ装置
【図１】
2010039819.tif 000003
【図２】
2010039819.tif 000004
【図３】
2010039819.tif 000005
【図４】
2010039819.tif 000006
【図５】
2010039819.tif 000007
【図６】
2010039819.tif 000008
【図７】
2010039819.tif 000009
【図８】
2010039819.tif 000010
【図９】
2010039819.tif 000011
【図１０】
2010039819.tif 000012
【図１１】
2010039819.tif 000013
【図１２】
2010039819.tif 000014
【図１３】
2010039819.tif 000015
【図１４】
2010039819.tif 000016
【図１５】
2010039819.tif 000017
【図１６】
2010039819.tif 000018