2011-09-27 16 views
1

最近、データベースの一部のテーブルから大量のデータを削除しました。今私は、そのデータが保持していたスペースを解放したいと思います。その後、私はインデックスを再構築したいと思います。 スペースを解放する最も良い方法は何ですか?テーブルからデータを削除した後のOracleの空き容量

答えて

6

「空き容量を増やす」とはどういう意味ですか?データを削除すると、ブロックが解放されました。このスペースは、データを削除したテーブルの後続の挿入(または更新)に使用できるようになりました。テーブルは通常、将来的に再び成長するので、これで通常は十分です。

あなたは同じ表領域に

ALTER TABLE table_name ENABLE ROW MOVEMENT; 

ALTER TABLE table_name SHRINK SPACE CASCADE; 

を表セグメントのサイズを小さくし、他のセグメントにスペースを利用できるようにしたい場合に再構築するために、その時点での必要は一般的にありませんテーブルを縮小できインデックス。

+0

ありがとうございます。インデックスを再構築するメリットがないのはなぜですか? – Victor

+3

@ Kaushik - 一般的に、Oracleのインデックスは再構築する必要はありません。テーブルを縮小すると、テーブルの中のデータが物理的に再編成され、一連の削除と挿入がカバーの下に行われます。また、 'SHRINK SPACE'コマンドの' CASCADE'オプションは、インデックスのような従属オブジェクトにコマンドを適用します。その時点で、あなたは既にインデックス上に 'COALESCE'と' SHRINK'を実行しました。再構築する必要はありません。 –

関連する問題