(57)【要約】【課題】データベースに記憶された各テーブルに割り当てられる主記憶装置の記憶容量を効率的に最適化すること。【解決手段】データベースにおけるテーブル１３ａ〜１３ｃを操作対象とするプロセスの実行要求を受け付け、実行要求を受け付けたプロセスにより操作される各テーブル１３ａ〜１３ｃに対するアクセス負荷量を、受け付けたプロセスの実行要求数（ログイン数）とそのプロセスにより操作される各テーブル１３ａ〜１３ｃに対するアクセス数とに基づいて算定し、算定されたアクセス負荷量に基づいて各テーブル１３ａ〜１３ｃのインデックス用に用いられる主記憶装置の記憶領域の割当量を決定し、その割当量を各テーブル１３ａ〜１３ｃに割り当てる。【選択図】      図１
2004341874.tif 000002
【特許請求の範囲】
【請求項１】
データベースの操作対象となる各データに対応して確保される主記憶装置の記憶領域を管理するデータベース管理装置であって、
前記データを操作対象とするプロセスの実行要求を受け付けるプロセス実行要求受付手段と、
前記プロセス実行要求受付手段により実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定する負荷量算定手段と、
前記負荷量算定手段により算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、該割当量を各データに割り当てる記憶領域割当手段と、
を備えたことを特徴とするデータベース管理装置。
【請求項２】
前記データは、リレーショナル型データベースにおけるテーブルを含み、プロセス実行要求受付手段は、前記テーブルを操作対象とするプロセスの実行要求を受け付け、前記負荷量算定手段は、前記プロセス実行要求受付手段により実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定し、前記記憶領域割当量決定手段は、前記負荷量算定手段により算定されたアクセスに係る負荷量に基づいて各テーブルに対応して確保される主記憶装置の記憶領域の割当量を決定し、該割当量を各テーブルに割り当てることを特徴とする請求項１に記載のデータベース管理装置。
【請求項３】
前記記憶領域割当量決定手段は、前記テーブルに対応して確保され、該テーブルのデータ検索に用いられるインデックスを記憶する主記憶装置の記憶領域の割当量を決定し、該割当量を各テーブルに割り当てることを特徴とする請求項２に記載のデータベース管理装置。
【請求項４】
前記負荷量算定手段は、前記プロセス実行要求受付手段により受け付けたプロセスの実行要求数と該プロセスにより操作される各テーブルに対するアクセス数とに基づいて、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定することを特徴とする請求項２または３に記載のデータベース管理装置。
【請求項５】
データベースの操作対象となる各データに対応して確保される主記憶装置の記憶領域を管理するデータベース管理プログラムであって、
前記データを操作対象とするプロセスの実行要求を受け付けるプロセス実行要求受付手順と、
前記プロセス実行要求受付手順により実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定する負荷量算定手順と、
前記負荷量算定手順により算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、該割当量を各データに割り当てる記憶領域割当手順と、
をコンピュータに実行させることを特徴とするデータベース管理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データベースの操作対象となる各データに対応して確保される主記憶装置の記憶領域を管理するデータベース管理装置およびデータベース管理プログラムに関し、特に、データベースに記憶された各データに割り当てられる主記憶装置の記憶容量を効率的に最適化することのできるデータベース管理装置およびデータベース管理プログラムに関する。
【０００２】
【従来の技術】
従来、データベースにおいてデータを検索する際に、データの検索を効率よくおこなうためにあらかじめインデックス（索引）を作成し、作成されたインデックスを参照してデータの検索をおこなうインデックススキャンと呼ばれる方法が広く知られている。
【０００３】
通常、このインデックスは外部記憶装置であるハードディスクに記憶されるが、ハードディスクに対するアクセス速度は主記憶装置であるＲＡＭに対するアクセス速度に比べて極端に遅いため、インデックスを参照する際には、それを一旦ＲＡＭに読み込んでからインデックスに対する処理をおこなっている。
【０００４】
ところが、大規模なデータベースにおいてインデックスのサイズが大きいときには、記憶容量が限られているＲＡＭにインデックス全体を読み込むことができなくなる場合が生じる（非特許文献１参照。）。その場合、インデックスの一部はハードディスクから読み込んで処理をおこなう必要があり、アクセス速度が遅くなる原因となる。
【０００５】
そのため、頻繁にアクセスされるデータのインデックスに対しては、大きなＲＡＭの記憶容量を割り当て、インデックスのより多くの部分をＲＡＭに読み込むことができるよう、インデックスを記憶するＲＡＭの記憶容量をあらかじめ設定するといったことがなされる。
【０００６】
【非特許文献１】
ＳＵＮ  Ｍｉｃｒｏｓｙｓｔｅｍｓ、“インデックスを作成した場合の代価”、［ｏｎｌｉｎｅ］、２００２年２月、ＳＵＮ  Ｍｉｃｒｏｓｙｓｔｅｍｓ、［平成１５年４月２５日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｄｏｃｓ．ｓｕｎ．ｃｏｍ／ｄｂ／ｄｏｃ／８０６−７０８９／６ｊｇ０４４９ｉｓ？ａ＝ｖｉｅｗ＞
【０００７】
【発明が解決しようとする課題】
しかしながら、従来のＲＡＭの記憶容量をあらかじめ設定しておく方法では、どのデータに対するアクセスが多くなるのかを予測して、そのデータのインデックスに対する記憶容量の割当量を設定する必要があるという問題があった。
【０００８】
具体的には、あるデータへのアクセス数が少ないと予測した場合に、そのデータのインデックスに対する割当量が少なく設定されるが、予測が外れてアクセス数が多かった場合には、ハードディスクに記憶されたインデックスへのアクセスが頻繁に生じ、検索に時間がかかるという結果となる。
【０００９】
逆に、あるデータへのアクセス数が多いと予測した場合は、割当量が多く設定されるが、実際のアクセス数が少なかった場合には、余分に割り当てられた記憶容量が無駄になるという問題があった。
【００１０】
このような場合、各データのインデックスに対する割当量を再度設定しなおす必要が生じ、データベースの管理が非効率的となるばかりでなく、再設定がなされるまでの間、検索に時間がかかるなどデータベースの運用の面でも問題が生じる。
【００１１】
このような問題は、インデックス用に確保される記憶容量に対してだけでなく、データ処理のためにさまざまな用途で一時的に利用されるバッファ領域などを割り当てる場合にも生じ得るものである。
【００１２】
この発明は、上記問題（課題）を解消するためになされたものであり、データベースに記憶された各データに割り当てられる主記憶装置の記憶容量を効率的に最適化することのできるデータベース管理装置およびデータベース管理プログラムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記目的を達成するために、本発明によれば、データベースの操作対象となる各データに対応して確保される主記憶装置の記憶領域を管理するデータベース管理装置であって、前記データを操作対象とするプロセスの実行要求を受け付けるプロセス実行要求受付手段と、前記プロセス実行要求受付手段により実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定する負荷量算定手段と、前記負荷量算定手段により算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、該割当量を各データに割り当てる記憶領域割当手段と、を備えたことを特徴とする。
【００１４】
この発明によれば、データベースにおけるデータを操作対象とするプロセスの実行要求を受け付け、実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定し、算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、その割当量を各データに割り当てることとしたので、データベースに記憶された各データに割り当てられる主記憶装置の記憶容量を効率的に最適化することができる。
【００１５】
また、本発明によれば、前記データは、リレーショナル型データベースにおけるテーブルを含み、プロセス実行要求受付手段は、前記テーブルを操作対象とするプロセスの実行要求を受け付け、前記負荷量算定手段は、前記プロセス実行要求受付手段により実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定し、前記記憶領域割当量決定手段は、前記負荷量算定手段により算定されたアクセスに係る負荷量に基づいて各テーブルに対応して確保される主記憶装置の記憶領域の割当量を決定し、該割当量を各テーブルに割り当てることを特徴とする。
【００１６】
この発明によれば、リレーショナル型データベースにおけるテーブルを操作対象とするプロセスの実行要求を受け付け、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定し、算定されたアクセスに係る負荷量に基づいて各テーブルに対応して確保される主記憶装置の記憶領域の割当量を決定し、その割当量を各テーブルに割り当てることとしたので、データベースに記憶された各テーブルに割り当てられる主記憶装置の記憶容量を効率的に最適化することができる。
【００１７】
また、本発明によれば、前記記憶領域割当量決定手段は、前記テーブルに対応して確保され、該テーブルのデータ検索に用いられるインデックスを記憶する主記憶装置の記憶領域の割当量を決定し、該割当量を各テーブルに割り当てることを特徴とする。
【００１８】
この発明によれば、テーブルに対応して確保され、そのテーブルのデータ検索に用いられるインデックスを記憶する主記憶装置の記憶領域の割当量を決定し、その割当量を各テーブルに割り当てることとしたので、データベースに記憶された各テーブルにインデックス用に割り当てられる主記憶装置の記憶容量を効率的に最適化することができる。
【００１９】
また、本発明によれば、前記負荷量算定手段は、前記プロセス実行要求受付手段により受け付けたプロセスの実行要求数と該プロセスにより操作される各テーブルに対するアクセス数とに基づいて、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定することを特徴とする。
【００２０】
この発明によれば、受け付けたプロセスの実行要求数とそのプロセスにより操作される各テーブルに対するアクセス数とに基づいて、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定することとしたので、各テーブルに対するアクセスに係る負荷を適切に評価することができる。
【００２１】
また、本発明によれば、データベースの操作対象となる各データに対応して確保される主記憶装置の記憶領域を管理するデータベース管理プログラムであって、前記データを操作対象とするプロセスの実行要求を受け付けるプロセス実行要求受付手順と、前記プロセス実行要求受付手順により実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定する負荷量算定手順と、前記負荷量算定手順により算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、該割当量を各データに割り当てる記憶領域割当手順と、をコンピュータに実行させることを特徴とする。
【００２２】
この発明によれば、データベースにおけるデータを操作対象とするプロセスの実行要求を受け付け、実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定し、算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、その割当量を各データに割り当てることとしたので、データベースに記憶された各データに割り当てられる主記憶装置の記憶容量を効率的に最適化することができる。
【００２３】
また、本発明によれば、前記データは、リレーショナル型データベースにおけるテーブルを含み、プロセス実行要求受付手順は、前記テーブルを操作対象とするプロセスの実行要求を受け付け、前記負荷量算定手順は、前記プロセス実行要求受付手順により実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定し、前記記憶領域割当量決定手順は、前記負荷量算定手順により算定されたアクセスに係る負荷量に基づいて各テーブルに対応して確保される主記憶装置の記憶領域の割当量を決定し、該割当量を各テーブルに割り当てることを特徴とする。
【００２４】
この発明によれば、リレーショナル型データベースにおけるテーブルを操作対象とするプロセスの実行要求を受け付け、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定し、算定されたアクセスに係る負荷量に基づいて各テーブルに対応して確保される主記憶装置の記憶領域の割当量を決定し、その割当量を各テーブルに割り当てることとしたので、データベースに記憶された各テーブルに割り当てられる主記憶装置の記憶容量を効率的に最適化することができる。
【００２５】
また、本発明によれば、前記記憶領域割当量決定手順は、前記テーブルに対応して確保され、該テーブルのデータ検索に用いられるインデックスを記憶する主記憶装置の記憶領域の割当量を決定し、該割当量を各テーブルに割り当てることを特徴とする。
【００２６】
この発明によれば、テーブルに対応して確保され、そのテーブルのデータ検索に用いられるインデックスを記憶する主記憶装置の記憶領域の割当量を決定し、その割当量を各テーブルに割り当てることとしたので、データベースに記憶された各テーブルにインデックス用に割り当てられる主記憶装置の記憶容量を効率的に最適化することができる。
【００２７】
また、本発明によれば、前記負荷量算定手順は、前記プロセス実行要求受付手順により受け付けたプロセスの実行要求数と該プロセスにより操作される各テーブルに対するアクセス数とに基づいて、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定することを特徴とする。
【００２８】
この発明によれば、受け付けたプロセスの実行要求数とそのプロセスにより操作される各テーブルに対するアクセス数とに基づいて、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定することとしたので、各テーブルに対するアクセスに係る負荷を適切に評価することができる。
【００２９】
また、本発明によれば、データベースの操作対象となる各データに対応して確保される主記憶装置の記憶領域を管理するデータベース管理方法であって、前記データを操作対象とするプロセスの実行要求を受け付けるプロセス実行要求受付工程と、前記プロセス実行要求受付工程により実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定する負荷量算定工程と、前記負荷量算定工程により算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、該割当量を各データに割り当てる記憶領域割当工程と、を含んだことを特徴とする。
【００３０】
この発明によれば、データベースにおけるデータを操作対象とするプロセスの実行要求を受け付け、実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定し、算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、その割当量を各データに割り当てることとしたので、データベースに記憶された各データに割り当てられる主記憶装置の記憶容量を効率的に最適化することができる。
【００３１】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るデータベース管理装置およびデータベース管理プログラムの好適な実施の形態を詳細に説明する。なお、本実施の形態では、データベースの一種であるリレーショナル型データベースに本発明を適用した場合を示すこととする。
【００３２】
まず、本実施の形態に係るデータベース管理システムの構成について説明する。図１は、本実施の形態に係るデータベース管理システムの構成を示す機能ブロック図である。
【００３３】
同図に示すように、このデータベース管理システムは、各端末装置１０ａ〜１０ｃとデータベース管理装置１２とがネットワーク１１を介して接続された構成となる。また、データベース管理装置１２は、データベース１３と接続されており、データベース１３に対してデータの追加や削除、検索などのさまざまなプロセス（処理）を実行する。
【００３４】
端末装置１０ａ〜１０ｃは、データベース管理装置１２にアクセス可能なネットワーク端末であり、データベース管理装置１２に対してデータベース１３に対するデータの追加や削除、検索などのさまざまなプロセスの実行を要求することができる。
【００３５】
データベース１３は、さまざまなデータをテーブル（表）１３ａ〜１３ｃとして記憶したハードディスク装置などの外部記憶装置である。このデータベース１３に記憶されたデータは、データベース管理装置１２により制御や管理がなされる。ここでは、データベース１３は、データベース管理装置１２に外部接続された構成になっているが、データベース管理装置１２の内部に設けられることとしてもよい。
【００３６】
データベース管理装置１２は、本発明に係る装置であり、データベース１３の管理をおこなうとともに、ネットワーク上の各端末装置１０ａ〜１０ｃからデータベース１３に対するプロセスの実行要求を受け付けてそれを実行し、実行結果を端末装置１０ａ〜１０ｃに送信する装置である。
【００３７】
このデータベース管理装置１２は、単にデータベース１３に対するデータの追加や削除、検索などのプロセスの実行をおこなうだけでなく、端末装置１０ａ〜１０ｃから実行要求を受け付けたさまざまなプロセスのプロセス数を基にして、各プロセスによりアクセスされる各テーブル１３ａ〜１３ｃのアクセスに係る負荷量を算定し、その負荷量に応じて各テーブル１３ａ〜１３ｃに対するインデックス用に確保された主記憶装置の記憶領域を拡張する処理をおこなう。
【００３８】
これにより、各テーブル１３ａ〜１３ｃに割り当てられる主記憶装置の記憶容量を効率的に最適化することができ、インデックスによる検索を高速におこなうことができる。
【００３９】
図１に示すように、このデータベース管理装置１２は、インターフェース部１２１、表示部１２２、入力部１２３、記憶部１２４および制御部１２５を有する。インターフェース部１２１は、ネットワーク１１を介して端末装置１０ａ〜１０ｃとデータの授受をおこなうネットワークインターフェースである。
【００４０】
表示部１２２は、ディスプレイ装置などの表示デバイスであり、入力部１２３は、キーボードやマウスなどの入力デバイスである。記憶部１２４は、ハードディスク装置などの記憶デバイスであり、この記憶部１２４には、プロセスログイン数情報１２４ａ、プロセス情報１２４ｂおよび拡張量情報１２４ｃが記憶されている。
【００４１】
プロセスログイン数情報１２４ａは、端末装置１０ａ〜１０ｃにより実行要求を受け付け、ログインされている各プロセスのある時刻におけるプロセス数を記憶したデータである。図２は、図１に示したプロセスログイン数情報１２４ａの一例を示す図である。
【００４２】
同図に示すように、このプロセスログイン数情報１２４ａは、プロセスＩＤおよびプロセスログイン数のフィールドを有する。プロセスＩＤは、ログインされている各プロセスを識別するＩＤであり、プロセスログイン数は、ログインされている各プロセスのログイン数である。たとえば、図２の例では、プロセスＡに対するログイン数は１０であることがわかる。
【００４３】
図１の説明に戻ると、プロセス情報１２４ｂは、各テーブルのアクセスに係る負荷量を算定するために参照されるデータである。図３は、図１に示したプロセス情報１２４ｂの一例を示す図である。
【００４４】
同図に示すように、このプロセス情報１２４ｂは、プロセスＩＤ、拡張レベルおよびテーブルアクセス回数の各フィールドを有する。プロセスＩＤは、各プロセスを識別するＩＤである。
【００４５】
拡張レベルは、各テーブル１３ａ〜１３ｃに対してインデックス用に確保される主記憶装置の記憶領域の拡張のレベル（度合い）を設定したデータである。この例では、レベルは０から３の３段階となっているが、さらに多くの段階に分けてもよい。
【００４６】
この拡張レベルには、各プロセスに対するログイン数の範囲がレベルごとに設定されており、ログイン数により拡張レベルを判定することができる。たとえば、図２および図３の例では、プロセスＡ、プロセスＢおよびプロセスＣのログイン数が１０、４１および６であるが、この場合には拡張レベルはそれぞれ０、２および１と判定される。
【００４７】
テーブルアクセス回数は、各プロセスがテーブルにアクセスするアクセス回数をテーブルごとに記憶したデータである。たとえば、プロセスＡは、テーブル１に１回、テーブル３に１回アクセスするといった情報を取得することができる。
【００４８】
図１の説明に戻ると、拡張量情報１２４ｃは、各プロセスによりアクセスされるテーブルのアクセス負荷に応じて拡張される、インデックス用の記憶容量の拡張量を記憶したデータである。図４は、図１に示した拡張量情報１２４ｃの一例を示す図である。
【００４９】
同図に示すように、この拡張量情報１２４ｃは、負荷量順位および拡張量のフィールドを有する。負荷量順位は、各プロセスによりアクセスされるテーブルに対し、アクセス負荷の大小により順位付けをおこなった各テーブルの順位である。
【００５０】
拡張量は、各テーブルの負荷量順位に応じて拡張されるインデックス用の記憶容量の拡張量を設定したデータである。図４の例では、負荷量順位が１位、２位、３位および４位であるテーブルには、拡張量をそれぞれ拡張可能な最大量（拡張後１０ＭＢ）、５ＭＢ、２．５ＭＢおよび０ＭＢとするよう設定されている。ここで、拡張可能な最大量（拡張後１０ＭＢ）とは、拡張後の記憶容量が１０ＭＢとなるよう拡張することを意味する。
【００５１】
図１の説明に戻ると、制御部１２５は、データベース管理装置１２を全体制御する制御部であり、プロセス実行要求受付部１２５ａ、負荷量算定部１２５ｂ、記憶領域割当部１２５ｃおよびデータベース管理部１２５ｄを有する。
【００５２】
プロセス実行要求受付部１２５ａは、端末装置１０ａ〜１０ｃからのデータベース１３に対するプロセスの実行要求を受け付ける受付部である。また、このプロセス実行要求受付部１２５ａは、実行要求を受け付け、ログインされているプロセスのログイン数を監視して、プロセスログイン数情報１２４ａのプロセスログイン数のデータを定期的に更新する。
【００５３】
負荷量算定部１２５ｂは、プロセスログイン数情報１２４ａおよびプロセス情報１２４ｂに記憶されたデータを基にして、実行要求を受け付けたプロセスによりアクセスされる各テーブル１３ａ〜１３ｃに対するアクセス負荷量を算定する算定部である。
【００５４】
記憶領域割当部１２５ｃは、算定されたアクセス負荷量を基にして各テーブルのアクセス負荷量の順位を定め、拡張量情報１２４ｃを参照して各テーブルのインデックス用に割り当てられる記憶容量の拡張量のデータを取得し、取得した拡張量の記憶容量を各テーブル１３ａ〜１３ｃに割り当てる割当部である。
【００５５】
データベース管理部１２５ｄは、端末装置１０ａ〜１０ｃにより実行要求がなされたプロセスを実行する管理部であり、データベース１３に対するデータの追加や削除、あるいはデータの検索などの操作をおこなう。
【００５６】
次に、図１に示したデータベース管理装置１２がおこなう記憶容量拡張処理の処理手順について説明する。図５は、図１に示したデータベース管理装置１２がおこなう記憶容量拡張処理の処理手順を示すフローチャートである。
【００５７】
同図に示すように、まず、データベース管理装置１２は、時間計測をおこない（ステップＳ５０１）、所定の時間が経過したかどうかを調べる（ステップＳ５０２）。所定の時間が経過していない場合には（ステップＳ５０２，Ｎｏ）、ステップＳ５０１に移行して、時間計測を継続する。
【００５８】
所定の時間が経過した場合には（ステップＳ５０２，Ｙｅｓ）、各プロセスのログイン数の情報を取得して、プロセスログイン数情報に記憶する（ステップＳ５０３）。
【００５９】
そして、プロセス情報１２４ｂを参照し、各プロセスのログイン数から記憶容量の拡張レベルを判定する（ステップＳ５０４）。続いて、各プロセスのテーブルアクセス回数のデータをプロセス情報１２４ｂから取得し、各テーブルのアクセス負荷を以下の式により算定する（ステップＳ５０５）。
【００６０】
（テーブルｎのアクセス負荷）
＝（プロセスＡにおけるテーブルｎのテーブルアクセス回数）
×（プロセスＡの拡張レベル）
＋（プロセスＢにおけるテーブルｎのテーブルアクセス回数）
×（プロセスＢの拡張レベル）
＋（プロセスＣにおけるテーブルｎのテーブルアクセス回数）
×（プロセスＣの拡張レベル）
なお、ここでは、上記の式によりアクセス負荷量を算定することとしたが、これに限らず、さまざまなアクセス負荷量の算定式を定義してもよい。
【００６１】
図２および図３の例では、プロセスＡ、プロセスＢおよびプロセスＣの拡張レベルはそれぞれ０、２および１となるので、テーブル１からテーブル４に対する各アクセス負荷は以下のように算定される。
（テーブル１のアクセス負荷）＝１×０＋０×２＋０×１＝０
（テーブル２のアクセス負荷）＝０×０＋２×２＋３×１＝７
（テーブル３のアクセス負荷）＝１×０＋０×２＋１×１＝１
（テーブル４のアクセス負荷）＝０×０＋１×２＋１×１＝３
【００６２】
そして、算定されたアクセス負荷を基にして、アクセス負荷の大きい順から各テーブルの順位付けをおこなう（ステップＳ５０６）。図２および図３の例では、テーブル２、テーブル４、テーブル３およびテーブル１の順にアクセス負荷が大きいので、負荷順位は、１位がテーブル２、２位がテーブル４、３位がテーブル３、そして４位がテーブル１となる。
【００６３】
また、一度もアクセスされないテーブルは順位外として、前回までにそのテーブルに割り当てられた記憶容量の拡張量分を解放し、デフォルトの記憶容量とする処理をおこなう（ステップＳ５０７）。
【００６４】
その後、拡張量情報１２４ｃから各負荷順位に対応するインデックス用の記憶容量の拡張量のデータを取得する（ステップＳ５０８）。そして、まず、順位が１位のテーブルを選択し（ステップＳ５０９）、そのテーブルに対して記憶容量の拡張処理をおこなった後の、各テーブルの記憶容量を足し合わせた全記憶容量を算出する（ステップＳ５１０）。
【００６５】
続いて、算出された全記憶容量が、すべてのテーブルのインデックスを記憶するために主記憶装置に確保することのできる有効記憶容量を越えたかどうかを調べる（ステップＳ５１１）。有効記憶容量を越えた場合には（ステップＳ５１１，Ｙｅｓ）、ステップＳ５０１に移行して所定の時間後に再度拡張処理をおこなう。
【００６６】
有効記憶容量を越えない場合には（ステップＳ５１１，Ｎｏ）、選択されたテーブルの記憶容量を、ステップＳ５０８で取得した拡張量分だけ拡張する（ステップＳ５１２）。
【００６７】
その後、すべてのテーブルに対してステップＳ５１０からステップＳ５１２までの処理が終了したかどうかを調べ（ステップＳ５１３）、終了していない場合には（ステップＳ５１３，Ｎｏ）、次に負荷順位の高いテーブルを選択し（ステップＳ５１４）、ステップＳ５１０に移行して、ステップＳ５１０からステップＳ５１３の処理をおこなう。
【００６８】
すべてのテーブルに対して処理が終了した場合には（ステップＳ５１３，Ｙｅｓ）、ステップＳ５０１に移行して、次の時刻における記憶容量の拡張処理をおこなう。
【００６９】
図６は、図５に示した記憶容量拡張処理により拡張された記憶容量の状態の一例を示す図である。同図に示すように、この例では、有効記憶容量は３０ＭＢ（＝７．５ＭＢ×４、図の点線で囲まれる容量）であり、前回の記憶容量拡張処理終了後のテーブル１からテーブル４の記憶容量の割当量は、それぞれ５ＭＢ、１ＭＢ、３ＭＢおよび２ＭＢとなっている。
【００７０】
そして、図５のステップＳ５０６により決定された負荷順位は、１位がテーブル２、２位がテーブル４、３位がテーブル３、そして４位がテーブル１であるので、拡張量情報１２４ｃから各テーブルの拡張量はそれぞれ拡張可能な最大量（拡張後１０ＭＢ）、５ＭＢ、２．５ＭＢおよび０ＭＢとなる。
【００７１】
したがって、拡張量分が加えられた各テーブルの記憶容量は、テーブル１が５ＭＢ（拡張量は０ＭＢ）、テーブル２が１０ＭＢ（拡張可能な最大量、拡張後１０ＭＢ）、テーブル３が５．５ＭＢ（拡張量は２．５ＭＢ）、そしてテーブル４が７ＭＢ（拡張量は５ＭＢ）となる。
【００７２】
ここで、各テーブルの記憶容量を足し合わせた全記憶容量は、２７．５ＭＢ（＝５ＭＢ＋１０ＭＢ＋５．５ＭＢ＋７ＭＢ）であり、有効記憶容量である３０ＭＢ以下である。したがって、すべてのテーブルに対して拡張量情報１２４ｃに基づいて決定された拡張量の割り当てが可能となっている。
【００７３】
次に、本実施の形態に係るデータベース管理装置１２のハードウェア構成について説明する。図７は、本実施の形態に係るデータベース管理装置１２のハードウェア構成を示すブロック図である。
【００７４】
同図に示すように、本実施の形態に係るデータベース管理装置１２は、データベース管理装置１２からの指示によってさまざまな情報を表示するためのディスプレイ２００、このデータベース管理装置１２に種々の情報を入力するためのキーボード２０１およびディスプレイ２００の表示画面上の任意の位置を指定するためのマウス２０２を備える。
【００７５】
また、このデータベース管理装置１２は、ＣＰＵ２０９、ＲＡＭ２１０、ＲＯＭ２１１、ハードディスクドライブ（ＨＤＤ）２１２、ＣＤ−ＲＯＭを受け入れるＣＤ−ＲＯＭドライブ２１３、フレキシブルディスク（ＦＤ）を受け入れるＦＤドライブ２１４、ディスプレイ２００、キーボード２０１ならびにマウス２０２を接続するＩ／Ｏインターフェース２１５、ローカルエリアネットワークまたはワイドエリアネットワーク（ＬＡＮ／ＷＡＮ）に接続するＬＡＮインターフェース２１６を備える。ハードディスクドライブ２１２には、プロセスログイン数情報１２４ａ、プロセス情報１２４ｂおよび拡張量情報１２４ｃが記憶されている。
【００７６】
さらに、このデータベース管理装置１２には、インターネットなどの公衆回線２０５に接続するためのモデム２０４が接続されるとともに、ＬＡＮインターフェース２１６およびＬＡＮ／ＷＡＮを介して、他のコンピュータシステム（ＰＣ）２０６やサーバ２０７などが接続される。
【００７７】
また、このデータベース管理装置１２には、外付ハードディスクドライブ（外付ＨＤＤ）２０３が接続され、リレーショナル型のデータベースとして、各テーブル１３ａ〜１３ｃを記憶している。
【００７８】
そして、このデータベース管理装置１２は、所定の記録媒体に記録されたデータベース管理プログラムを読み出して実行することでデータベース管理装置１２の機能を実現する。
【００７９】
ここで、所定の記録媒体とは、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」の他に、データベース管理装置１２の内外に備えられるハードディスクドライブ（ＨＤＤ）２１２や、ＲＡＭ２１０、ＲＯＭ２１１などの「固定用の物理媒体」、さらに、モデム２０４を介して接続される公衆回線２０５や、他のコンピュータシステム２０６ならびにサーバ２０７が接続されるＬＡＮ／ＷＡＮなどのように、プログラムの送信に際して短期にプログラムを保持する「通信媒体」など、データベース管理装置１２によって読み取り可能なデータベース管理プログラムを記録する、あらゆる記録媒体を含むものである。
【００８０】
すなわち、データベース管理プログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記録されるものであり、データベース管理装置１２は、このような記録媒体からデータベース管理プログラムを読み出して実行することでデータベース管理装置１２の機能を実現する。
【００８１】
なお、データベース管理プログラムは、データベース管理装置１２によって実行されることに限定されるものではなく、他のコンピュータシステム２０６またはサーバ２０７がデータベース管理プログラムを実行する場合や、これらが協働してデータベース管理プログラムを実行するような場合にも、本発明を同様に適用することができる。
【００８２】
以上説明してきたように、本実施の形態によれば、データベースにおけるテーブル１３ａ〜１３ｃを操作対象とするプロセスの実行要求を受け付け、実行要求を受け付けたプロセスにより操作される各テーブル１３ａ〜１３ｃに対するアクセス負荷量を、受け付けたプロセスの実行要求数とそのプロセスにより操作される各テーブル１３ａ〜１３ｃに対するアクセス数とに基づいて算定し、算定されたアクセス負荷量に基づいて各テーブル１３ａ〜１３ｃのインデックス用に用いられる主記憶装置の記憶領域の割当量を決定し、その割当量を各テーブル１３ａ〜１３ｃに割り当てることとしたので、データベースに記憶された各テーブルに割り当てられるインデックス用の主記憶装置の記憶容量を効率的に最適化することができる。
【００８３】
さて、これまで本発明の実施の形態について説明したが、本発明は上述した実施の形態以外にも、上記特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施の形態にて実施されてもよいものである。
【００８４】
例えば、本実施の形態では、各テーブルに対して確保されるインデックス用の記憶領域の割り当てに対して本発明を適用した場合を示したが、本発明はこれに限定されるものではなく、データ処理のためにさまざまな用途で一時的に利用されるバッファ領域などの割り当てにも適用することができる。
【００８５】
また、本実施の形態では、データベースの種類としてリレーショナル型データベースに本発明を適用した場合を示したが、本発明はこれに限定されるものではなく、階層型、ネットワーク型あるいはオブジェクト型のデータベースに対しても適用することができる。
【００８６】
また、本実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。
【００８７】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００８９】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９０】
（付記１）データベースの操作対象となる各データに対応して確保される主記憶装置の記憶領域を管理するデータベース管理装置であって、
前記データを操作対象とするプロセスの実行要求を受け付けるプロセス実行要求受付手段と、
前記プロセス実行要求受付手段により実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定する負荷量算定手段と、前記負荷量算定手段により算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、該割当量を各データに割り当てる記憶領域割当手段と、
を備えたことを特徴とするデータベース管理装置。
【００９１】
（付記２）前記データは、リレーショナル型データベースにおけるテーブルを含み、プロセス実行要求受付手段は、前記テーブルを操作対象とするプロセスの実行要求を受け付け、前記負荷量算定手段は、前記プロセス実行要求受付手段により実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定し、前記記憶領域割当量決定手段は、前記負荷量算定手段により算定されたアクセスに係る負荷量に基づいて各テーブルに対応して確保される主記憶装置の記憶領域の割当量を決定し、該割当量を各テーブルに割り当てることを特徴とする付記１に記載のデータベース管理装置。
【００９２】
（付記３）前記記憶領域割当量決定手段は、前記テーブルに対応して確保され、該テーブルのデータ検索に用いられるインデックスを記憶する主記憶装置の記憶領域の割当量を決定し、該割当量を各テーブルに割り当てることを特徴とする付記２に記載のデータベース管理装置。
【００９３】
（付記４）前記負荷量算定手段は、前記プロセス実行要求受付手段により受け付けたプロセスの実行要求数と該プロセスにより操作される各テーブルに対するアクセス数とに基づいて、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定することを特徴とする付記２または３に記載のデータベース管理装置。
【００９４】
（付記５）データベースの操作対象となる各データに対応して確保される主記憶装置の記憶領域を管理するデータベース管理プログラムであって、
前記データを操作対象とするプロセスの実行要求を受け付けるプロセス実行要求受付手順と、
前記プロセス実行要求受付手順により実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定する負荷量算定手順と、
前記負荷量算定手順により算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、該割当量を各データに割り当てる記憶領域割当手順と、
をコンピュータに実行させることを特徴とするデータベース管理プログラム。
【００９５】
（付記６）前記データは、リレーショナル型データベースにおけるテーブルを含み、プロセス実行要求受付手順は、前記テーブルを操作対象とするプロセスの実行要求を受け付け、前記負荷量算定手順は、前記プロセス実行要求受付手順により実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定し、前記記憶領域割当量決定手順は、前記負荷量算定手順により算定されたアクセスに係る負荷量に基づいて各テーブルに対応して確保される主記憶装置の記憶領域の割当量を決定し、該割当量を各テーブルに割り当てることを特徴とする付記５に記載のデータベース管理プログラム。
【００９６】
（付記７）前記記憶領域割当量決定手順は、前記テーブルに対応して確保され、該テーブルのデータ検索に用いられるインデックスを記憶する主記憶装置の記憶領域の割当量を決定し、該割当量を各テーブルに割り当てることを特徴とする付記６に記載のデータベース管理プログラム。
【００９７】
（付記８）前記負荷量算定手順は、前記プロセス実行要求受付手順により受け付けたプロセスの実行要求数と該プロセスにより操作される各テーブルに対するアクセス数とに基づいて、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定することを特徴とする付記６または７に記載のデータベース管理プログラム。
【００９８】
（付記９）データベースの操作対象となる各データに対応して確保される主記憶装置の記憶領域を管理するデータベース管理方法であって、
前記データを操作対象とするプロセスの実行要求を受け付けるプロセス実行要求受付工程と、
前記プロセス実行要求受付工程により実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定する負荷量算定工程と、前記負荷量算定工程により算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、該割当量を各データに割り当てる記憶領域割当工程と、
を含んだことを特徴とするデータベース管理方法。
【００９９】
【発明の効果】
以上説明したように、本発明によれば、データベースにおけるデータを操作対象とするプロセスの実行要求を受け付け、実行要求を受け付けたプロセスにより操作される各データに対するアクセスに係る負荷量を算定し、算定されたアクセスに係る負荷量に基づいて各データの主記憶装置の記憶領域の割当量を決定し、その割当量を各データに割り当てることとしたので、データベースに記憶された各データに割り当てられる主記憶装置の記憶容量を効率的に最適化することができるという効果を奏する。
【０１００】
また、本発明によれば、リレーショナル型データベースにおけるテーブルを操作対象とするプロセスの実行要求を受け付け、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定し、算定されたアクセスに係る負荷量に基づいて各テーブルに対応して確保される主記憶装置の記憶領域の割当量を決定し、その割当量を各テーブルに割り当てることとしたので、データベースに記憶された各テーブルに割り当てられる主記憶装置の記憶容量を効率的に最適化することができるという効果を奏する。
【０１０１】
また、本発明によれば、テーブルに対応して確保され、そのテーブルのデータ検索に用いられるインデックスを記憶する主記憶装置の記憶領域の割当量を決定し、その割当量を各テーブルに割り当てることとしたので、データベースに記憶された各テーブルにインデックス用に割り当てられる主記憶装置の記憶容量を効率的に最適化することができるという効果を奏する。
【０１０２】
また、本発明によれば、受け付けたプロセスの実行要求数とそのプロセスにより操作される各テーブルに対するアクセス数とに基づいて、実行要求を受け付けたプロセスにより操作される各テーブルに対するアクセスに係る負荷量を算定することとしたので、各テーブルに対するアクセスに係る負荷を適切に評価することができるという効果を奏する。
【図面の簡単な説明】
【図１】本実施の形態に係るデータベース管理システムの構成を示す機能ブロック図である。
【図２】図１に示したプロセスログイン数情報１２４ａの一例を示す図である。
【図３】図１に示したプロセス情報１２４ｂの一例を示す図である。
【図４】図１に示した拡張量情報１２４ｃの一例を示す図である。
【図５】図１に示したデータベース管理装置１２がおこなう記憶容量拡張処理の処理手順を示すフローチャートである。
【図６】図５に示した記憶容量拡張処理により拡張された記憶容量の状態の一例を示す図である。
【図７】本実施の形態に係るデータベース管理装置１２のハードウェア構成を示すブロック図である。
【符号の説明】
１０ａ〜１０ｃ    端末装置
１１    ネットワーク
１２    データベース管理装置
１２１    インターフェース部
１２２    表示部
１２３    入力部
１２４    記憶部
１２４ａ    プロセスログイン数情報
１２４ｂ    プロセス情報
１２４ｃ    拡張量情報
１２５    制御部
１２５ａ    プロセス実行要求受付部
１２５ｂ    負荷量算定部
１２５ｃ    記憶領域割当部
１２５ｄ    データベース管理部
１３    データベース
１３ａ〜１３ｃ    テーブル
【図１】
2004341874.tif 000003
【図２】
2004341874.tif 000004
【図３】
2004341874.tif 000005
【図４】
2004341874.tif 000006
【図５】
2004341874.tif 000007
【図６】
2004341874.tif 000008
【図７】
2004341874.tif 000009