(57)【特許請求の範囲】
【請求項１】
プライム領域から溢れたレコードをオーバーフロー領域に格納するデータベースで用いられるデータベース再編成装置において、
業務処理のアクセス時に、アクセス先のプライム領域の持つオーバーフロー領域が規定の大きさ以上であるのか否かを検出する検出手段と、
上記検出手段により規定の大きさ以上のオーバーフロー領域を持つと検出されるときに、即時モードか一括モードのどちらが設定されているのかを判断する判断手段と、
即時モードに設定されていることが判断される場合に、上記検出手段により規定の大きさ以上のオーバーフロー領域を持つと検出されたプライム領域を指定して再編成の実行を指示し、一方、一括モードに設定されていることが判断される場合に、該プライム領域の識別子を保存領域に保存する実行手段と、
上記再編成の実行指示に応答して、上記検出手段により規定の大きさ以上のオーバーフロー領域を持つと検出されたプライム領域の排他獲得要求を発行する発行手段と、
即時モードに設定されていることが判断される場合にあって、上記発行手段の発行に応答してプライム領域が排他獲得されるときに、該プライム領域及び対をなすオーバーフロー領域のレコードを退避させてから削除し、続いて該退避レコードを該プライム領域に再配置するとともに、そのとき入りきれないレコードについては、新たに１つ又は複数のプライム領域を作成して、そこに格納し、一方、一括モードに設定されていることが判断される場合にあって、業務処理が終了するときに、上記保存領域に識別子の保存されるプライム領域を処理対象として、該プライム領域及び対をなすオーバーフロー領域のレコードを退避させてから削除し、続いて該退避レコードを該プライム領域に再配置するとともに、そのとき入りきれないレコードについては、新たに１つ又は複数のプライム領域を作成して、そこに格納する再編成手段とを備えることを、
特徴とするデータベース再編成装置。
【請求項２】
請求項１記載のデータベース再編成装置において、
上記発行手段は、業務処理よりも低い優先度を指定しつつ、プライム領域の排他獲得要求を発行することを、
特徴とするデータベース再編成装置。
【請求項３】
請求項１又は２記載のデータベース再編成装置において、
上記発行手段は、上記再編成手段の処理が終了していることを条件にして、次のプライム領域の排他獲得要求を発行することを、
特徴とするデータベース再編成装置。
【請求項４】
請求項１、２又は３記載のデータベース再編成装置において、
上記検出手段は、先に検出したプライム領域に対する再編成処理が終了していないときには、検出処理に従って該プライム領域が規定の大きさ以上のオーバーフロー領域を持つと検出されても、それを無視するように処理することを、
特徴とするデータベース再編成装置。
【請求項５】
請求項１、２又は３記載のデータベース再編成装置において、
上記発行手段は、先に発行したプライム領域に対する再編成処理が終了していないときには、上記検出手段により該プライム領域が検出されるときにも、それを無視するように処理することを、
特徴とするデータベース再編成装置。
【請求項６】
プライム領域から溢れたレコードをオーバーフロー領域に格納するデータベースで用いられるデータベース再編成装置の実現に用いられるプログラムが記録されるコンピュータ読み取り可能な記録媒体であって、
業務処理のアクセス時に、アクセス先のプライム領域の持つオーバーフロー領域が規定の大きさ以上であるのか否かを検出する検出処理と、
上記検出処理により規定の大きさ以上のオーバーフロー領域を持つと検出されるときに、即時モードか一括モードのどちらが設定されているのかを判断する判断処理と、
即時モードに設定されていることが判断される場合に、上記検出処理により規定の大きさ以上のオーバーフロー領域を持つと検出されたプライム領域を指定して再編成の実行を指示し、一方、一括モードに設定されていることが判断される場合に、該プライム領域の識別子を保存領域に保存する実行処理と、
上記再編成の実行指示に応答して、上記検出処理により規定の大きさ以上のオーバーフロー領域を持つと検出されたプライム領域の排他獲得要求を発行する発行処理と、
即時モードに設定されていることが判断される場合にあって、上記発行処理の発行に応答してプライム領域が排他獲得されるときに、該プライム領域及び対をなすオーバーフロー領域のレコードを退避させてから削除し、続いて該退避レコードを該プライム領域に再配置するとともに、そのとき入りきれないレコードについては、新たに１つ又は複数のプライム領域を作成して、そこに格納し、一方、一括モードに設定されていることが判断される場合にあって、業務処理が終了するときに、上記保存領域に識別子の保存されるプライム領域を処理対象として、該プライム領域及び対をなすオーバーフロー領域のレコードを退避させてから削除し、続いて該退避レコードを該プライム領域に再配置するとともに、そのとき入りきれないレコードについては、新たに１つ又は複数のプライム領域を作成して、そこに格納する再編成処理とをコンピュータに実行させるプログラムが記録されることを、
特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プライム領域から溢れたレコードをオーバーフロー領域に格納するデータベースで用いられるデータベース再編成装置と、その実現に用いられるプログラムが記録されるコンピュータ読み取り可能な記録媒体とに関し、特に、簡単な制御に従ってデータベースの効率的な再編成処理を実行できるようにするデータベース再編成装置と、その実現に用いられるプログラムが記録されるコンピュータ読み取り可能な記録媒体とに関する。
【０００２】
保険業務などに用いられるデータベースでは、特定の事業所などに当初想定した以上の被保険者が加入することで、特定の事業所などに大量のレコードが発生することがある。一方、データベースでは、レコードを削除し追加していくことで断片的な空き領域が生成されることになる。
【０００３】
これから、データベースでは、レコードを再配置していくという再編成処理を実行する必要があるが、この再編成処理は、業務処理の遂行を妨げることなく実行する必要があるとともに、アクセス性能の向上を実現する形態で実行する必要がある。
【０００４】
【従来の技術】
データベースでは、プライムページにレコードを追加していくときに、空き領域がなくなると、オーバーフローページにレコードを格納していく構成を採っている。従って、レコードが削除された後にレコードが追加されると、レコード長の関係で、プライムページやオーバーフローページに断片的な空き領域が生成されることになる。そこで、この空き領域を整理するレコード再配置処理が必要となる。
【０００５】
このレコード再配置処理は、業務処理の必要とするデータベースへのアクセスを禁止することになることから、従来では、データベースの運用を停止させた状態で実行するという構成を採っている。
【０００６】
しかし、それでは、レコード再配置処理を行っている間、業務処理を遂行できないという問題点がある。
そこで、本発明者は、特開平６-110743 号で、業務処理と並列する形態で、プライムページ及びオーバーフローページのレコードを一時的に退避させてから、それらのレコードを削除し、その後、退避させたレコードをプライムページからオーバーフローページへと順番に詰めて再配置していくというレコード再配置処理の発明を開示した。
【０００７】
この発明では、データベースに対する業務処理のアクセス頻度が少ないときを検出して、そのときに、先頭から順番に、業務処理が排他獲得していないプライムページ及びオーバーフローページを排他獲得して、それに対してレコード再配置処理を実行することで、レコード再配置処理と業務処理との並列処理を実現するという構成を採っている。
【０００８】
【発明が解決しようとする課題】
しかしながら、特開平６-110743 号で開示した発明では、データベースに対する業務処理のアクセス頻度が少なくなるときを検出して、レコード再配置処理を実行するという構成を採っていることから、複雑な制御が必要になるという問題点があった。
【０００９】
すなわち、業務処理のアクセス頻度が少なくなるときを検出するための複雑な制御が必要になるという問題点があった。
更に、特開平６-110743 号で開示した発明では、プライムページにレコードを詰めていって、オーバーフローページにレコードが残るときには、それをそのままオーバーフローページに残しておくという構成を採っていることから、アクセス性能の低下を解消できないという問題点があった。
【００１０】
すなわち、オーバーフローページのアクセス性能は、プライムページのアクセス性能よりも劣るので、オーバーフローページにレコードが残されることで、アクセス性能の低下を解消できないという問題点があった。
【００１１】
本発明はかかる事情に鑑みてなされたものであって、簡単な制御に従ってデータベースの効率的な再編成処理を実行できるようにする新たなデータベース再編成装置の提供と、その実現に用いられるプログラムが記録されるコンピュータ読み取り可能な記録媒体の提供とを目的とする。
【００１２】
【課題を解決するための手段】
この目的を達成するために、本発明のデータベース再編成装置は、プライム領域から溢れたレコードをオーバーフロー領域に格納するデータベースで用いられるときにあって、（１）業務処理のアクセス時に、アクセス先のプライム領域の持つオーバーフロー領域が規定の大きさ以上であるのか否かを検出する検出手段と、（２）検出手段により規定の大きさ以上のオーバーフロー領域を持つと検出されるときに、即時モードか一括モードのどちらが設定されているのかを判断する判断手段と、（３）即時モードに設定されていることが判断される場合に、検出手段により規定の大きさ以上のオーバーフロー領域を持つと検出されたプライム領域を指定して再編成の実行を指示し、一方、一括モードに設定されていることが判断される場合に、該プライム領域の識別子を保存領域に保存する実行手段と、（４）実行手段の発行する再編成の実行指示に応答して、検出手段により規定の大きさ以上のオーバーフロー領域を持つと検出されたプライム領域の排他獲得要求を発行する発行手段と、（５）即時モードに設定されていることが判断される場合にあって、発行手段の発行に応答してプライム領域が排他獲得されるときに、該プライム領域及び対をなすオーバーフロー領域のレコードを退避させてから削除し、続いて該退避レコードを該プライム領域に再配置するとともに、そのとき入りきれないレコードについては、新たに１つ又は複数のプライム領域を作成して、そこに格納し、一方、一括モードに設定されていることが判断される場合にあって、業務処理が終了するときに、保存領域に識別子の保存されるプライム領域を処理対象として、該プライム領域及び対をなすオーバーフロー領域のレコードを退避させてから削除し、続いて該退避レコードを該プライム領域に再配置するとともに、そのとき入りきれないレコードについては、新たに１つ又は複数のプライム領域を作成して、そこに格納する再編成手段とを備えるように構成する。
この構成を採るときにあって、発行手段は、業務処理よりも低い優先度を指定しつつ、プライム領域の排他獲得要求を発行することがある。
また、発行手段は、再編成手段の処理が終了していることを条件にして、次のプライム領域の排他獲得要求を発行することがある。
また、検出手段は、先に検出したプライム領域に対する再編成処理が終了していないときには、検出処理に従って該プライム領域が規定の大きさ以上のオーバーフロー領域を持つと検出されても、それを無視するように処理することがある。
また、発行手段は、先に発行したプライム領域に対する再編成処理が終了していないときには、検出手段により該プライム領域が検出されるときにも、それを無視するように処理することがある。
ここで、本発明を実現すべく設けられる各処理手段の持つ機能は具体的にはプログラムで実現されるものであり、このプログラムは、フロッピィディスクなどに記憶されたり、サーバなどのディスクなどに記憶され、それらからインストールされてメモリ上で動作することで、本発明を実現することになる。
このように構成される本発明では、即時モードに設定されている場合には、業務処理のアクセス時に、それと同期を取って、オーバーフロー領域が大きくなるプライム領域を検出し、業務処理よりも低い優先度を指定しつつ、そのプライム領域の排他獲得を実行して、その排他獲得したプライム領域及び対をなすオーバーフロー領域を処理対象としてレコードを再配置するとともに、そのオーバーフロー領域にレコードが残るときには、新たにプライム領域を作成してそこにレコードを配置していくことで、データベースの再編成を実行する構成を採る。
そして、本発明では、一括モードに設定されている場合には、業務処理アクセスの延長でオーバーフロー領域が大きくなるプライム領域を検出すると、それらのプライム領域の識別子を保存領域に保存する構成を採って、業務処理が終了すると、それらのプライム領域を処理対象として、処理対象となるプライム領域及び対をなすオーバーフロー領域を処理対象としてレコードを再配置するとともに、そのオーバーフロー領域にレコードが残るときには、新たにプライム領域を作成してそこにレコードを配置していくことで、データベースの再編成を実行する構成を採る。
このようにして、本発明によれば、即時モードに設定しておくことで、業務処理のアクセスと連動させつつ、局所的なデータベースの再編成処理を実行することで、簡単な制御に従って、業務処理と並列する形態で、データベースの再編成処理を実行できるようになる。
このとき、オーバーフロー領域が残らない形態でデータベースの再編成処理を実行することから、アクセス性能の向上を実現できるデータベースの再編成処理を実行できるようになる。
そして、本発明によれば、一括モードに設定しておくことで、業務処理の終了時点に、データベースにアクセスしなくても、再編成処理の対象となるプライム領域を特定できることでデータベースの再編成処理を実行できるようになる。
このとき、オーバーフロー領域が残らない形態でデータベースの再編成処理を実行することから、アクセス性能の向上を実現できるデータベースの再編成処理を実行できるようになる。
【００２９】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
本発明の実施例の説明に入る前に、図１に示す原理構成図に従って、即時モードに設定されているときの本発明の処理について説明する。
図１中、１は本発明を具備するデータベースシステム、２はデータベースシステム１にアクセスすることで業務処理を実行する１つ又は複数の業務プログラムである。
データベースシステム１は、データベース１０と、データベース管理機構１１と、検出手段１２と、発行手段１３と、退避領域１４と、再編成手段１５とを備える。
データベース１０は、レコードを格納するプライム領域１００と、プライム領域１００から溢れたレコードを格納するオーバーフロー領域１０１と、プライム領域１００に対応付けて設けられて、プライム領域１００及び対をなすオーバーフロー領域１０１に格納されるレコードの持つキーを管理するページエントリータイプのインデックス１０２とを備える。
データベース管理機構１１は、データベース１０を管理するものであり、業務プログラム２の発行するアクセス要求に応答して、プライム領域１００及び対をなすオーバーフロー領域１０１を排他獲得して、その排他獲得したプライム領域１００及び対をなすオーバーフロー領域１０１へのアクセス処理を実行するものである。
検出手段１２は、業務処理のアクセス時に、アクセス先のプライム領域１００の持つオーバーフロー領域１０１が規定の大きさ以上であるのか否かを検出する。
発行手段１３は、業務処理よりも低い優先度を指定しつつ、データベース管理機構１１に対して、検出手段１２により規定の大きさ以上のオーバーフロー領域１０１を持つと検出されるプライム領域１００の排他獲得要求を発行する。
退避領域１４は、再編成手段１５の処理のための作業領域として用意されるものであり、プライム領域１００及びオーバーフロー領域１０１のレコードを退避する。
再編成手段１５は、発行手段１３の発行処理に応答してプライム領域１００が排他獲得されるときに、そのプライム領域１００及び対をなすオーバーフロー領域１０１に対して再編成処理を実行する。
このように構成される本発明を具備するデータベースシステム１では、検出手段１２は、業務処理のアクセス時に、アクセス先のプライム領域１００の持つオーバーフロー領域１０１が規定の大きさ以上であるのか否かを検出し、この検出結果を受けて、発行手段１３は、そのプライム領域１００の持つオーバーフロー領域１０１が規定の大きさ以上であることが検出されると、データベース管理機構１１に対して、業務処理よりも低い優先度を指定しつつ、そのプライム領域１００の排他獲得要求を発行する。
この発行を受けて、データベース管理機構１１は、業務処理の発行する排他獲得要求を優先しつつ、発行手段１３の発行したプライム領域１００が業務処理により排他獲得されていないときに、それを排他獲得して再編成手段１５に通知する。
この通知を受けて、再編成手段１５は、その排他獲得されたプライム領域１００及び対をなすオーバーフロー領域１０１のレコードを退避領域１４に退避させてから削除し、続いて、その退避領域１４に退避させたレコードをそのプライム領域１００に再配置するとともに、そのとき入りきれないレコードについては、新たに１つ又は複数のプライム領域１００を開設してそこに格納し、そして、これらの処理に合わせて、プライム領域１００対応に設けられるインデックス１０２を再構成することでデータベース１０を再編成する。
この処理構成を採るときに、発行手段１３は、再編成手段１５に対する処理要求が競合しないようにするために、再編成手段１５の処理が終了していることを条件にして、次のプライム領域１００の排他獲得要求を発行することが好ましい。
また、この処理構成を採るときに、重複処理を排除するために、検出手段１２は、先に検出したプライム領域１００に対する再編成処理が終了していないときには、検出処理に従ってそのプライム領域１００が規定の大きさ以上のオーバーフロー領域１０１を持つと検出されても、それを無視するように処理したり、発行手段１３は、先に発行したプライム領域１００に対する再編成処理が終了していないときには、検出手段１２によりそのプライム領域１００が検出されるときにも、それを無視するように処理することが好ましい。
このように、本発明では、即時モードに設定されている場合には、業務処理のアクセス時に、それと同期を取って、オーバーフロー領域１０１が大きくなるプライム領域１００を検出し、業務処理よりも低い優先度を指定しつつ、そのプライム領域１００の排他獲得を実行して、その排他獲得したプライム領域１００及び対をなすオーバーフロー領域１０１を処理対象としてレコードを再配置するとともに、そのオーバーフロー領域１０１にレコードが残るときには、新たにプライム領域１００を作成してそこにレコードを配置していくことで、データベース１０の再編成を実行する構成を採るのである。
次に、本発明について詳細に説明する。
図２に、本発明を具備するデータシステム１の一実施例を図示する。
【００３０】
図中、１０はデータベース、２０はＤＢＭＳ、２１は再編成プログラム、２２は退避領域、２３は起動プログラム、２４は保存ファイルである。
このデータベース１０は、レコードを格納する複数のプライムページ２００と、プライムページ２００から溢れたレコードを格納するオーバーフローページ２０１と、プライムページ２００に対応付けて設けられて、プライムページ２００及び対をなすオーバーフローページ２０１に格納されるレコードの持つキーを管理するページエントリータイプのインデックス２０２とを備える。ここで、インデックス２０２は、データベース１０とは別のインデックスファイルに備えられることもある。
【００３１】
ＤＢＭＳ２０は、業務プログラム２の排他獲得要求に応答して、プライムページ２００及び対をなすオーバーフローページ２０１を排他獲得して、その排他獲得したプライムページ２００及び対をなすオーバーフローページ２０１へのアクセス処理を実行する。
【００３２】
このＤＢＭＳ２０は、プライムページ２００にレコードを格納していくときに、プライムページ２００にレコードが入りきらないときには、オーバーフローページ２０１にレコードを格納し、レコードを削除するときには、バリッドビットを落とすことでレコードを削除する。従って、図３に示すように、プライムページ２００やオーバーフローページ２０１に断片的な空き領域が生成されることになる。
【００３３】
再編成プログラム２１は、退避領域２２にレコードを退避しつつ、プライムページ２００及び対をなすオーバーフローページ２０１に対しての再編成処理を実行する。起動プログラム２３は、再編成プログラム２１の起動を制御するものであり、即時に起動したり、業務処理の終了後に起動する。保存ファイル２４は、起動プログラム２３からの格納要求に応答して、プライムページ２００のページ番号をスタックする。
【００３４】
図４に、ＤＢＭＳ２０の実行する処理フローの一実施例、図５に、起動プログラム２３の実行する処理フローの一実施例、図６ないし図９に、再編成プログラム２１の実行する処理フローの一実施例を図示する。次に、これらの処理フローに従って、本発明について詳細に説明する。
【００３５】
先ず最初に、ＤＢＭＳ２０が本発明を実現のために新たに実行する処理について説明する。
ＤＢＭＳ２０は、業務プログラム２からのアクセス要求に応答してプライムページ２００及び対をなすオーバーフローページ２０１へのアクセスを実行し、それを終了すると、新たに図４の処理フローを実行することで、業務処理中に、オーバーフローページ２０１の多くなったプライムページ２００を検出する。
【００３６】
すなわち、ＤＢＭＳ２０は、業務処理のアクセスを終了すると、図４の処理フローに示すように、先ず最初に、ステップ１で、アクセス先のプライムページ２００の持つオーバーフローページ２０１のページ数を検出する。
【００３７】
続いて、ステップ２で、その検出したオーバーフローページ２０１のページ数が予め設定されている規定値を超えるのか否かを判断して、超えないことを判断するときには、そのまま処理を終了し、超えることを判断するときには、ステップ３に進んで、そのプライムページ２００に対して、図示しないフラグ域に「再編成要」が記録されているのか否かを判断する。
【００３８】
このステップ３で、フラグ域に「再編成要」が記録されていることを判断するときには、そのまま処理を終了し、記録されていないことを判断するときには、ステップ４に進んで、フラグ域に「再編成要」を記録してから、続くステップ５で、そのプライムページ２００を起動プログラム２３に通知して、処理を終了する。
【００３９】
ここで、フラグ域に記録される「再編成要」の記録は、後述するように、再編成プログラム２１が再編成処理を実行すると消去されることになる。従って、フラグ域に「再編成要」が記録されているということは、そのプライムページ２００に対しての再編成処理が未だ実行されていないことを意味する。
【００４０】
このようにして、ＤＢＭＳ２０は、業務処理のアクセスしたプライムページ２００が規定以上のオーバーフローページ２０１を持つときには、そのプライムページ２００に対する再編成処理が終了していないことを条件にして、起動プログラム２３に対して、そのプライムページ２００を通知するのである。
【００４１】
次に、起動プログラム２３の実行する処理について説明する。
起動プログラム２３は、ＤＢＭＳ２０からプライムページ２００の通知を受け取ると、図５（ａ）の処理フローに示すように、先ず最初に、ステップ１で、ユーザの設定する動作モード（即時に再編成処理に入ることを指示する即時モードと、業務処理の終了後に再編成処理に入ることを指示する一括モードとがある）が即時モードであるのか否かを判断して、即時モードであることを判断するときには、ステップ２に進んで、再編成プログラム２１が空いているのか否かをチェックし、空いていないときには、それが空くのを待つ。
【００４２】
ここで、このステップ２の処理を実行するのは、再編成プログラム２１が空いていないのに、以下の処理に進むと、再編成処理を実行できないのに、プライムページ２００及びオーバーフローページ２０１が排他獲得されてしまい、業務処理の遂行が妨げられることになるからである。
【００４３】
このステップ２で、再編成プログラム２１が空くことを検出すると、続いて、ステップ３で、即時モードを通知しつつ、ＤＢＭＳ２０から通知されたプライムページ２００を指定して再編成プログラム２１を起動して、処理を終了する。
【００４４】
一方、ステップ１で、即時モードでないことを判断するとき、すなわち、ユーザの設定する動作モードが一括モードであることを判断するときには、ステップ４に進んで、ＤＢＭＳ２０から通知されたプライムページ２００を保存ファイル２４にスタックして、処理を終了する。
【００４５】
また、この起動プログラム２３は、業務プログラム２による業務処理が終了すると、図５（ｂ）の処理フローに示すように、一括モードを通知しつつ、再編成プログラム２１を起動する処理を実行する。
【００４６】
このようにして、起動プログラム２３は、ＤＢＭＳ２０からプライムページ２００の通知を受け取ると、即時モードに設定されているときには、そのプライムページ２００を指定して再編成プログラム２１を起動することで、再編成処理を依頼するのである。そして、一括モードに設定されているときには、そのプライムページ２００を保存ファイル２４にスタックし、業務処理が終了するときに、再編成プログラム２１を起動することで、再編成処理を依頼するのである。
【００４７】
なお、再編成プログラム２１が空くのを待っている間に、次々と、ＤＢＭＳ２０からプライムページ２００が通知されることがある。このときには、起動プログラム２３は、それらをキューイングする構成を採って、再編成プログラム２１が空くのを待ちながら、順番に、再編成プログラム２１に対して再編成処理を依頼していくことになる。
【００４８】
次に、再編成プログラム２１の実行する処理について説明する。
再編成プログラム２１は、起動プログラム２３から起動されると、図６ないし図９の処理フローを実行することで、ＤＢＭＳ２０により検出されたプライムページ２０１に対する再編成処理を実行する。
【００４９】
すなわち、再編成プログラム２１は、起動プログラム２３から起動されると、図６ないし図９の処理フローに示すように、先ず最初に、ステップ１で、起動プログラム２３から通知される動作モードが即時モードであるのか、一括モードであるのかを判断して、即時モードであることを判断するときには、ステップ２に進んで、業務処理より低い優先度を指定しつつ、ＤＢＭＳ２０に対して、起動プログラム２３から通知されたプライムページ２００及び対となるオーバーフローページ２０１の排他獲得要求を発行し、続くステップ３で、この排他が獲得されるのを待つ。
【００５０】
このステップ３で、排他獲得を検出すると、続いて、ステップ４で、図１０に示すように、排他獲得したプライムページ２００及びオーバーフローページ２０１のレコードを退避領域２２に退避させ、続くステップ５で、図１１に示すように、そのプライムページ２００及びオーバーフローページ２０１のレコードを削除する。
【００５１】
続いて、ステップ６で、図１２に示すように、退避領域２２に退避させたレコードを、排他獲得したプライムページ２００に再配置する。すなわち、プライムページ２００に空き領域が生じないようにと、退避領域２２に退避させたレコードをキー順に再配置していくのである。
【００５２】
続いて、ステップ７で、ステップ６での再配置処理でオーバーフローページ２０１が必要となるのか否かを判断して、オーバーフローページ２０１が必要とならないことを判断するとき、すなわち、プライムページ２００に全てのレコードを再配置できたことを判断するときには、ステップ８に進んで、そのプライムページ２００に対応付けて設けられるインデックス２０２を最適化し、続くステップ９で、それまで使用していたオーバーフローページ２０１を返却するとともに、ＤＢＭＳ２０がフラグ域に記録した上述の「再編成要」の記録を消去して、処理を終了する。
【００５３】
一方、ステップ７で、ステップ６での再配置処理でオーバーフローページ２０１が必要となることを判断するとき、すなわち、プライムページ２００に退避領域２２に退避させた全てのレコードを再配置できないことを判断するときには、ステップ１０（図７の処理フロー）に進んで、これを格納可能とする１つ又は複数の新たなプライムページ２００を作成し、続くステップ１１で、格納できなかったレコードを、その新たに作成したプライムページ２００にキー順に配置する。
【００５４】
続いて、ステップ１２で、プライムページ２００の増加に合わせて、インデックス２０２を再構成し、続くステップ１３で、それまで使用していたオーバーフローページ２０１を返却するとともに、ＤＢＭＳ２０がフラグ域に記録した上述の「再編成要」の記録を消去して処理を終了する。
【００５５】
このようにして、再編成プログラム２１は、ユーザが即時モードに設定しているときには、ＤＢＭＳ２０が業務処理アクセスの延長で規定以上のオーバーフローページ２０１を持つプライムページ２００を検出すると、業務処理中に、業務処理を優先しつつ、そのプライムページ２００及びオーバーフローページ２０１を排他獲得して、必要に応じてプライムページ２００を作成しつつ、オーバーフローページ２０１を返却しながら再編成処理を実行するのである。
【００５６】
この再編成プログラム２１の再編成処理に従って、例えば、図１３に示すように、データベース１０が、保険会社などの営業所毎に、プライムページ２００を使って被保険者などのレコードを管理する構成を採るときにあって、営業所Ｃのレコードが大量になると、業務処理中に再編成処理が行われ、これにより、営業所Ｃのプライムページ２００が増えて、それらのプライムページ２００にレコードが再配置されていくとともに、それに合わせて、営業所Ｃのインデックス２０２が再構成されることになるので、高速のアクセス性能が実現されることになる。ここで、図中に示すＰはプライムページ２００、Ｏはオーバーフローページ２０１を表している。
【００５７】
一方、再編成プログラム２１は、図６の処理フローのステップ１で、起動プログラム２３から一括モードの動作モードが通知されることを判断するときには、ステップ１４（図８の処理フロー）に進んで、保存ファイル２４から、起動プログラム２３のスタックしたプライムページ２００のページ番号を読み出す。ここで、図５（ｂ）の処理フローで説明したように、この一括モードは、業務処理の終了と同期して通知されることになる。
【００５８】
続いて、ステップ１５で、保存ファイル２４から読み出したプライムページ２００のページ番号の中からページ番号を１つを選択し、続くステップ１６で、全てのページ番号の選択を終了したのか否かを判断して、全てのページ番号の選択終了を判断するときには処理を終了する。
【００５９】
一方、ステップ１６で、全てのページ番号の選択終了を判断しないとき、すなわち、未処理のプライムページ２００を１つ選択できたことを判断するときには、ステップ１７に進んで、ＤＢＭＳ２０に対して、選択したプライムページページ２００及び対となるオーバーフローページ２０１の排他獲得要求を発行し、続くステップ１８で、この排他が獲得されるのを待つ。ここで、業務処理は終了しているので、この排他獲得は、どのような優先度を指定して行ってもよい。
【００６０】
このステップ１８で、排他獲得を検出すると、続いて、ステップ１９で、図１０に示すように、排他獲得したプライムページ２００及びオーバーフローページ２０１のレコードを退避領域２２に退避し、続くステップ２０で、図１１に示すように、そのプライムページ２００及びオーバーフローページ２０１のレコードを削除する。
【００６１】
続いて、ステップ２１で、図１２に示すように、退避領域２２に退避させたレコードを、排他獲得したプライムページ２００に再配置する。すなわち、プライムページ２００に空き領域が生じないようにと、退避領域２２に退避したレコードをキー順に再配置していくのである。
【００６２】
続いて、ステップ２２で、ステップ２０での再配置処理でオーバーフローページ２０１が必要となるのか否かを判断して、オーバーフローページ２０１が必要とならないことを判断するとき、すなわち、プライムページ２００に全てのレコードを再配置できたことを判断するときには、ステップ２３に進んで、そのプライムページ２００に対応付けて設けられるインデックス２０２を最適化し、続くステップ２４で、それまで使用していたオーバーフローページ２０１を返却してから、次のプライムページ２００の処理に進むべくステップ１５に戻る。
【００６３】
一方、ステップ２２で、ステップ２１での再配置処理でオーバーフローページ２０１が必要となることを判断するとき、すなわち、プライムページ２００に退避領域２２に退避させた全てのレコードを再配置できないことを判断するときには、ステップ２５（図９の処理フロー）に進んで、これを格納可能とする１つ又は複数の新たなプライムページ２００を作成し、続くステップ２６で、格納できなかったレコードを、その新たに作成したプライムページ２００にキー順に配置する。
【００６４】
続いて、ステップ２７で、プライムページ２００の増加に合わせて、インデックス２０２を再構成し、続くステップ２８で、それまで使用していたオーバーフローページ２０１を返却してから、次のプライムページ２００の処理に進むべくステップ１５に戻る。
【００６５】
このようにして、再編成プログラム２１は、ユーザが一括モードに設定しているときには、ＤＢＭＳ２０が業務処理アクセスの延長で規定以上のオーバーフローページ２０１を持つプライムページ２００を検出すると、それらのプライムページ２００のページ番号を保存ファイル２４に保存する構成を採って、業務処理が終了すると、それらのプライムページ２００及び対をなすオーバーフローページ２０１を順番に選択して、必要に応じてプライムページ２００を作成しつつ、オーバーフローページ２０１を返却しながら再編成処理を実行するのである。
【００６６】
この構成に従うと、業務処理の終了時点で、データベース１０をアクセスしなくても、再編成処理対象となるプライムページ２００が存在するのか否かということと、存在するときには、それがどのプライムページ２００であるのかということを知ることができるので、データベース１０の再編成処理を効率的に実行できるようになる。
【００６７】
ＤＢＭＳ２０は、業務処理アクセスの延長で規定以上のオーバーフローページ２０１を持つプライムページ２００を検出する構成を採っている。これから、そのプライムページ２００をアクセスする業務処理が集中する場合には、そのプライムページ２００に対する再編成処理が実行される前に、何度も、そのプライムページ２００がＤＢＭＳ２０により検出されてしまうことになる。
【００６８】
そこで、ＤＢＭＳ２０は、図４の処理フローに示したように、一度、規定以上のオーバーフローページ２０１を持つものと検出したプライムページ２００については、再編成プログラム２１による再編成処理が終わるまでは、再度検出しないようにする構成を採っている。この機能により、即時モードで動作するときに、同一のプライムページ２００に対する再編成処理要求が連続しないように制御できることになる。
【００６９】
この機能は、ＤＢＭＳ２０が持つのではなくて、起動プログラム２３に持たせることも可能である。
すなわち、ＤＢＭＳ２０は、業務処理アクセスの延長で規定以上のオーバーフローページ２０１を持つプライムページ２００を検出すると、そのプライムページ２００に対する再編成処理が終わっているのか否かに関係なく、そのプライムページ２００を指定して起動プログラム２３を起動する構成を採る。
【００７０】
そして、起動プログラム２３は、この構成に合わせて、再編成プログラム２１に対して再編成の処理要求を発行したプライムページ２００については、その旨を記録する構成を採って、再編成処理の実行によりその記録が消去されていない間は、ＤＢＭＳ２０から通知される同一のプライムページ２００については無視する構成を採る。
【００７１】
これにより、同一のプライムページ２００に対する再編成処理要求が連続しないように制御できることになる。
また、上述した実施例では、ユーザの設定する動作モード（即時モードと一括モード）に従って、業務処理中に再編成処理を実行するのか、業務処理の終了後に再編成処理を実行するのかを制御する構成を採ったが、オーバーフローページ２０１が多くなった原因により、これを動的に制御する構成を採ることも可能である。
【００７２】
例えば、オーバーフローページ２０１が多くなった原因がレコード数の増加によるものであるときには、例えば、業務処理の終了後に再編成処理を実行するように制御し、例えば、その原因がレコード長の増加によるものであるときには、例えば、業務処理中に再編成処理を実行するように制御するといったような構成を採ることも可能である。
【００７３】
【発明の効果】
以上説明したように、本発明では、即時モードに設定することにより、業務処理のアクセス時に、それと同期を取って、オーバーフロー領域が大きくなるプライム領域を検出し、業務処理よりも低い優先度を指定しつつ、そのプライム領域の排他獲得を実行して、その排他獲得したプライム領域及び対をなすオーバーフロー領域を処理対象としてレコードを再配置するとともに、そのオーバーフロー領域にレコードが残るときには、新たにプライム領域を作成してそこにレコードを配置していくことで、データベースの再編成を実行する構成を採る。
【００７４】
このようにして、本発明によれば、即時モードに設定することにより、業務処理のアクセスと連動させつつ、局所的なデータベースの再編成処理を実行することで、簡単な制御に従って、業務処理と並列する形態で、データベースの再編成処理を実行できるようになる。
【００７５】
そして、本発明によれば、業務処理と並列する形態でデータベースの再編成処理を実行する構成を採るときに、オーバーフロー領域が残らない形態でデータベースの再編成処理を実行することから、アクセス性能の向上を実現できるデータベースの再編成処理を実行できるようになる。
また、本発明では、一括モードに設定することにより、業務処理アクセスの延長でオーバーフロー領域が大きくなるプライム領域を検出すると、それらのプライム領域の識別子を保存領域に保存する構成を採って、業務処理が終了すると、それらのプライム領域を処理対象として、処理対象となるプライム領域及び対をなすオーバーフロー領域を処理対象としてレコードを再配置するとともに、そのオーバーフロー領域にレコードが残るときには、新たにプライム領域を作成してそこにレコードを配置していくことで、データベースの再編成を実行する構成を採る。
このようにして、本発明によれば、一括モードに設定することにより、業務処理の終了時点に、データベースにアクセスしなくても、再編成処理の対象となるプライム領域を特定できることでデータベースの再編成処理を実行できるようになる。
そして、本発明によれば、業務処理の終了時点にデータベースの再編成処理を実行する構成を採るときに、オーバーフロー領域が残らない形態でデータベースの再編成処理を実行することから、アクセス性能の向上を実現できるデータベースの再編成処理を実行できるようになる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】本発明の一実施例である。
【図３】ＤＢＭＳの処理の説明図である。
【図４】ＤＢＭＳの実行する処理フローの一実施例である。
【図５】起動プログラムの実行する処理フローの一実施例である。
【図６】再編成プログラムの実行する処理フローの一実施例である。
【図７】再編成プログラムの実行する処理フローの一実施例である。
【図８】再編成プログラムの実行する処理フローの一実施例である。
【図９】再編成プログラムの実行する処理フローの一実施例である。
【図１０】再編成プログラムの実行する処理の説明図である。
【図１１】再編成プログラムの実行する処理の説明図である。
【図１２】再編成プログラムの実行する処理の説明図である。
【図１３】再編成処理の説明図である。
【符号の説明】
１    データベースシステム
２    業務プログラム
１０  データベース
１１  データベース管理機構
１２  検出手段
１３  発行手段
１４  退避領域
１５  再編成手段
【図１】
0003667953.tif 000002
【図２】
0003667953.tif 000003
【図３】
0003667953.tif 000004
【図４】
0003667953.tif 000005
【図５】
0003667953.tif 000006
【図６】
0003667953.tif 000007
【図７】
0003667953.tif 000008
【図８】
0003667953.tif 000009
【図９】
0003667953.tif 000010
【図１０】
0003667953.tif 000011
【図１１】
0003667953.tif 000012
【図１２】
0003667953.tif 000013
【図１３】
0003667953.tif 000014