当我们从Netezza表中删除数据时,它会被存档(软删除)并且不会永久删除。只有在执行GROOM时才会永久删除它并回收磁盘空间。
这是为什么?为什么我们不能立即恢复磁盘空间,我们需要做一个GROOM?
答案 0 :(得分:2)
Netezza通过将压缩行写入磁盘上的3MB扩展区来存储表数据。一行可占用比不同行更多的空间。由于压缩是可变的,因此当您删除行时,不确定任何其他行是否完全适合已删除的空间。首先确定行的大小然后寻找可以容纳新行的已删除行的空间对性能是极其有害的。
当涉及从已删除行中回收空间时,一般来说,GROOM会将剩余的未删除行从一个范围合并到一个新范围(以及它可以打包的任何其他行),然后将旧范围回收为自由空间。
这至少是为什么来自已删除行的空间不能立即作为可用空间使用的原因之一。