从Oracle中的表空间中删除表数据

时间:2010-08-11 14:42:04

标签: sql oracle tablespace

我尝试使用命令

从表空间中删除数据
  

DROP USER xyz CASCADE;

我发现用户已被删除,但我的表空间大小没有减少。 我的数据表空间是否已被删除?如果是,我该如何确认?为什么这个空间没有被解除分配?

2 个答案:

答案 0 :(得分:2)

Oracle不会自动收缩数据文件,这就是表空间的组成部分。 Oracle只是将用户XYZ段(表,索引等)使用的空间标记为可供其他一些用户的段免费使用。

SELECT * FROM DBA_OBJECTS WHERE OWNER = 'XYZ';应该证明用户XYZ不再拥有数据库中的任何物理(表,索引,集群)或逻辑(序列,过程,包,触发器,类型)对象。

答案 1 :(得分:2)

在某些情况下,您可以使用以下命令缩小数据文件:

ALTER DATABASE DATAFILE 'filename2' RESIZE new_size;

如果文件末尾没有数据,则可以减小数据文件的大小。有关详细信息,请参阅“Managing Tablespaces”。