プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
12cリリース1 (12.1)
B71278-13
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

TRUNCATE CLUSTER

用途


注意:

TRUNCATE CLUSTER文はロールバックできません。

TRUNCATE CLUSTER文を使用すると、クラスタからすべての行を削除できます。デフォルトでは、次の処理も実行されます。

  • 削除された行が使用していたすべての領域(ただし、MINEXTENTS記憶域パラメータで指定された領域は除く)の割当てが解除されます。

  • NEXT記憶域パラメータが、切捨て処理によってセグメントから最後に削除されたエクステントのサイズに設定されます。

クラスタを削除して再作成するより、TRUNCATE文で行を削除する方が効果的です。クラスタを削除して再作成すると、そのクラスタに依存するオブジェクトが無効になり、クラスタに対するオブジェクト権限を再度付与する必要があるだけでなく、表の索引とクラスタを再作成し、その記憶域パラメータを再指定することも必要になります。切捨ての場合は、このような影響はありません。

TRUNCATE CLUSTER文を使用すると、DELETE文を使用してすべての行を削除するよりも迅速に削除できます。特に、クラスタに索引およびその他の依存オブジェクトが多数ある場合に有効です。


関連項目:


前提条件

クラスタを切り捨てるには、自分のスキーマ内にそのクラスタがあるか、またはDROP ANY TABLEシステム権限が必要です。

構文

truncate_cluster::=

truncate_cluster.gifの説明が続きます。
図truncate_cluster.gifの説明

セマンティクス

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クラスタにある表のすべての索引データも削除されます。