删除Oracle

时间:2016-02-10 12:42:15

标签: oracle11g

在Oracle中,从表中删除行时,不会清除INSERT INTO操作后为数据分配的空间。相反,在DELETE FROM操作之后,剩下一些“废物空间”。那么当我在INSERT INTO之后DELETE FROM时会发生什么呢?它是否会跨越这个“浪费空间”或者再次分配新空间?

2 个答案:

答案 0 :(得分:1)

请参阅the Oracle Concepts manual

  

默认情况下,表被组织为堆,这意味着   数据库将行放在最适合的位置而不是a   用户指定的订单。因此,堆组织表是无序的   行的集合。当用户添加行时,数据库会将行放入   数据段中的第一个可用空间。行不是   保证按插入顺序检索。

答案 1 :(得分:1)

这是 high water mark (HWM) 概念。

  

高水位线(HWM)

     

段中已用空间和未使用空间之间的边界。

Thomas Kyte here详细解释了这一点。

标准Oracle表是堆组织表。它是一个以无特定顺序存储的行的表。

如果您要申领可用空间,则需要重新组织表格。