TRUNCATE CLUSTER
目的
ノート:
TRUNCATE CLUSTER
文はロールバックできません。
TRUNCATE CLUSTER
文を使用すると、クラスタからすべての行を削除できます。デフォルトでは、次の処理も実行されます。
-
削除された行が使用していたすべての領域(ただし、
MINEXTENTS
記憶域パラメータで指定された領域は除く)の割当てが解除されます。 -
NEXT
記憶域パラメータが、切捨て処理によってセグメントから最後に削除されたエクステントのサイズに設定されます。
クラスタを削除して再作成するより、TRUNCATE
文で行を削除する方が効果的です。クラスタを削除して再作成すると、そのクラスタに依存するオブジェクトが無効になり、クラスタに対するオブジェクト権限を再度付与する必要があるだけでなく、表の索引とクラスタを再作成し、その記憶域パラメータを再指定することも必要になります。切捨ての場合は、このような影響はありません。
TRUNCATE CLUSTER
文を使用すると、DELETE
文を使用してすべての行を削除するよりも迅速に削除できます。特に、クラスタに索引およびその他の依存オブジェクトが多数ある場合に有効です。
関連項目:
-
クラスタからデータを削除する他の方法については、「DELETE」および「DROP CLUSTER」を参照してください。
-
表の切捨ての詳細は、「TRUNCATE TABLE」を参照してください。
構文
truncate_cluster::=
セマンティクス
CLUSTER句
切り捨てるクラスタが設定されているスキーマと、そのクラスタの名前を指定します。なお、索引クラスタは切り捨てられますが、ハッシュ・クラスタは切り捨てられません。schema
を指定しない場合、クラスタは自分のスキーマ内にあるとみなされます。
クラスタを切り捨てた場合、そのクラスタにある表のすべての索引データも自動的に削除されます。
STORAGE句
STORAGE
句を使用すると、行の切捨てによって解放された領域をどのようにするかを指定できます。DROP
STORAGE
句およびREUSE
STORAGE
句は、対応する索引から削除されたデータの空き領域にも適用されます。
DROP STORAGE
DROP
STORAGE
を指定すると、クラスタのMINEXTENTS
パラメータで割り当てられた領域を除き、クラスタから削除された行からすべての領域の割当てを解除できます。この領域は、後で表領域内の他のオブジェクトで使用できます。また、NEXT
記憶域パラメータが、切捨て処理によってセグメントから最後に削除されたエクステントのサイズに設定されます。これはデフォルトです。
REUSE STORAGE
REUSE
STORAGE
を指定すると、クラスタに割り当てられた削除行の領域を確保できます。STORAGEの値は、表またはクラスタを作成したときの値にリセットされません。この領域は、挿入操作または更新操作によってそのクラスタ内に作成される新規データによってのみ使用されます。記憶域パラメータは現行の設定のまま残ります。
切り捨てるオブジェクトに対して複数の空きリストを指定している場合は、REUSE
STORAGE
句によって、インスタンスへの空きリストのマッピングも削除され、最高水位標は第1エクステントの先頭までリセットされます。
例
クラスタの切捨て: 例
次の文は、personnel
クラスタ内の表のすべての行を削除しますが、空き領域は表に割り当てられたままにしておきます。
TRUNCATE CLUSTER personnel REUSE STORAGE;
この文では、personnel
クラスタにある表のすべての索引データも削除されます。