1

コマンドを使用してテーブルスペースからデータを削除しようとしました

DROP USER xyz CASCADE;

ユーザーが削除されたことがわかりましたが、テーブルスペースのサイズは減少しませんでした。テーブルスペースからのデータは削除されていますか? はいの場合、どうすればそれを確認できますか? そして、なぜスペースが割り当て解除されなかったのですか?

4

2 に答える 2

2

Oracleは、テーブルスペースの構成要素であるデータファイルを自動的に縮小しません。Oracleは、ユーザーXYZのセグメント(テーブル、インデックスなど)によって使用されていたスペースを、他のユーザーのセグメントが使用できるように空きとしてマークしただけです。

SELECT * FROM DBA_OBJECTS WHERE OWNER = 'XYZ';ユーザーXYZがデータベース内の物理(テーブル、インデックス、クラスター)または論理(シーケンス、プロシージャ、パッケージ、トリガー、タイプ)オブジェクトを所有していないことを示す必要があります。

于 2010-08-11T14:51:22.863 に答える
2

特定の状況下では、次のコマンドを使用してデータファイルを縮小できます。

ALTER DATABASE DATAFILE 'filename2' RESIZE new_size;

ファイルの終わりにデータがない場合は、データファイルのサイズを小さくすることができます。詳細については、「表スペースの管理」を参照してください。

于 2010-08-11T14:59:20.867 に答える