从表中删除不会清除oracle空间

时间:2016-09-23 07:37:17

标签: database oracle

我已经在这个用户下创建了一个表空间和用户以及我有10个表,其中LOB对象占用了空间但是它需要作为应用程序的一部分。我已经创建了一个删除脚本,可以在30天之前从这些表中删除数据。但即使从表中删除了数据,空间也不会被清除。 当我有200天的数据时,我有5%的可用空间。现在我有30天的数据,仍有5%的可用空间。 请指教,我如何能够掩盖这种情况。这很关键。

1 个答案:

答案 0 :(得分:1)

当一个范围被分配给一个表(或索引等)时,它属于那个表,直到你

  1. 放下桌子
  2. 截断表格
  3. 当您从表中删除数据时 - 这些块将进入该表的空闲列表(假设已释放的块上的空间量低于pctused)。这些块将用于后续插入和更新到此表中。

    正如汤姆建议你https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1336002638218回收空间:

    1. 使用自动扩展数据文件创建一个新的本地管理表空间(因此文件将根据需要增长)
    2. alter table T移动表空间that_new_one
    3. drop tablespace that_old_one;