2013-11-01 77 views

回答

4

否和否。

表空间由一个或多个数据文件构成。数据文件最靠近磁盘。表空间中的数据被分散到数据文件中。如果您从表中删除行,那么该表中将有可用空间。如果您然后缩小该表,则表空间中的可用空间会增加,并且在支持的表空间中也会变得相同。

如果你很幸运并且你的表数据在数据文件的末尾,那么你也可以缩小数据文件,然后在OS上获得更多的空闲空间。

1

是表空间表示磁盘上的实际物理存储空间。
不,如果您删除了一百万条记录,则不会释放空间。

表空间是预先设定大小的磁盘上的数据文件的集合;通过从这些数据文件中删除数据,您不会释放任何空间,因为您没有减小表空间的大小。它有一个没有改变的预定大小。

可以manually resize a datafile,但只有当存储在该文件(而不是表空间)的数据量小于大小你想减少它。要使用Oracle的示例语法:

ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' 
    RESIZE 100M; 

这不是要玩的东西。数据文件和表空间的大小通常有很好的理由。在做任何事之前,你应该和你的DBA谈谈。