(57)【要約】【課題】一般にデータベース管理システムでは、再起動時に、作業領域であるメモリ部がクリアされた状態で立ち上がる。このため、アクセス頻度の高いページが、メモリ部にある程度読み込まれるまでは、ディスク装置へのアクセスが頻発して処理性能が低下する。【解決手段】再起動処理の際、アクセス頻度の高いページを作業領域であるメモリ部に読み込む手法を提案する。これにより、ディスク装置へのアクセス頻度が削減され、再起動直後から高い処理性能を実現できる。【選択図】図７
2010186299.tif 000002
【特許請求の範囲】
【請求項１】
作業領域として使用される第１の記憶部と、
データ格納領域として使用される第２の記憶部と、
データの読み書き単位として割り当てられた各ページに固有のアクセス回数を、データベース管理システムに対する再起動後も継続的に管理するページアクセス管理テーブルと、
データベース管理システムの再起動時に、前記ページアクセス管理テーブルを参照してアクセス頻度が高いページを順番に選択し、それらを前記第２の記憶部から第１の記憶部に自動的に読み出す処理部と
を有するデータベース管理システム。
【請求項２】
データベース管理システムの再起動時に実行されるアクセス頻度の高いページの読み出し数を、前記第１の記憶部について事前に予約された使用領域の上限値を超えない範囲に制限する
ことを特徴とする請求項１に記載のデータベース管理システム。
【請求項３】
データベース管理システムのシャットダウンの際、前記ページアクセス管理テーブルを前記第１の記憶部から前記第２の記憶部に退避する
ことを特徴とする請求項１又は２に記載のデータベース管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、定期的なリブート運用が想定されるデータベース管理システムの管理技術に関する。具体的には、データベース管理システムの再起動直後における処理性能の高速化技術に関する。
【背景技術】
【０００２】
データベース管理システム（DBMS：Data Base Management System）とは、共有データとしてのデータベースを管理し、データに対するアクセス要求に応えるソフトウェアやシステムをいう。データベース管理システムを採用すると、データ形式や利用手順を標準化でき、データ管理を特定のアプリケーションソフトウェアから独立させることができる。
【０００３】
このため、様々な技術分野において、目的に応じたデータベース管理システムが利用されている。なお、データベース管理システムは、管理対象とするデータの表現形式（データモデル）により、いくつかの種類に分類される。例えば階層型、ネットワーク型、リレーショナル型、オブジェクト指向型等に分類される。
【０００４】
ところで、今日のデータベース管理システムには、処理速度の高速化が求められている。このため、データベース管理システムには、様々な技術が採用されている。
まず、データベース管理システムの一般的なシステム構成を説明する。
【０００５】
図１に、データベース管理システム１００の一般的なシステム構成を示す。データベース管理システム１００は、入出力装置１０１、データベース管理システム本体１０２及びディスク装置１０５を基本構成とする。
【０００６】
入出力装置１０１は、主に、処理命令の投入や処理結果の表示に用いられる。例えばキーボードやマウス等の入力装置とディスプレイ装置を備えるユーザ端末で構成される。
【０００７】
データベース管理システム本体１０２は、処理部１０３とメモリ部１０４で構成される。処理部１０３は、入出力装置１０１から受け取った処理命令の実行や処理結果の返却処理を実行する。メモリ部１０４は、処理対象とするデータの読み込みや加工に使用される記憶領域である。いわゆるキャッシュメモリに相当する。
【０００８】
ディスク装置１０５は、メモリ部１０４で加工されたデータが最終的に格納される外部記憶領域である。ディスク装置１０５は、メモリ部１０４に比してデータへのアクセス速度は劣るものの、大容量のデータを格納することができる。また、メモリ部１０４が一般に揮発性であるのに対し、ディスク装置１０５は不揮発性である。
【０００９】
なお、データベース管理システム１００で使用するオブジェクト（テーブルやインデックス）は、ページと呼ばれる物理的な単位でディスク装置１０５の領域に随時割り当てられ、格納される。因みに、現在流通しているデータベース管理システムの場合、ページの物理的な単位は、主に２ＫＢ，４ＫＢ，８ＫＢ，１６ＫＢ等である。ディスク装置１０５とメモリ部１０４の間では、このページを基本単位としてデータのやり取りが行われる。
【００１０】
ところで、ディスク装置１０５に存在するページに対するアクセスは、メモリ部１０４に存在するページに対するアクセスと比較して、数百倍以上の時間を必要とする。勿論、ディスク装置１０５に対するアクセスが数回程度であれば大した性能負荷にならないが、ディスク装置１０５に対するアクセス回数が多くなれば、データベース管理システム全体
としてのアクセス性能に悪影響が及ぶようになる。
【００１１】
このため、多くのデータベース管理システム１００においては、頻繁にアクセスするページをメモリ部１０４に極力置くことにより、処理の高速化を図る仕組みを採用する。その代表例に、ＬＲＵ（Least Recently Used）法やＦＩＦＯ（First In First Out）法等がある。また、ＬＲＵ法の改善技術が、以下に示す特許文献１に開示されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００６−２３５９０３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ところで、ディスク装置１０５に対するアクセスを削減することによる高速化技法は、データベース管理システム１００が一定時間以上連続して稼働することが前提となる。なぜなら、データベース管理システム１００の稼働時間が一定時間より長くなって初めて、アクセス頻度の高いページがメモリ部１０４に残り、アクセス頻度の低いページがディスク装置１０５に書き出されるという状態が実現されるためである。
【００１４】
しかし、データベース管理システム１００の再起動時には、最適化されたメモリ部１０４の記憶状態、すなわちアクセス頻度の高いページが記憶された状態がクリアされた状態になる。
【００１５】
このため、前述の高速化技術を採用した場合でも、データベース管理システム１００の再起動時には、アクセス対象とするページが仮にアクセス頻度の高いページであったとしても、改めてディスク装置１０５からメモリ部１０４に読み出す必要がある。結局、メモリ部１０４の記憶状態が再起動前の状態に戻るには、一定時間以上の経過が必要となる。すなわち、メモリ部１０４内にアクセス頻度の高いページがある程度読み込まれるまでは、入出力装置１０１から処理命令を受ける度、ディスク装置１０５に対するアクセスが頻発するのを避け得ない問題がある。このことが、データベース管理システム１００の処理性能を大きく低下させる原因になる。
【００１６】
例えば、週末毎にデータベース管理システムを再起動する運用を採用している場合、週初めの利用開始時には、このような処理性能の低下が発生し易くなる。
【課題を解決するための手段】
【００１７】
そこで、出願人は、データの読み書き単位として割り当てられた各ページに固有のアクセス回数を、データベース管理システムに対する再起動後も継続的に管理するページアクセス管理テーブルを導入する。
【００１８】
また、出願人は、データベース管理システムの再起動時に、前述したページアクセス管理テーブルを参照してアクセス頻度が高いページを順番に選択し、それらを入出力装置からの処理命令を受け付ける前に、データ格納領域として使用される第２の記憶部から作業領域として使用される第１の記憶部に自動的に読み出す手法を提案する。
【発明の効果】
【００１９】
出願人の提案する発明の場合、データベース管理システムが再起動された直後でも、作業領域としての第１の記憶部にアクセス頻度の高いページを読み出しておくことが可能になる。勿論、再起動直後には、アクセス頻度の高いページを自動的に読み出しておくための第２の記憶部へのアクセスが不可欠となる。しかし、この自動的な読み出しが終了した
以降は、データベース管理システムの再起動直後であっても、アクセス頻度が高いページに対するアクセスを第１の記憶部内で完結することができる。この結果、従来技術では性能低下が認められたデータベース管理システムの再起動直後でも、入出力装置からの処理命令に対する高速処理を実現することができる。
【図面の簡単な説明】
【００２０】
【図１】データベース管理システムの一般的なシステム構成を示す図である。
【図２】ページアクセス管理テーブルを説明する図である。
【図３】ページ割り当て時の動作を説明する図である。
【図４】ページ割り当て時に実行される処理手順の一例を説明するフローチャートである。
【図５】ページアクセス時の動作を説明する図である。
【図６】ページアクセス時に実行される処理手順の一例を説明するフローチャートである。
【図７】再起動時の動作を説明する図である。
【図８】再起動時に実行される処理手順の一例を説明するフローチャートである。
【発明を実施するための形態】
【００２１】
以下、発明に係るデータベース管理システムの一形態例を説明する。なお言うまでも無く、発明は、後述する形態例や説明に限定されるものではなく、既知の技術と組み合わせた他の態様にも適用できる。
（１）形態例
（ａ）システム構成
この形態例の場合にも、図１に示すデータベース管理システムの構成を前提とする。従って、各部についての詳細説明は省略する。なお、形態例に係るデータベース管理システムは、比較的規模が大きい業務用システムを想定する。例えば顧客データや商品データを管理するデータベースの管理システム等を想定する。また、出願人の提案する管理技術の効果を最大化する観点から、この形態例に係るデータベース管理システムは、定期的にシャットダウンと再起動を実行するような運用形態が想定されるものであることが望ましい。
【００２２】
（ｂ）ページアクセス管理テーブル
以下、図２（Ａ）及び図２（Ｂ）を用い、ページアクセス管理テーブルについて説明する。なお、図２（Ａ）は、ある時点のディスク装置２０１におけるページの割り当て例を示している。この例の場合、ディスク装置２０１には、Ｐ０１〜Ｐ０４の４つのページが割り当てられている。
【００２３】
一方、図２（Ｂ）は、対応するページアクセス管理テーブル２０２のデータ例を示している。図２（Ｂ）に示すように、ページアクセス管理テーブル２０２は、ページ番号２０３とアクセス回数２０４の２つのカラム（列）で構成される。すなわち、ページアクセス管理テーブル２０２は、これらのカラムを組み合わせたレコードによって各ページのアクセス回数（履歴）を管理する。
【００２４】
なお、ページ番号２０３は、データベース管理システムがページを割り当てる際に、自動採番機能を用いて付与する番号である。この形態例の場合、Ｐｎｎで表現する。「ｎｎ」は、前ゼロ有の自然数を意味する。すなわち、ページ番号が１桁の場合には、十の桁にゼロを付して表現することを意味する。もっとも、現在流通しているデータベース管理システムのページ番号は１０桁程度が一般的である。
【００２５】
一方、アクセス回数２０４は、個々のページが割り当てられて以降にアクセスされた回
数の総数を意味する。ここでのアクセス回数には、アクセス対象とするページがどこに記憶されていたかは無関係であるものとする。すなわち、ページがメモリ部１０４に存在する場合でも、ページがメモリ部１０４には存在せずディスク装置１０５に存在する場合でも、ページに対するアクセスは１回としてカウントされるものとする。
【００２６】
図２（Ｂ）の場合、ページＰ０１に対するアクセス回数の総数は７回であり、ページＰ０２に対するアクセス回数の総和は８回であり、ページＰ０３に対するアクセス回数の総和は１回であり、ページＰ０４に対するアクセス回数の総和は２回であることが分かる。
【００２７】
（ｃ）データベース管理システムにおける管理動作
以下、形態例に係るデータベース管理システムによって実行される管理動作の内容を、処理ステージ別に説明する。なお、各管理動作は、処理部１０３に読み込まれて実行されるプログラムの一部の機能として実現される。
【００２８】
（ｃ１）ページ割り当て時の動作
ここでは、図３と図４を用い、新たにページが割り当てられる時点で実行される管理動作の内容を説明する。なお、図３（Ａ）は、メモリ部３０１とディスク装置３０２の間で実行されるページの読み出し動作の概念を示している。また、図３（Ｂ）は、この読み出し動作に関連して実行されるページアクセス管理テーブルの書き換え動作の様子を示している。また、図４は、処理部１０３において実行される処理手順を示している。
【００２９】
因みに、ここでの動作は、ディスク装置３０２にページＰ０１〜Ｐ０４が割り当てられている状況（対応するページを実線で囲んだブロックで示す。）において、不図示の入出力装置１０１を通じて投入された処理命令により、新たに２ページ分の割り当てが必要になった場合を想定する。
【００３０】
まず、処理部１０３は、新たにページＰ０５をディスク装置３０２に割り当てる（ステップ４０１）。図３においては、この新たに割り当てられるページＰ０５を破線で囲んだブロックで示している。
【００３１】
次に、処理部１０３は、新たに割り当てたページＰ０５をメモリ部３０１に読み込む（ステップ４０２）。
【００３２】
次に、処理部１０３は、ページＰ０５へのアクセス回数（履歴）を管理するレコードを、既存のページアクセス管理テーブル３０３の最後尾に挿入する（ステップ４０３）。具体的には、ページ番号Ｐ０５とアクセス回数（１回）を規定するレコード３０４をページアクセス管理テーブル３０３に追加的に挿入する。
【００３３】
この後、処理部１０３は、必要数分の割り当て処理が完了したか否かを判定する（ステップ４０４）。この例の場合には、この時点で、ページＰ０６の追加が完了していない。そこで、処理部１０３は、ステップ４０４で否定結果を得、ステップ４０１に処理手順を戻す。そして、処理部１０３は、ページＰ０６について、ステップ４０１からステップ４０３までの一連の処理を実行する。結果的に、ページＰ０６についても、ページ番号Ｐ０６とアクセス回数（１回）を規定するレコード３０４がページアクセス管理テーブル３０３に追加的に挿入される。
【００３４】
そして、処理部１０３は、ステップ４０４に規定する判定処理を再び実行する。今回は、必要とされる２ページ分の割り当て処理が完了している。従って、処理部１０３は、ステップ４０４において肯定結果を得、ステップ４０５に進む。すなわち、処理部１０３は、投入された処理命令に応じた処理を実行する（ステップ４０５）。
【００３５】
（ｃ２）ページアクセス時の動作
続いて、図５と図６を用い、新たなページアクセスが発生した時点で実行される管理動作の内容を説明する。
【００３６】
なお、図５（Ａ）は、メモリ部５０１とディスク装置５０２の間で実行されるページの読み出し動作の概念を示している。また、図５（Ｂ）は、この読み出し動作に関連して実行されるページアクセス管理テーブルの書き換え動作の様子を示している。また、図６は、処理部１０３において実行される処理手順を示している。
【００３７】
ここでは、ページＰ０１〜Ｐ０６がディスク装置５０２に割り当てられており、かつ、ページＰ０１〜Ｐ０４とＰ０６がメモリ部５０１に読み込まれている状況において、新たなページアクセスが発生した場合を想定する。具体的には、ページＰ０５に対するアクセスが発生する場合、およびページＰ０４に対するアクセスが発生する場合を想定する。
【００３８】
まず、処理部１０３は、アクセス対象であるページＰ０５がメモリ部５０１に存在するか否かを判定する（ステップ６０１）。図５（Ａ）の場合、ページＰ０５は、メモリ部５０１に存在しない。そこで、処理部１０３は、予め決められた置換方法に従って、メモリ部５０１の中で最もアクセス頻度の低いページとページＰ０５とを入れ替える処理を実行する（ステップ６０２）。置換方法には、例えばＬＲＵ法を使用する。
【００３９】
因みに、ここでのアクセスが開始される直前における各ページに対するアクセス回数は、以下の通りである。ページＰ０１に対するアクセス回数は７回、ページＰ０２に対するアクセス回数は８回、ページＰ０３、Ｐ０５、Ｐ０６に対するアクセス回数は１回、ページＰ０４に対するアクセス回数は２回である。以上より、この形態例の場合には、ページＰ０３とＰ０６のアクセス頻度がメモリ部５０１に存在するページ内で最低になる。
【００４０】
この形態例の場合、処理部１０３は、ページＰ０３をメモリ部５０１から入れ替える対象に設定する。すなわち、処理部１０３は、ページＰ０３をメモリ部５０１からディスク装置５０２に書き出す。この後、処理部１０３は、このページＰ０３が書き出された領域にディスク装置５０２から読み出したページＰ０５を書き込む。
【００４１】
次に、処理部１０３は、ページアクセス管理テーブル５０３のページＰ０５に対応するレコードのアクセス回数を１つカウントアップする（ステップ６０３）。具体的には、ページＰ０５のカウント値を１から２に更新する。
【００４２】
この後、処理部１０３は、投入された処理命令に応じた処理を実行する（ステップ６０４）。以上が、ページＰ０５に対するアクセスが発生した場合の動作である。
【００４３】
引き続き、ページＰ０４にアクセスする場合の動作を説明する。ページＰ０４は、メモリ部５０１に存在する。従って、処理部１０３は、ステップ６０１の判定処理において肯定結果を得る。すなわち、処理部１０３は、ステップ６０２をスキップし、ステップ６０３に進む。
【００４４】
この場合、処理部１０３は、ページアクセス管理テーブル５０３のページＰ０４に対応するレコードのアクセス回数を１つカウントアップする（ステップ６０３）。具体的には、ページＰ０４のカウント値を２から３に更新する。そして、処理部１０３は、投入された処理命令に応じた処理を実行する（ステップ６０４）。
【００４５】
（ｃ３）再起動時の動作
最後に、図７と図８を用い、データベース管理システムが再起動された直後に実行される管理動作の内容を説明する。
【００４６】
なお、図７（Ａ）は、メモリ部７０１とディスク装置７０２の間で実行されるページの読み出し動作の概念を示している。また、図７（Ｂ）は、この読み出し動作時に参照されるページアクセス管理テーブルを示している。また、図８は、処理部１０３において実行される処理手順を示している。
【００４７】
なお、この動作の前提として、データベース管理システムのシャットダウン時には、メモリ部７０１からディスク装置７０２にページとしてのページアクセス管理テーブル７０３が退避されているものとする。データベース管理システムのシャットダウンによって、メモリ部７０１内のデータは全て失われるのに対し、ディスク装置７０２のデータは失われないためである。
【００４８】
この退避動作により、データベース管理システム１００の運用中に再起動が複数回実行された場合でも、運用開始後に割り振られた全てのページについて現在までに発生したアクセスの回数が保存される。
【００４９】
このようなページアクセス管理テーブル７０３が存在するとの前提のもと、処理部１０３は、データベース管理システムの一般的な起動処理を実行する（ステップ８０１）。勿論、この時点において、メモリ部７０１はクリアされた状態である。
【００５０】
この起動処理が終了すると、処理部１０３は、この形態例に特有の動作としてページアクセス管理テーブル７０３の内容を読み込む処理を実行する（ステップ８０２）。
【００５１】
図７（Ｂ）に示すページアクセス管理テーブル７０３の場合、ページＰ０１のアクセス回数として７回、ページＰ０２のアクセス回数として８回、ページＰ０３のアクセス回数として１回、ページＰ０４のアクセス回数として３回、ページＰ０５のアクセス回数として２回、ページＰ０６のアクセス回数として１回がそれぞれ読み出される。
【００５２】
この後、処理部１０３は、アクセス頻度が高いページから順番に、ディスク装置７０２からメモリ部７０１にデータを読み込む処理を実行する（ステップ８０３）。すなわち、処理部１０３は、ページＰ０２、ページＰ０１、ページＰ０４の順番にディスク装置７０２からメモリ部７０１にページを読み込む。
【００５３】
勿論、この読み込みはメモリ部７０１の全ての領域を占有するまで行うことができる。この場合、処理部１０３は、引き続き、ページＰ０５、ページＰ０３をディスク装置７０２からメモリ部７０１に読み込む。
【００５４】
ただし、この再起動時におけるページの読み込みも、ディスク装置７０２に対するアクセスであることに変わりはない。
【００５５】
従って、メモリ部７０１について使用可能な記憶領域の上限範囲までアクセス頻度の高いページを読み込もうとすると、この読み込み時間自体が長くなってしまう。特に、再起動直後に作業を開始する場合には、この再起動直後の読み込みが完了するまでの間、入出力装置１０１からの処理命令に対する処理速度が一時的に低下する可能性がある。
【００５６】
そこで、このアクセス頻度の高いページの読み込み時間をあまり長くしたくない運用形態を採用したい場合には、メモリ部７０１の記憶領域のうち何％分だけを読み込みに使用するかを予め予約することが望まれる。すなわち、予約された使用領域の上限値を超えな
いように、読み込み対象とするアクセス頻度の高いページの数を制限する方法を採用する。
【００５７】
図７は、メモリ部７０１の記憶領域の６０％分だけを、再起動時におけるアクセス頻度の高いページの読み込み領域として予約する場合について表している。図７の場合、メモリ部７０１で使用可能な領域は、５ページ分である。従って、その６０％は３ページ分となる。
【００５８】
このため、図７の場合には、５ページ分の記憶領域を有するメモリ部７０１に対して３ページ分だけ、アクセス頻度の高いページＰ０２，Ｐ０１，Ｐ０４を順番に読み込んでいる。
【００５９】
（２）まとめ
以上説明したように、この形態例に係るデータベース管理システムの場合には、その再起動後も、作業領域として使用されるメモリ部７０１にアクセス頻度の高いページを事前に読み込むことができる。従って、この形態例に係るデータベース管理システムの場合には、再起動を定期的に実行するような運用形態を採用する場合でも、再起動の直後から入出力装置１０１からの処理命令に対して高速な処理動作を実現することができる。
【００６０】
また、再起動の直後からユーザ作業が想定されるデータベース管理システムの場合には、再起動時に読み込むアクセス頻度の高いページの読み込み数を制限することにより、アクセス頻度の高いページの読み込み時間とページに対する高速アクセスとを両立することができる。
【００６１】
（３）その他
前述した形態例の場合には、アクセスに要する時間が短い記憶領域として半導体集積回路としてのメモリ部１０４を想定し、アクセスに要する時間が長い記憶領域としてディスク装置１０５を想定した。しかし、記憶領域の組み合わせはこれらに限られるものではなく、将来の各時点において採用可能な組み合わせについて適用できる。
【００６２】
また、前述したデータベース管理システムは、必ずしも物理的に１つの建物内に構築されている必要は無い。例えば入出力装置１０１、データベース管理システム本体１０２、ディスク装置１０５のそれぞれがネットワークを通じてそれぞれ異なる建物内に構築されていても良い。
【００６３】
また、前述したデータベース管理システムは、国又は国に準じる地域を跨ぐように構築されていても良い。
【００６４】
また、前述したデータベース管理システムの全ての構成要素は、同一の事業者によって運用されている必要は無く、部分的に異なる事業者によって管理運用されていても良い。
【符号の説明】
【００６５】
１００…データベース管理システム、１０１…入出力装置、１０２…データベース管理システム本体、１０３…処理部、１０４、３０１、５０１、７０１…メモリ部、１０５、２０１、３０２、５０２、７０２…ディスク装置、２０２、３０３、５０３、７０３…ページアクセス管理テーブル、２０３…ページ番号、２０４…アクセス回数、３０４…挿入するレコード、４０１〜４０５、６０１〜６０４、８０１〜８０３…処理フローの構成要素
【図１】
2010186299.tif 000003
【図２】
2010186299.tif 000004
【図３】
2010186299.tif 000005
【図４】
2010186299.tif 000006
【図５】
2010186299.tif 000007
【図６】
2010186299.tif 000008
【図７】
2010186299.tif 000009
【図８】
2010186299.tif 000010