Oracle 有表空间的概念。表空间是否类似于磁盘上的实际物理存储空间?如果这是真的,我从数据库中删除了一百万条记录,磁盘上的空间会立即释放吗?
问问题
1186 次
2 回答
4
没有也没有。
一个表空间是由一个或多个数据文件构成的。数据文件最接近磁盘。表空间中的数据在数据文件上被条带化。如果您从表中删除行,则该表中将有可用空间。如果然后缩小该表,则表空间中的可用空间会增长,并且支持表空间中的可用空间相同。
如果您很幸运并且您的表数据位于数据文件的末尾,您也许还可以缩小数据文件,之后您将在操作系统上获得更多可用空间。
于 2013-11-01T16:18:06.180 回答
1
是的,表空间代表磁盘上的实际物理存储空间。
不,如果您删除一百万条记录,则不会释放任何空间。
表空间是磁盘上预先确定大小的数据文件的集合;通过从这些数据文件之一中删除数据,您不会释放任何空间,因为您没有减少表空间的大小。它具有未更改的预定大小。
您可以手动调整数据文件的大小,但前提是该文件(而不是表空间)中存储的数据量小于您希望将其减小到的大小。要使用 Oracle 的示例语法:
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf'
RESIZE 100M;
这不是玩弄的东西。数据文件和表空间的大小通常有充分的理由。在做任何事情之前,您应该与您的 DBA 交谈。
于 2013-11-01T16:17:03.973 回答