Oracle具有表空间的概念。表空间是否类似于磁盘上的实际物理存储空间?如果这是真的,并且我从数据库中删除了一百万条记录,那么磁盘上的空间会立即被释放吗?
答案 0 :(得分:4)
不,不。
使用一个或多个数据文件创建表空间。数据文件最接近磁盘。表空间中的数据在数据文件上进行条带化。如果从表中删除行,则该表中将有可用空间。如果然后缩小该表,则表空间中的可用空间会增长,并且在支持表空间中也会相同。
如果您很幸运,并且您的表数据位于数据文件的末尾[s],您也可以缩小数据文件,之后您将在操作系统上获得更多可用空间。
答案 1 :(得分:1)
是表空间表示磁盘上的实际物理存储空间 不,如果你删除了一百万条记录,那么就不会释放任何空间。
表空间是磁盘上预先调整大小的数据文件的集合;通过从其中一个数据文件中删除数据,您不会释放任何空间,因为您没有减小表空间的大小。它有一个没有改变的预定大小。
您可以manually resize a datafile但仅当存储在该文件(而不是表空间)中的数据量小于您希望将其减少到的大小时。要使用Oracle的示例语法:
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf'
RESIZE 100M;
这不是可以玩的东西。数据文件和表空间的大小通常有很好的理由。在做任何事之前,你应该和你的DBA谈谈。