我尝试使用命令
从表空间中删除数据DROP USER xyz CASCADE;
我发现用户已被删除,但我的表空间大小没有减少。 我的数据表空间是否已被删除?如果是,我该如何确认?为什么这个空间没有被解除分配?
答案 0 :(得分:2)
Oracle不会自动收缩数据文件,这就是表空间的组成部分。 Oracle只是将用户XYZ段(表,索引等)使用的空间标记为可供其他一些用户的段免费使用。
SELECT * FROM DBA_OBJECTS WHERE OWNER = 'XYZ';
应该证明用户XYZ不再拥有数据库中的任何物理(表,索引,集群)或逻辑(序列,过程,包,触发器,类型)对象。
答案 1 :(得分:2)
在某些情况下,您可以使用以下命令缩小数据文件:
ALTER DATABASE DATAFILE 'filename2' RESIZE new_size;
如果文件末尾没有数据,则可以减小数据文件的大小。有关详细信息,请参阅“Managing Tablespaces”。