从概念上讲,Oracle表空间是否与磁盘空间相同?

时间:2013-11-01 16:06:18

标签: oracle tablespace

Oracle具有表空间的概念。表空间是否类似于磁盘上的实际物理存储空间?如果这是真的,并且我从数据库中删除了一百万条记录,那么磁盘上的空间会立即被释放吗?

2 个答案:

答案 0 :(得分:4)

不,不。

使用一个或多个数据文件创建表空间。数据文件最接近磁盘。表空间中的数据在数据文件上进行条带化。如果从表中删除行,则该表中将有可用空间。如果然后缩小该表,则表空间中的可用空间会增长,并且在支持表空间中也会相同。

如果您很幸运,并且您的表数据位于数据文件的末尾[s],您也可以缩小数据文件,之后您将在操作系统上获得更多可用空间。

答案 1 :(得分:1)

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

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

您可以manually resize a datafile但仅当存储在该文件(而不是表空间)中的数据量小于您希望将其减少到的大小时。要使用Oracle的示例语法:

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

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