プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

deallocate_unused_clause

用途

deallocate_unused_clauseを使用すると、データベース・オブジェクト・セグメントの終わりにある未使用領域の割当てを明示的に解除し、解放された領域を表領域の他のセグメントで使用できるようになります。

未使用領域の割当ては、次の文で解除できます。

  • ALTER CLUSTER(「ALTER CLUSTER」を参照)

  • ALTER INDEX: 未使用領域の割当てを索引、索引パーティションまたは索引サブパーティションから解除する場合(「ALTER INDEX」を参照)

  • ALTER MATERIALIZED VIEW: 未使用領域の割当てを索引構成マテリアライズド・ビューのオーバーフロー・セグメントから解除する場合(「ALTER MATERIALIZED VIEW」を参照)

  • ALTER TABLE: 未使用領域の割当てを表、表パーティション、表サブパーティション、索引構成表のマッピング表、索引構成表のオーバーフロー・セグメントまたはLOB記憶域セグメントから解除する場合(「ALTER TABLE」を参照)

構文

deallocate_unused_clause::=

deallocate_unused_clause.gifの説明が続きます。
図「deallocate_unused_clause.gif」の説明

(size_clause::=を参照)

セマンティクス

この項では、deallocate_unused_clauseのセマンティクスについて説明します。詳細は、特定のデータベース・オブジェクトに対してこの句を設定または再設定するSQL文の説明を参照してください。

同じ文でdeallocate_unused_clauseallocate_extent_clauseの両方を指定することはできません。

最高水位標を超える(データベース・ブロックがデータを受け取るためにフォーマットされていない)未使用領域のみ解放できます。未使用領域の割当て解除は、オブジェクトの終わりから開始し、オブジェクトの先頭にある最高水位標に向かって進行します。

エクステントが割当て解除の範囲内に完全に含まれる場合、エクステント全体が解放されて再利用可能となります。エクステントの一部が含まれる場合、最高水位標までのすでに使用されている部分がエクステントになり、残りの未使用領域が解放されて再利用可能になります。

割当てが解除される表領域のユーザー割当て制限は、解放される領域の量のみ増加します。

解放される領域の実際の量は、INITIALMINEXTENTSおよびNEXT記憶域パラメータによって異なります。これらのパラメータの詳細は、storage_clauseを参照してください。

KEEP integer

割当て解除後に、データベース・オブジェクトのセグメントが保持する、最高水位標を超えるバイト数を指定します。

  • KEEPを指定しなかった場合に、最高水位標がINITIALおよびMINEXTENTSのサイズを超えると、最高水位標を超えるすべての未使用領域が解放されます。最高水位標がINITIALまたはMINEXTENTSのサイズより小さい場合は、MINEXTENTSを超えるすべての未使用領域が解放されます。

  • KEEPオプションを指定した場合、指定した量の領域が保持され、残りの領域のみが解放されます。このとき、残りのエクステント数がMINEXTENTSより小さくなった場合、MINEXTENTSはそのエクステント数に変更されます。また、初期エクステントがINITIALより小さくなった場合、INITIALがそのサイズに変更されます。

  • どちらの場合にも、NEXT記憶域パラメータの値は、割当て解除された最後のエクステントのサイズに設定されます。