【发布时间】:2010-08-11 14:42:03
【问题描述】:
我尝试使用命令从表空间中删除数据
删除用户 xyz 级联;
我发现用户被删除但我的表空间大小并没有减少。 我的表空间中的数据是否已被删除?如果是,我该如何确认?为什么没有释放空间?
【问题讨论】:
标签: sql oracle tablespace
我尝试使用命令从表空间中删除数据
删除用户 xyz 级联;
我发现用户被删除但我的表空间大小并没有减少。 我的表空间中的数据是否已被删除?如果是,我该如何确认?为什么没有释放空间?
【问题讨论】:
标签: sql oracle tablespace
Oracle 不会自动收缩数据文件,而数据文件正是表空间的组成部分。 Oracle 只是简单地将用户 XYZ 的段(表、索引等)使用的空间标记为空闲,供其他用户的段使用。
SELECT * FROM DBA_OBJECTS WHERE OWNER = 'XYZ'; 应证明用户 XYZ 不再拥有数据库中的任何物理(表、索引、集群)或逻辑(序列、过程、包、触发器、类型)对象。
【讨论】:
在某些情况下,您可以使用以下命令收缩数据文件:
ALTER DATABASE DATAFILE 'filename2' RESIZE new_size;
如果文件末尾没有数据,可以减小数据文件大小。有关详细信息,请参阅“Managing Tablespaces”。
【讨论】: