コマンドを使用してテーブルスペースからデータを削除しようとしました
DROP USER xyz CASCADE;
ユーザーが削除されたことがわかりましたが、テーブルスペースのサイズは減少しませんでした。テーブルスペースからのデータは削除されていますか? はいの場合、どうすればそれを確認できますか? そして、なぜスペースが割り当て解除されなかったのですか?
コマンドを使用してテーブルスペースからデータを削除しようとしました
DROP USER xyz CASCADE;
ユーザーが削除されたことがわかりましたが、テーブルスペースのサイズは減少しませんでした。テーブルスペースからのデータは削除されていますか? はいの場合、どうすればそれを確認できますか? そして、なぜスペースが割り当て解除されなかったのですか?
Oracleは、テーブルスペースの構成要素であるデータファイルを自動的に縮小しません。Oracleは、ユーザーXYZのセグメント(テーブル、インデックスなど)によって使用されていたスペースを、他のユーザーのセグメントが使用できるように空きとしてマークしただけです。
SELECT * FROM DBA_OBJECTS WHERE OWNER = 'XYZ';
ユーザーXYZがデータベース内の物理(テーブル、インデックス、クラスター)または論理(シーケンス、プロシージャ、パッケージ、トリガー、タイプ)オブジェクトを所有していないことを示す必要があります。
特定の状況下では、次のコマンドを使用してデータファイルを縮小できます。
ALTER DATABASE DATAFILE 'filename2' RESIZE new_size;
ファイルの終わりにデータがない場合は、データファイルのサイズを小さくすることができます。詳細については、「表スペースの管理」を参照してください。