1
最近、データベースの一部のテーブルから大量のデータを削除しました。今私は、そのデータが保持していたスペースを解放したいと思います。その後、私はインデックスを再構築したいと思います。 スペースを解放する最も良い方法は何ですか?テーブルからデータを削除した後のOracleの空き容量
最近、データベースの一部のテーブルから大量のデータを削除しました。今私は、そのデータが保持していたスペースを解放したいと思います。その後、私はインデックスを再構築したいと思います。 スペースを解放する最も良い方法は何ですか?テーブルからデータを削除した後のOracleの空き容量
「空き容量を増やす」とはどういう意味ですか?データを削除すると、ブロックが解放されました。このスペースは、データを削除したテーブルの後続の挿入(または更新)に使用できるようになりました。テーブルは通常、将来的に再び成長するので、これで通常は十分です。
あなたは同じ表領域に
ALTER TABLE table_name ENABLE ROW MOVEMENT;
ALTER TABLE table_name SHRINK SPACE CASCADE;
を表セグメントのサイズを小さくし、他のセグメントにスペースを利用できるようにしたい場合に再構築するために、その時点での必要は一般的にありませんテーブルを縮小できインデックス。
ありがとうございます。インデックスを再構築するメリットがないのはなぜですか? – Victor
@ Kaushik - 一般的に、Oracleのインデックスは再構築する必要はありません。テーブルを縮小すると、テーブルの中のデータが物理的に再編成され、一連の削除と挿入がカバーの下に行われます。また、 'SHRINK SPACE'コマンドの' CASCADE'オプションは、インデックスのような従属オブジェクトにコマンドを適用します。その時点で、あなたは既にインデックス上に 'COALESCE'と' SHRINK'を実行しました。再構築する必要はありません。 –