(57)【要約】  データベースにおける空間の使用を決定するための方法および装置を提供する。データベースの１つ以上のテーブルスペースに関連付けられる空きスペースの量を反映する第１の組の空間使用データは第１のデータベースサーバに記憶される。第２の組の空間使用データは、１つ以上の他のデータベースサーバから検索される。第１の組の空間使用データおよび第２の組の空間使用データはともに、空間使用データを記憶する特定のデータベースサーバによってデータベースに加えられる変更に基づいて更新される。第１の組の空間使用データは、第２の組の空間使用データで第１のデータベースサーバにおいて更新される。第１のデータベースサーバは、更新された第１の組の空間使用データに基づいてデータベースにおける空間の使用を評価し得る。
2007510231.tif 000002
【特許請求の範囲】
【請求項１】
データベースにおける空間の使用を決定するための方法であって、
第１のデータベースサーバにおいて、前記データベースに関連付けられる空きスペースの量を反映する第１の組の空間使用データを記憶するステップと、
１つ以上の第２のデータベースサーバから、前記データベースに関連付けられる空きスペースの量を反映する第２の組の空間使用データを検索するステップと、
前記第２の組の空間使用データで前記第１の組の空間使用データを更新するステップと、
前記更新された第１の組の空間使用データに基づいて前記データベースにおける空間の使用を評価するステップとを含む、方法。
【請求項２】
前記第１の組の空間使用データおよび前記第２の組の空間使用データは各々、前記データベースに各々が関連付けられる１つ以上のテーブルスペースにおける空きスペースの量を反映する、請求項１に記載の方法。
【請求項３】
前記第１の組の空間使用データおよび前記第２の組の空間使用データは各々、前記データベースに各々が関連付けられる１つ以上のファイルにおける空きスペースの量を反映する、請求項１に記載の方法。
【請求項４】
前記第１の組の空間使用データは、前記第１のデータベースサーバによって前記データベースに加えられる変更に基づいて更新され、前記第２の組の空間使用データは、前記１つ以上の第２のデータベースサーバによって前記データベースに加えられる変更に基づいて更新される、請求項１に記載の方法。
【請求項５】
前記第１の組の空間使用データを記憶する前記ステップは、前記第１の組の空間使用データのサブセットを記憶するステップを含み、各サブセットは、前記データベース上で実行される前記第１のデータベースサーバによって開始されるトランザクションに関連付けられる、請求項１に記載の方法。
【請求項６】
前記第１の組の空間使用データを記憶する前記ステップは、前記第１の組の空間使用データを生成するために前記データベースを調べるステップを含む、請求項１に記載の方法。
【請求項７】
前記第２の組の空間使用データを検索する前記ステップは、設定可能な期間が終了したことを判断するステップを含み、前記設定可能な期間は、１つ以上の第２のクライアントから前記第２の組の空間使用データを検索する前に待機すべき時間の量を示す、請求項１に記載の方法。
【請求項８】
前記データベースにおける空間の使用を評価する前記ステップは、前記データベースにおけるテーブルスペースが設定可能なしきい値を上回ったかどうか判断するステップを含む、請求項１に記載の方法。
【請求項９】
前記データベースにおけるテーブルスペース内の空間の使用が設定可能なしきい値を上回ったことを示す警告を発するステップをさらに含む、請求項１に記載の方法。
【請求項１０】
前記データベースにおける空間の使用を評価する前記ステップに応答して、前記データベースのための空間の再利用をスケジュールするステップをさらに含む、請求項１に記載の方法。
【請求項１１】
前記データベースがデータベースの分散クラスタにある、請求項１に記載の方法。
【請求項１２】
前記データベースがデータベースのグリッドにある、請求項１に記載の方法。
【請求項１３】
前記検索するステップ、前記更新するステップ、および前記評価するステップは、前記評価するステップが最後に実行されてから設定可能な時間の量が経過した後、順々に繰返され得る、請求項１に記載の方法。
【請求項１４】
データベースにおける空間の使用を決定するための命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体であって、１つ以上のプロセッサによる前記命令の１つ以上のシーケンスの実行により、前記１つ以上のプロセッサに以下のステップを実行させ、前記以下のステップは、
第１のデータベースサーバにおいて、前記データベースに関連付けられる空きスペースの量を反映する第１の組の空間使用データを記憶するステップと、
１つ以上の第２のデータベースサーバから、前記データベースに関連付けられる空きスペースの量を反映する第２の組の空間使用データを検索するステップと、
前記第２の組の空間使用データで前記第１の組の空間使用データを更新するステップと、
前記更新された第１の組の空間使用データに基づいて、前記データベースにおける空間の使用を評価するステップとを含む、コンピュータ読取可能な媒体。
【請求項１５】
前記第１の組の空間使用データおよび前記第２の組の空間使用データは各々、前記データベースに各々が関連付けられる１つ以上のテーブルスペースにおける空きスペースの量を反映する、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項１６】
前記第１の組の空間使用データおよび前記第２の組の空間使用データが各々、前記データベースに各々が関連付けられる１つ以上のファイルにおける空きスペースの量を反映する、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項１７】
前記第１の組の空間使用データが、前記第１のデータベースサーバによって前記データベースに加えられる変更に基づいて更新され、前記第２の組の空間使用データが、前記１つ以上の第２のデータベースサーバによって前記データベースに加えられる変更に基づいて更新される、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項１８】
前記第１の組の空間使用データを記憶する前記ステップは、前記第１の組の空間使用データのサブセットを記憶するステップを含み、各サブセットは、前記データベース上で実行される前記第１のデータベースサーバによって開始されるトランザクションに関連付けられる、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項１９】
前記第１の組の空間使用データを記憶する前記ステップは、前記第１の組の空間使用データを生成するために前記データベースを調べるステップを含む、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項２０】
前記第２の組の空間使用データを検索する前記ステップは、設定可能な期間が終了したことを判断するステップを含み、前記設定可能な期間は、１つ以上の第２のクライアントから前記第２の組の空間使用データを検索する前に待機すべき時間の量を示す、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項２１】
前記データベースにおける空間の使用を評価する前記ステップは、前記データベースにおけるテーブルスペースが設定可能なしきい値を上回ったかどうか判断するステップを含む
、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項２２】
前記１つ以上のプロセッサによる前記命令の１つ以上のシーケンスの実行により、前記１つ以上のプロセッサに追加のステップを実行させ、前記追加のステップは、
前記データベースにおけるテーブルスペース内の空間の使用が設定可能なしきい値を上回ったことを示す警告を発するステップを含む、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項２３】
前記１つ以上のプロセッサによる前記命令の１つ以上のシーケンスの実行により、前記１つ以上のプロセッサに追加のステップを実行させ、前記追加のステップは、
前記データベースにおける空間の使用を評価する前記ステップに応答して、前記データベースのための空間の再利用をスケジュールするステップを含む、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項２４】
前記データベースが、データベースの分散クラスタにある、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項２５】
前記データベースがデータベースのグリッドにある、請求項１４に記載のコンピュータ読取可能な媒体。
【請求項２６】
前記検索するステップ、前記更新するステップ、および前記評価するステップは、前記評価するステップが最後に実行されてから設定可能な時間の量が経過した後、順々に繰返され得る、請求項１４に記載のコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
この発明は、データベースにおける空間の使用の決定に関する。
【背景技術】
【０００２】
発明の背景
データベース内に記憶された使用可能なデータは、１つ以上のテーブルスペースに論理的に記憶され得、特定のテーブルスペースに関連付けられる１つ以上のデータファイルに物理的に記憶され得る。テーブルスペースは、テーブルまたはテーブル区画などのデータベースオブジェクトのためのデータを記憶するのに用いられる１つ以上のデータファイルの組である。データベースメタデータは、テーブルスペースと、テーブルスペースがデータを記憶するデータベースオブジェクトとを規定する。データベース管理者はテーブルスペースを用いて、以下のうちの１つ以上を行ない得る。すなわち、データベースに記憶されたデータのためのディスクスペース割当の制御、データベースユーザのための特定のスペース割当分の割当、オンラインまたはオフラインで個々のテーブルスペースを獲得することによるデータの可用性の制御、部分的なデータベースバックアップまたは回復動作の実行、および性能を向上させるためのデータ記憶アクセス装置の割当、である。
【０００３】
データファイル（または単純に「ファイル」）は、特定のテーブルスペースに関連付けられ、データを物理的にテーブルスペースに記憶する。データファイルは、１つ以上の論理記憶装置で構成される。たとえば、データファイルは１つ以上のエクステント（extents）で構成されてもよい。各エクステントは１つ以上のデータブロックの論理的な群である。データブロックは、データファイル内にありデータベースデータを記憶するのに用いられる連続した記憶空間の割当である。テーブルスペースにおける各データブロックのサイズは同じである。データブロックの典型的なサイズは２Ｋ、４Ｋ、８Ｋまたは１６Ｋである。
【０００４】
データベースオブジェクトに割当てられないデータファイル内の記憶空間は空きスペースである。いずれのオブジェクトにも割当てられないエクステントの数はファイルの第１のブロックに記憶される。テーブルスペースにおけるすべてのデータファイルにわたる空きスペースの量を合計することにより、テーブルスペースにおいて空きスペースがどれだけ利用可能であるかを決定することができる。
【０００５】
テーブルスペースは決まったサイズであり得る。データベース管理者は、新しいテーブルスペースを作成するとき、新しいテーブルスペース内にデータがどれだけ記憶されるか、またはテーブルスペース内に記憶されるデータの増加率を知ることができない。それにもかかわらず、データベース管理者は、テーブルスペースの作成時に当該テーブルスペースについての決まったサイズを選択する。
【０００６】
テーブルスペース内に記憶されるデータの量が或るサイズまたはしきい値を上回る場合、テーブルスペースが空間を使い果たしてしまわないことを確実にするために、テーブルスペースのサイズを大きくすることが有利である。加えて、或る最小レベルの空きスペースをテーブルスペースに存在させることにより、最適性能でのテーブルスペースへのデータの記憶が確実に実行される。
【０００７】
現在、データベースにおいて利用可能な空きスペースの量は、（ａ）データベースにテーブルスペースがいくつあるか、（ｂ）データベースにおける各テーブルスペースにデー
タファイルがいくつあるか、および（ｃ）データベースにおける各テーブルスペース内の各データファイルにデータブロックがいくつあるか判断するためにデータベースを定期的に調べることにより、データベースサーバによって決定される。データファイルは、当該データファイル内の割当てられたデータブロックの数についての情報を含む。データベースにおける各テーブルスペース内の各データファイルのための空きスペースは、データベースにおけるテーブルスペース内の空きスペースの量が特定のしきい値を下回るかどうか判断するために合計される。データベースにおける空きスペースの量を決定するこの技術は、以後、データベースの「ポーリング」と称される。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
データベースにおけるテーブルスペース内の空きスペースの量が特定のしきい値を下回る場合、データベースサーバはデータベース管理者に警告を発し得る。警告が受取られると、データベース管理者はテーブルスペースのサイズを大きくして、そのテーブルスペースにおける空きスペースを増やし得る。
【０００９】
この方策は、不所望には、テーブルスペース内の空きスペースの量を決定するためにかなりの量の時間と計算リソースとを必要とする。たとえば、テーブルスペースが１００個のデータファイルを含んでいたとしても、テーブルスペースにおける空きスペースの量が最後に決定されてから割当てられたかまたは割当て解除されたデータブロックには１０個のデータファイルしか関連付けられず、テーブルスペースにおいて空きスペースの量が最後に決定されて以来当該データファイルのうちの９０個が変化しなかったとしても、上述の方策は、依然として、テーブルスペースにおける空きスペースを決定するために１００個のデータファイルの各々を調べることを必要とするだろう。
【００１０】
したがって、当該技術において、先の方策に関連付けられる問題を招くことなくデータベースにおける空間の使用を決定する必要性がまだ対処されないまま存在する。
【００１１】
この部分に記載される方策は、実行可能な方策であるが、必ずしも以前に考案されたかまたは実行された方策であるとは限らない。したがって、特に指定のない限り、この部分に記載された方策がいずれも、単にこの部分に含まれることによってのみ先行技術として認められるものであると考えられるべきではない。
【００１２】
この発明は、同様の参照番号が同様の要素を指す添付の図面において、限定のためではなく例示のために示される。
【発明を実施するための最良の形態】
【００１３】
発明の詳細な説明
データベースにおける空間の使用を決定するための方法および装置を説明する。以下の記載においては、説明する目的で、この発明を完全に理解できるようにするために多数の特定の詳細が述べられる。しかしながら、これらの特定の詳細なしにこの発明が実施可能であることが明らかとなるだろう。他の場合には、周知の構造および装置は、この発明を不必要に曖昧にすることを避けるためにブロック図の形で示される。
【００１４】
アーキテクチャ概要
図１は、この発明の実施例に従ったデータベース管理システム１００を示すブロックネットワーク図である。データベース管理システム１００は、データベースにおける各テーブルスペース内の各データファイルを調べることなくデータベースの空間の使用を正確に決定するのに用いられ得る。加えて、この明細書中に記載されるとおり、データベース管理システム１００を用いて他の利点が達成され得る。図１のデータベース管理システム１
００は、データベース１１０、データベースサーバ１２０Ａおよび１２０Ｂ、ならびに通信リンク１３０および１３２を含む。
【００１５】
データベース１１０などのデータベースは、電子情報を永続的に記憶するためのコンピュータ化された機構である。データベースの非限定的な具体例は、リレーショナルデータベース、オブジェクト指向データベース、多次元データベース、コンピュータの分散クラスタにおけるデータベース、およびサーバブレードのグリッドにおけるデータベースを含む。データベースサーバの分散クラスタは、引用によりこの明細書中に援用される米国特許第６，３５３，８３６号にさらに詳細に説明される。１組のデータベースサーバが実行されているグリッドが、引用によりこの明細書中に援用される米国仮特許出願連続番号第６０／５００，０５０号にさらに詳細に説明される。
【００１６】
データベースサーバ１２０Ａおよび１２０Ｂなどのデータベースサーバは、１組の統合されたソフトウェア構成要素と、プロセッサ上で当該１組の統合されたソフトウェア構成要素を実行するためのメモリおよびプロセスなどの計算リソースの割当との組合せであり、この場合、ソフトウェアと計算リソースとの組合せはデータベースを管理するのに用いられる。データベース管理の機能の中でも、データベースサーバは、データベースへのアクセスを管理しかつ容易にし、データベースクライアントによるデータベースへのアクセスの要求を処理する。データベースサーバのクライアントは他のデータベースサーバを含み得る。２つのデータベースサーバ、すなわち、データベースサーバ１２０Ａおよび１２０Ｂだけが図１に図示されているが、いくつのデータベースサーバがデータベース１１０に動作可能に接続されてもよい。
【００１７】
データベースサーバ、たとえばデータベースサーバ１２０Ａは、空間使用データおよび更新プロセスを含み得る。空間使用データ、たとえば空間使用データ１２２Ａおよび１２２Ｂは、データベースに関連付けられる空きスペースの量を反映するデータを指す。一実施例においては、空間使用データは、空間使用データが記憶されているデータベースサーバによってデータベースに加えられる変更に基づいて更新される。空間使用データは、「データベースにおける空間の使用の決定(“DETERMINING THE USAGE OF SPACE IN A DATABASE”）」と題された以下の段落においてより詳細に説明される。
【００１８】
更新プロセス、たとえば更新プロセス１２４Ａおよび１２４Ｂは、この明細書中で用いられるとおり、（ａ）データベース１１０および１つ以上のデータベースサーバから空間使用データを検索し、（ｂ）更新プロセスが当該検索された空間使用データで配置されているデータベースサーバに記憶された空間使用データを更新することのできる１つ以上のソフトウェア構成要素の組を指す。更新プロセスの動作は、「データベースにおける空間の使用の決定」と題された以下の段落においてさらに詳細に説明される。
【００１９】
通信リンク１３０は、データベース１１０とデータベースサーバ、たとえばデータベースサーバ１２０Ａまたはデータベースサーバ１２０Ｂとの間でデータの交換を行なう如何なる媒体または機構によっても実現され得る。通信リンク１３２は、データベースサーバ間、たとえば、データベースサーバ１２０Ａとデータベースサーバ１２０Ｂとの間でデータの交換を行なう如何なる媒体または機構によっても実現され得る。通信リンク１３０および１３２の例は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イーサネット（登録商標）もしくはインターネット、または１つ以上の地上、衛星もしくは無線のリンクなどのネットワークを含むがこれらに限定されない。
【００２０】
機能概要
一実施例に従うと、データベース内の１つ以上のテーブルスペース内における空間の使用は、この発明の実施例を用いて決定され得る。第１の組の空間使用データは第１のデー
タベースサーバに記憶される。一実施例においては、第１の組の空間使用データは、データベース内における１つ以上のテーブルスペースに関連付けられる空きスペースの量を反映する。一実施例においては、第１の組の空間使用データは、第１のデータベースサーバによってデータベースに加えられる変更に基づいて更新される。たとえば、第１の組の空間使用データは、データベースオブジェクトに割当てられたり割当て解除されたりするデータブロックの数に基づいて更新されてもよい。
【００２１】
一実施例においては、第１の組の空間使用データは、データベースを調べ、公知の技術によってデータベースの各テーブルスペース内における空間の使用を決定することによって得ることができる。
【００２２】
次いで、第２の組の空間使用データが、１つ以上の他のデータベースサーバから検索される。第２の組の空間使用データはまた、データベースに関連付けられる空きスペースの量を反映する。一実施例においては、第２の組の空間使用データは、第２の組の空間使用データを記憶する特定のデータベースサーバによってデータベースに加えられる変更に基づいて更新される。第２の組の空間使用データは、第１のデータベースサーバにある更新プロセスを用いて検索され得る。
【００２３】
次いで、第１の組の空間使用データは、第１のデータベースサーバにおいて第２の組の空間使用データで更新される。その後、第１のデータベースサーバは、更新された第１の組の空間使用データに基づいてデータベースにおける空間の使用を評価し得る。設定可能な量の時間が終了した後、（第１のデータベースサーバであり得る）データベースサーバは、第２の組の空間使用データを取得し、局所的に記憶された１組の空間使用データを更新し、当該更新された１組の空間使用データに基づいてデータベースにおける空間の使用を評価するプロセスを繰返し得る。
【００２４】
結果として、更新された第１の組の空間使用データが、データベースのための空間の使用が最後に決定されて以来データベースになされたすべての変更を反映するので、データベースにアクセスすることなく、第１のデータベースサーバにおけるデータベースのための空間の使用を正確に決定することができる。さらに、この発明の実施例を用いると、データベースにおける空間の使用を決定する効率が高められる。というのも、データベースのために空間の使用が最後に決定されて以来変更のなかったデータベースの部分についての情報にアクセスしなくても、データベースのための空間の使用が正確に決定されるからである。
【００２５】
データベースにおける空間の使用の決定
図２は、この発明の実施例に従った、データベースにおける空間の使用を決定する機能ステップを示すフローチャートである。一実施例に従うと、データベース管理システム１００における各データベースサーバは、図２に示されるステップを実行することができるが、説明を簡単にするために、図２に示される機能ステップは、図２のステップを実行する単一のデータベースサーバの観点から説明される。
【００２６】
ステップ２０２において、第１の組の空間使用データはデータベースサーバに記憶される。たとえば、データベースサーバ１２０Ａは、空間使用データ１２２Ａを記憶することによってステップ２０２を実行し得る。データベースサーバは、非持続性記憶装置（たとえば揮発性メモリ）または持続性記憶装置（たとえばファイルサーバもしくはデータベース）に第１の組の空間使用データを記憶することによってステップ２０２を実行し得る。
【００２７】
図３は、この発明の実施例に従ったデータベースサーバ３０４における記憶された空間使用データ３０２の実体図である。図３は、データベースの部分、たとえばデータファイ
ルまたはテーブルスペースにおける空きスペースの量を反映する空間使用データ３０２を示す。他の実施例は、他の方法で空きスペースの量を表わし得る。たとえば、空きスペースの量が、データベースの一部分のサイズをその部分に現在記憶されているデータの量と比較することによって計算され得るので、他の実施例は、データベースの複数の部分のサイズが容易に確認可能であればデータベースの当該複数の部分の使用された空間の量を記憶し得る。
【００２８】
一実施例においては、第１の組の空間使用データは、データベースに接触し、公知の技術、たとえば、各テーブルスペースにおける各データファイルの第１のデータブロックを調べてそのデータファイルに関連付けられる空きスペースを決定しかつ結果を合計することによりデータベースの空間の使用を空間使用データにおいて特定される粒度のレベルに決定することによって、取得され得る。たとえば、図２に図示のとおり、データベースサーバ１２０Ａは、公知の技術を用いて通信リンク１３０を介してデータベース１１０と通信することにより、データベース１１０から空間使用データ１２２Ａを取得し得る。
【００２９】
一実施例においては、ステップ２０２において記憶された第１の組の空間使用データは、第１の組の空間使用データを記憶するデータベースサーバによってデータベースに加えられた変更に基づいて連続的に更新される。図３が示すとおり、各々のトランザクションがデータベースに対してデータベースサーバ３０４によって開始された後、空間使用データ３０２は、データベースによってトランザクションが処理された後にデータベースに空きスペースがどれだけ残っているかを反映するよう更新され得る。トランザクションがデータブロックを割当てるかまたは割当て解除する度に、空間使用データ３０２が更新され得る。たとえば、トランザクションが、テーブルスペース１、データファイル１における１つ以上の新しいデータブロックを割当てる場合、図３に図示のとおり、そのトランザクションが処理された後に残る空きスペースの量が、空間使用データ３０２に記録されるだろう。別の例においては、トランザクションが、テーブルスペース２、データファイル１における１つ以上のデータブロックを割当て解除する場合、トランザクションが処理された後に残っている空きスペースの量が空間使用データ３０２（図示せず）に記録されるだろう。
【００３０】
データベースサーバがトランザクションを処理した後に残るデータベースの一部分に関連付けられる空きスペースの量は、たとえば、当該トランザクションに関連付けられるデータファイルにおける第１のデータブロックをデータベースサーバが調べることによって決定され得る。各データファイルに空きスペースがどれだけ残っているかについての情報は、データファイルの第１のデータブロックに保持される。各データファイルに空きスペースがどれだけ残っているかについての情報は、トランザクションが各データファイルに残っている空きスペースの量を変更する度に更新される。
【００３１】
図３における空間使用データ３０２を記憶するテーブルにおける各々の列は、システム変更番号（以後ＳＣＮとする）に関連付けられる。ＳＣＮは、データベースプロセスをおのおの処理するデータベースによって割当てられる番号である。インクリメント方式でデータベースがＳＣＮを割当てるので、より最近のトランザクションよりも古いトランザクションには、データベースによって、より低いＳＣＮが割当てられるだろう。空間使用データ３０２の一部分に関連付けられるＳＣＮは、空きスペースの量の変更を空間使用データのその部分に最後にもたらしたトランザクションのＳＣＮ番号に対応する。
【００３２】
空間使用データ３０２は、トランザクションが多数のレベルの粒度で処理された後、データベースに空きスペースがどれだけ残っているかを記録し得る。たとえば、図３に示される空間使用データ３０２は、各トランザクションによってどのテーブルスペースが影響を受けたか、各トランザクションによってどのデータファイルが影響を受けたか、および
、各データファイルに空きスペースがどれだけ残っているかについての情報を記録する。他の実施例は、より低いレベルの粒度で情報を記録し得るが、たとえば、この発明の実施例は、特定のデータファイルにおけるどのデータブロックがトランザクションによって変更されたか、および、そのデータブロックにおいて空きスペースがどれだけ利用可能であるかについての情報を記録する空間使用データ３０２を用い得る。この発明の他の実施例は、より高いレベルの粒度で情報を記録し得るが、たとえば、この発明の実施例は、各トランザクションによってどのテーブルスペースが影響を受けたか、および、各テーブルスペースにおいて空きスペースがどれだけ残っているかについての情報を記録するだけである空間使用データ３０２を使用し得る。したがって、この発明の実施例は、空間使用データに情報を記録するための如何なるレベルの粒度にも限定されない。
【００３３】
ステップ２０４においては、データベースサーバは、１つ以上の他のデータベースサーバから第２の組の空間使用データを検索する。第２の組の空間使用データは、第２の組の空間使用データの一部分を保持するデータベースサーバによってデータベース上で実行されたトランザクションの結果として、データベース内に空きスペースがどれだけ残されているかを反映するよう各データベースサーバにおいて更新される。図２を参照すると、データベースサーバ１２０Ａは、データベースサーバ１２０Ｂから空間使用データ１２２Ｂを検索することによってステップ２０４を実行し得る。一実施例においては、データベース管理システム１００における各データベースサーバは、データベース管理システム１００における互いのデータベースサーバから第２の組の空間使用データを得ることによってステップ２０４を実行する。
【００３４】
一実施例においては、データベースサーバの更新プロセスは、ステップ２０４において１つ以上のデータベースサーバから第２の組の空間使用データを検索し得る。たとえば、更新プロセス１２４Ａは、通信リンク１３２を介してデータベースサーバ１２０Ｂと通信して空間使用データ１２２Ｂを検索することによってステップ２０４を実行し得る。
【００３５】
ステップ２０６において、第１の組の空間使用データは、第２の組の空間使用データで更新される。たとえば、更新プロセス１２４Ａは、ステップ２０４において検索された空間使用データ１２２Ｂで空間使用データ１２２Ａを更新し得る。一実施例においては、データベース管理システム１００における各データベースサーバはステップ２０６を実行する。
【００３６】
一実施例においては、第２の組の空間使用データは、第１の組の空間使用データと組合されて、更新された第１の組の空間使用データを生成する。空間の使用の最新の図を簡単なものにするために、更新された第１の組の空間使用データは、各データファイルのためのデータファイルにおける空間の使用を変更した最大（すなわち最近の）ＳＣＮの関連付けだけを保持し得る。言い換えれば、ＳＣＮ（「より古いＳＣＮ」）が、データファイル内の空間の使用に影響を及ぼした別のトランザクションよりも古いトランザクションに関連付けられる場合、そのより古いＳＣＮは、更新された第１の組の空間使用データには反映されない。
【００３７】
ステップ２０８において、データベースにおける空間の使用は、ステップ２０６において更新された第１の組の空間使用データに基づいて評価される。一実施例においては、ステップ２０８は、空間使用データ１２２Ａに基づいてデータベース１１０に対する空間の使用を評価することにより、データベースサーバ１２０Ａによって実行され得る。一実施例においては、データベース管理システム１００における各データベースサーバがステップ２０８を実行する。
【００３８】
以下にさらに詳細に説明されるように、この発明の実施例は、図２に示される１つ以上
のステップを繰返し実行し得る。一実施例においては、ステップ２０８を実行する際に、ステップ２０８が最後に実行されたのと少なくとも同じくらい新しい空間使用データの部分だけが分析される必要がある。たとえば、或る時間Ｔでステップ２０８が実行され、テーブルスペースに関連付けられる空きスペースが１００ＭＢであると決定されたとする。ステップ２０８が１０分後に（時間Ｔ＋１０分で）実行される場合、時間Ｔの後に空間使用データに記録されたそのテーブルスペースに対するトランザクションに対応する空間使用データにおけるエントリだけが考慮される必要がある。というのも、時間Ｔの後のそれらのエントリだけが、そのテーブルスペースにおける空間の使用についての現在の決定に反映されないからである。一実施例においては、空間使用データにおける各エントリに関連付けられるＳＣＮを用いて、ステップ２０８が最後に実行されて以来空間使用データにおけるどのエントリが変わったかまたは更新されたかを決定し得る。また、予め処理された最大のＳＣＮよりも大きいＳＣＮに関連付けられるエントリだけが、ステップ２０８の現在の実行の際に考慮される必要がある。ステップ２０８の実行後、処理はステップ２１０に進む。
【００３９】
ステップ２１０において、データベースの空きスペースまたはそのいずれかの部分が１つ以上の設定可能なしきい値を上回るかどうかについての判断がなされる。一実施例においては、データベースサーバ１２０Ａは、ステップ２０８において決定されたデータベース１１０の空きスペースまたはそのいずれかの部分（たとえばテーブルスペース）が設定可能なしきい値を上回るかどうか判断することによって、ステップ２１０を実行し得る。設定可能なしきい値は、いずれかのレベルの粒度、たとえばデータブロック、データファイル、テーブルスペース、またはデータベース全体に対して設定され得る。各々の設定可能なしきい値はさまざまな態様で表現され得るが、たとえば、設定可能なしきい値は、総容量の百分率として、または空きスペースの特定された割当てとして表現され得る。各々の設定可能なしきい値は、データベースサーバの管理者またはデータベースサーバによって設定され得る。データベースサーバが設定可能なしきい値を設定する実施例においては、データベースサーバは、データベースの総容量、データベースに記憶される情報の種類、データベースの予想される増加率、またはクラスタもしくはグリッドにおける別のデータベースのしきい値を含めて、さまざまな要因を用いて設定可能なしきい値を決定し得る。
【００４０】
ステップ２１０の判断がノーである（設定可能なしきい値を上回らない）場合、処理はステップ２１２に進む。ステップ２１２において、データベースサーバは設定可能な期間待機する。設定可能な期間は、ステップ２０４に進む前に待機すべき時間の量を示す。一実施例においては、ステップ２１２における設定可能な時間の量は１０分である。待機すべき設定可能な時間の量が生じたことをデータベースサーバが検出した後、処理はステップ２０４に進む。ステップ２１２が実行される度に、データベース管理システム１００における別のデータベースサーバがステップ２０４を実行し得る。たとえば、最初にステップ２０４が実行されるとき、データベース１２０Ａが当該ステップを実行し得、２度目にステップ２０４が実行されるとき、データベースサーバ１２０Ｂが当該ステップを実行し得る、等である。したがって、データベースのための空間の使用は、ステップ２０２の実行後、データベース管理システム１００における単一のデータベースサーバがデータベースにおける空間の使用をポーリングすることなく連続的に監視され得る。
【００４１】
一実施例においては、ステップ２１０の判断がイエスである（設定可能なしきい値を上回る）場合、一実施例においては、処理がステップ２１４に進む。ステップ２１４において、データベースのために空間の再利用がスケジュールされる。一実施例においては、ステップ２１４は、データベース１１０のための空間の再利用をスケジュールすることにより、データベースサーバ１２０Ａによって実行され得る。
【００４２】
別の実施例においては、ステップ２１０の判断がイエスである（設定可能なしきい値を上回る）場合、一実施例において、処理がステップ２１６に進む。ステップ２１６において、データベースにおけるテーブルスペース内の空間の使用が設定可能なしきい値を上回ったことをデータベース管理者に示す警告を発する。一実施例においては、ステップ２１６は、データベース１１０におけるテーブルスペース内の空間の使用が設定可能なしきい値を上回ったことを示す警告をデータベースサーバ１２０Ａがデータベース管理者に発することによって実行され得る。
【００４３】
この発明の実施例は、ステップのシーケンスをさまざまな順序で実行し得る。たとえば、実施例は、図２に示されるのとは異なる順序で１つ以上のステップを実行し得るか、または、図２に示される１つ以上のステップを並行して実行し得る。たとえば、この発明の実施例は、ステップ２１２および２１４を並行して、または順々に実行し得る。したがって、図２に示されるステップのシーケンスは単に例示的なものであり、この発明の実施例は、図２に示される特定のステップのシーケンスに限定されない。
【００４４】
この発明の実施例に従うと、データベース管理システム１００におけるいくつのデータベースサーバが、図２に示されるステップのシーケンスを実行してもよい。具体的には、データベースサーバの各々が図２のステップの各々を実行し得るが、データベース管理システム１００における特定のデータベースサーバがステップ２０４を実行し、次いで、その特定のデータベースサーバが、データベース管理システム１００内における他のデータベースサーバの各々から第２の組の空間使用データを検索する。
【００４５】
データベース管理システム１００における特定のデータベースサーバがクラッシュした場合、当該クラッシュしたデータベースサーバが、当該データベースサーバが動作不能になったのと同時に当該クラッシュしたデータベースサーバの活動を反映するよう動作可能になった後、データベース管理システム１００における各データベースサーバに記憶された空間使用データを再度初期設定する必要があるかもしれない。空間使用データは、データベース管理システム１００における各データベースサーバにおいて図２のステップを実行することによって再度初期設定されてもよい。
【００４６】
ステップ２０６において得られた更新された第１の組の空間使用データ１２２Ａは、データベース１１０のために空間の使用が最後に決定されて以来データベース１１０になされたすべての変更を反映するので、ステップ２０２の最初の実行後、空間の使用を決定するためにデータベース１１０をポーリングすることなく、データベース１１０のためにデータベースサーバ１２０Ａによって空間の使用が正確に決定され得る。さらに、この発明の実施例を用いる場合、データベース１００のために空間の使用が最後に決定されて以来変更のなかったデータベース１１０の部分についての情報を調べなくても、データベース１００のための空間の使用が正確に決定される。これらの利点は、データベースサーバ１２０Ａおよびデータベース管理システム１００の両方の時間と計算リソースとを有利に節約する。
【００４７】
ハードウェア概要
図４は、この発明の実施例が実現され得るコンピュータシステム４００を示したブロック図である。コンピュータシステム４００は、情報の通信を行なうためのバス４０２または他の通信機構、および、情報を処理するための、バス４０２に結合されるプロセッサ４０４を含む。コンピュータシステム４００はまた、プロセッサ４０４によって実行されるべき情報および命令を記憶するための、バス４０２に結合されるランダムアクセスメモリ（ＲＡＭ）または他の動的記憶装置等のメインメモリ４０６を含む。メインメモリ４０６はまた、プロセッサ４０４によって実行されるべき命令の実行中に一時的数値変数または他の中間情報を記憶するために用いられ得る。コンピュータシステム４００はさらに、プ
ロセッサ４０４のための命令および静的情報を記憶するための、バス４０２に結合される読出専用メモリ（ＲＯＭ）４０８または他の静的記憶装置を含む。情報および命令を記憶するための磁気ディスクまたは光ディスク等の記憶装置４１０が設けられ、バス４０２に結合される。
【００４８】
コンピュータシステム４００は、コンピュータユーザに情報を表示するための、陰極線管（ＣＲＴ）等のディスプレイ４１２にバス４０２を介して結合され得る。英数字および他のキーを含む入力装置４１４がバス４０２に結合されて、情報およびコマンド選択をプロセッサ４０４に伝達する。別の種類のユーザ入力装置は、方向情報およびコマンド選択をプロセッサ４０４に伝達し、さらにはディスプレイ４１２上でのカーソルの動きを制御するための、マウス、トラックボールまたはカーソル方向キー等のカーソル制御４１６である。この入力装置は、典型的には、２つの軸、すなわち第１の軸（たとえば、ｘ）と第２の軸（たとえば、ｙ）とにおいて２自由度を有し、これによって、装置が平面で位置を特定することが可能となる。
【００４９】
この発明は、ここで説明される技術を実現するためのコンピュータシステム４００の用途に関する。この発明の１つの実施例に従うと、これらの技術は、メインメモリ４０６内に含まれる１つ以上の命令の１つ以上のシーケンスをプロセッサ４０４が実行することに応答して、コンピュータシステム４００によって実行される。このような命令は、記憶装置４１０等の別のコンピュータ読取可能な媒体からメインメモリ４０６へと読出され得る。メインメモリ４０６内に含まれる命令シーケンスを実行すると、プロセッサ４０４がここで説明されるプロセスステップを実行する。代替的な実施例では、ソフトウェア命令の代わりに、またはソフトウェア命令と組合せてハードワイヤード回路を用いてこの発明を実現することもできる。したがって、この発明の実施例は、ハードウェア回路とソフトウェアとの特定のいずれかの組合せに限定されない。
【００５０】
ここで用いられる「コンピュータ読取可能な媒体」という用語は、命令をプロセッサ４０４に与えて実行させることに関与するいかなる媒体をも指す。このような媒体は、不揮発性媒体、揮発性媒体および送信媒体を含むがそれらに限定されない多くの形をとり得る。不揮発性媒体は、たとえば、記憶装置４１０等の光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ４０６等のダイナミックメモリを含む。送信媒体は、バス４０２を含むワイヤを含んだ、同軸ケーブル、銅ワイヤおよび光ファイバを含む。送信媒体はまた、電波および赤外線データ通信中に生成されるような音波または光波の形をとり得る。
【００５１】
コンピュータ読取可能な媒体の一般的な形は、たとえば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他のいかなる磁気媒体、ＣＤ−ＲＯＭ、その他のいかなる光媒体、パンチカード、紙テープ、穴のパターンを備えたその他の物理的な媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、その他いかなるメモリチップまたはカートリッジ、後に述べる搬送波、またはコンピュータがそこから読取ることができるその他いかなる媒体をも含む。
【００５２】
さまざまな形のコンピュータ読取可能な媒体は、１つ以上の命令の１つ以上のシーケンスをプロセッサ４０４に搬送して実行させることに関与し得る。たとえば、命令は、最初にリモートコンピュータの磁気ディスク上で搬送され得る。リモートコンピュータは、命令をそのダイナミックメモリにロードし、モデムを用いて電話線上で命令を送信し得る。コンピュータシステム４００にとってローカルなモデムは、電話線上のデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換し得る。赤外線検出器が、赤外線信号で搬送されたデータを受信し得、適切な回路がデータをバス４０２上に置き得る。バス４０２は、データをメインメモリ４０６へと搬送し、ここから、プロセッサ４０４が命令を取
出し実行する。メインメモリ４０６が受取った命令は、プロセッサ４０４による実行の前または後に記憶装置４１０に随意に記憶され得る。
【００５３】
コンピュータシステム４００はまた、バス４０２に結合される通信インターフェイス４１８を含む。通信インターフェイス４１８は、ローカルネットワーク４２２に接続されるネットワークリンク４２０に対する双方向データ通信結合を提供する。たとえば、通信インターフェイス４１８は、統合サービスデジタル通信網（ＩＳＤＮ）カードまたはモデムであってもよく、データ通信接続を対応する種類の電話線に提供し得る。別の例として、通信インターフェイス４１８は、互換性のあるＬＡＮにデータ通信接続をもたらすローカルエリアネットワーク（ＬＡＮ）カードであり得る。ワイヤレスリンクも実現され得る。このようないずれの実現例においても、通信インターフェイス４１８は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気信号、電磁信号または光信号を送受信する。
【００５４】
ネットワークリンク４２０は、典型的には、１つ以上のネットワークを介して他のデータ装置にデータ通信をもたらす。たとえば、ネットワークリンク４２０は、ローカルネットワーク４２２経由でホストコンピュータ４２４またはインターネットサービスプロバイダ（Internet Service Provider）（ＩＳＰ）４２６が作動させるデータ装置に接続をもたらし得る。ＩＳＰ４２６は次いで、現在一般に「インターネット」４２８と呼ばれるワールドワイドパケットデータ通信網を介してデータ通信サービスを提供する。ローカルネットワーク４２２およびインターネット４２８はともに、デジタルデータストリームを搬送する電気信号、電磁信号または光信号を用いる。さまざまなネットワークを経由する信号と、ネットワークリンク４２０上にあり、コンピュータシステム４００との間でデジタルデータを搬送する通信インターフェイス４１８経由の信号とは、情報を移送する例示的形態の搬送波である。
【００５５】
コンピュータシステム４００は、ネットワーク、ネットワークリンク４２０および通信インターフェイス４１８を介してメッセージを送信し、プログラムコードを含むデータを受信し得る。インターネットの例では、サーバ４３０は、インターネット４２８、ＩＳＰ４２６、ローカルネットワーク４２２および通信インターフェイス４１８を介してアプリケーションプログラムのために要求されたコードを送信し得る。
【００５６】
受信されたコードは、受信されたときにプロセッサ４０４によって実行され得、および／または後の実行のために記憶装置４１０もしくは他の不揮発性記憶装置に記憶され得る。このようにして、コンピュータシステム４００は搬送波の形でアプリケーションコードを得ることができる。
【００５７】
上述の明細書では、この発明の実施例を実現例ごとに異なり得る多数の特定の詳細を参照して説明してきた。したがって、この発明が何であるか、およびこの発明を目指して出願人が何を意図しているかを独占的に示す唯一のものが、この出願から発生して特有の形態をとった請求項の組である。特有の形態であるこのような請求項は、以降の任意の補正を含んで発生する。このような請求項に含まれる用語に対してこの明細書で明示されたいかなる定義も、請求項で用いられているような用語の意味を支配するものとする。したがって、請求項に明示的に記載されていない限定、要素、特性、特徴、利点または属性は、このような請求項の範囲を決して限定しない。したがって、明細書および図面は限定的な意味ではなく例示的な意味で捉えられるべきである。
【図面の簡単な説明】
【００５８】
【図１】この発明の実施例に従った空間使用システムを示すブロックネットワーク図である。
【図２】この発明の実施例に従ったデータベースにおける空間の使用を決定する機能ステップを示すフローチャートである。
【図３】この発明の実施例に従った記憶された空間使用データの実体図である。
【図４】この発明の実施例が実現され得るコンピュータシステムを示すブロック図である。
【図１】
2007510231.tif 000003
【図２】
2007510231.tif 000004
【図３】
2007510231.tif 000005
【図４】
2007510231.tif 000006
【国際調査報告】
2007510231.tif 000007
2007510231.tif 000008
2007510231.tif 000009