Oracle削除されたデータの後にテーブルスペースを解放する方法
OracleデータベースでDELETE文を使ってデータを削除しても、データ行が削除されるのみで表領域は解放されません。表領域を解放する場合は、次のような方法を使用できます。
- TRUNCATE ステートメントを使用します。TRUNCATE ステートメントは、テーブル内のすべてのデータを削除し、テーブル領域を開放します。ロールバック ログが作成されず、トリガーがトリガーされないため、DELETE ステートメントよりも高速です。例:
- DELETE FROM 表名;
- DROP ステートメントを使用してテーブルを再作成:DROP ステートメントを使用してテーブルを削除し、CREATE ステートメントを使用してテーブルを再作成する。この方法はテーブル領域を解放し、再作成されたテーブルにはデータがない。例:
- テーブル名 DROP テーブル;
テーブル名 CREATE テーブル (…); - ALTER TABLEを使用してテーブルを一時的に移動:ALTER TABLEを使用してテーブルを別のテーブルスペースに移動してから、テーブルを元のテーブルスペースに戻します。 このプロセスではテーブルが再作成され、元のテーブルスペースは解放されます。 例:
- ALTER TABLE テーブル名 MOVE TABLESPACE 新テーブルスペース名;
操作を実行する前に、データとテーブル構造のバックアップを必ず作成して、データの喪失を回避してください。