コンテンツエリア開始

Function documentation 再バランシング Locate the document in its SAP Library structure

用途

以下の場合には、データベースシステムによって B* の構造が変更されます。

      データレコードが変更または挿入されるときに、リーフページに利用可能なスペースが十分にない場合

データベースシステムによって新しいリーフページが追加され、データレコードが再配分されます。

Note

したがって、テーブルのサイズは、データ領域内で利用可能な記憶域の合計量によってのみ制限されます。

      データレコードの削除後に、リーフページが十分に一杯にならなくなった場合

データベースシステムによってこのリーフページが削除され、データレコードは別のリーフページに移されます。

      データレコードが変更または挿入されたために、次に上位にある区切記号が一意でなくなった場合

データベースシステムによって区切記号が再配分されます。

これにより、B* ツリーの一部の分岐で、他の分岐よりもページ数が多くなる可能性があります。ページがこのように不規則に配分されると、データベースシステムのパフォーマンスが低下します。これは、ページ数の多い分岐のデータを検索する場合は、ページ数が少ない分岐よりも多くアクセスする必要があるためです。

データベースシステムは、このような不規則な配分を認識し、負荷を自動的にバランシングします (再編成の原則はありません)

以下のグラフは、INSERT 文が実行されたとき、データベースシステムによって B* ツリー構造がどのように変更されるかを示しています。

リーフレベルでのページ配分の例

This graphic is explained in the accompanying text

ADDRESS テーブルで、CITY 列が一次キーとして定義されています。ユーザは INSERT 文を使用して、CITY 列に値 Albas の新しいデータレコードを挿入します。ただし、このデータレコードは、大きすぎて B* ツリーの対応するリーフページに挿入することができません。その結果、データベースシステムによって以下のアクションが実行されます。

...

       1.      新しいリーフページが登録され、新しいデータレコードはこの新しいリーフページに挿入されます。新しいリーフページのエントリが、新しいデータレコードから始まる順序でソートされます。

       2.      必要に応じて、新しいリーフページのソート領域に属するすべてのデータレコードが、古いリーフページから新しいリーフページにコピーされ、その後、古いリーフページから削除されます。この手順はページ分割と呼ばれます。続いて、ポジション一覧およびそれぞれのポインタが、リーフレベル内の後続ページに更新されます。

       3.      新しいリーフページのアドレスおよび区分記号情報が、1 段階上位レベルにある対応するルートページまたは B* ツリー索引ページに挿入されます。

       B* ツリー索引ページが小さすぎる場合は、新しい B* ツリー索引ページがこの索引レベルに挿入されます。

       最上位レベルのルートページが小さすぎる場合は、新しい B* ツリー索引レベルが登録されます。

参照:

論理アクセス構造

: INSERT

 

 

コンテンツエリア終了