在我的应用程序中,我们上传了大量数据。如果任何错误上传的数据,那么我们可以删除数据。那么,什么数据删除该空间何时将回收数据?。是否有任何影响性能是否有回收在oracle中大量删除后的空格?。如何回收空间?
答案 0 :(得分:14)
在Oracle中,删除数据不会自动回收磁盘空间。数据库将保留其存储,直到您对表空间执行某些管理。这种行为的期望是,如果你一次需要存储,你可能会再次需要它,因此简单地保持分配会更有效。
就性能影响而言,处理的数据越少,查询速度越快。 :)
要回收空间,您有几个选择。 This article from ORACLE-BASE对这种情况有一个非常全面的了解。
另外,为什么要插入数据,然后确定它是“坏”然后删除它?你不想避免从一开始就把数据放进去吗?
答案 1 :(得分:3)
您需要研究High Water Mark(HWM)。
基本上它是特定表所使用的最大块数,如果加载大量数据,则可能会增加HWM,删除那些记录则不会减少HWM。
Here是关于如何调整HWM的精彩文章,如果您理解它,您认为它可能会影响您的环境,那么请使用附带的提示来减少您的HWM。
希望它有所帮助...
答案 2 :(得分:0)
删除后无法回收空间。但如果删除后剩余数据的大小相对较小,则创建一个包含数据的新表,删除旧表并将新表重命名为旧名称
答案 3 :(得分:0)
我知道这是一个老问题,但是为了将来的参考: