MDC 表および ITC 表の更新

MDC 表の場合、非ディメンション値の更新は、 通常表の場合のように、その同じ場所で実行されます。 MDC 表または ITC 表のレコードを更新することでそのレコードが長くなり、ページに収まらなくなる場合は、十分なスペースのある別のページが検索されます。

その新しいページの検索は、まず同じブロックから開始されます。 そのブロックにスペースがないなら、 新しいレコード挿入のアルゴリズムが使用されて、 十分なスペースを含む論理セルの中からページが検索されます。 セル内にスペースがないために新しいブロックをセルに追加することが必要になるのでない限り、 ブロック索引を更新する必要はありません。

ITC 表で、更新された行を配置するためのスペースがブロック内にない場合、その行は新規ブロックに移動されます。 この移動により、その行は、同時期に挿入された他の行とクラスター化されなくなります。

MDC 表のみに関する考慮事項

ディメンション値の更新操作では、レコードの属する論理セルが変わるため、 現在のレコードを削除した後、 変更後のレコードを挿入するという操作として処理されます。 現在のレコードを削除するとブロックが空になる場合には、 ブロック索引を更新する必要があります。 同じように、新しいレコードの挿入操作で新しいブロックに挿入することが必要な場合にも、 ブロック索引を更新する必要があります。

MDC 表は既存の他の表と同様に扱われます。 つまり、トリガー、参照整合性、ビュー、 およびマテリアライズ照会表を MDC 表に対して定義することができます。

MDC 表および ITC 表に関する考慮事項

ブロック索引を更新することが必要なのは、 ブロックに最初のレコードを挿入するときと、 ブロックから最後のレコードを削除するときだけです。 したがって、ブロック索引に関連した、保守とロギングのための索引リソースおよび要件は、 通常の索引に比べてずっと少なくなります。 通常の索引をブロック索引に置き換えれば、置き換えの件数に比例して、 保守とロギングのためのリソースと要件が大幅に削減されます。

最近空になったブロックを再使用する場合は、現在そのブロックが UR スキャナーによってスキャン中ではないことを確実にするために、ブロックに対して条件付き Z ロックを使用する必要があります。