在Oracle中,从表中删除行时,不会清除INSERT INTO
操作后为数据分配的空间。相反,在DELETE FROM
操作之后,剩下一些“废物空间”。那么当我在INSERT INTO
之后DELETE FROM
时会发生什么呢?它是否会跨越这个“浪费空间”或者再次分配新空间?
答案 0 :(得分:1)
请参阅the Oracle Concepts manual:
默认情况下,表被组织为堆,这意味着 数据库将行放在最适合的位置而不是a 用户指定的订单。因此,堆组织表是无序的 行的集合。当用户添加行时,数据库会将行放入 数据段中的第一个可用空间。行不是 保证按插入顺序检索。
答案 1 :(得分:1)
这是 high water mark (HWM) 概念。
高水位线(HWM)
段中已用空间和未使用空间之间的边界。
Thomas Kyte here详细解释了这一点。
标准Oracle表是堆组织表。它是一个以无特定顺序存储的行的表。
如果您要申领可用空间,则需要重新组织表格。