为什么我们需要 GROOM a neteza table 来回收磁盘 space

Why we need to GROOM a neteza table to reclaim disk space

当我们从 Netezza 表中删除数据时,它会被存档(软删除)而不是永久删除。它被永久删除并且磁盘 space 仅在您执行 GROOM 时被回收。

这是为什么?为什么我们不能立即取回磁盘 space 而需要进行 GROOM?

Netezza 通过将压缩行写入磁盘上的 3MB 范围来存储 table 数据。一行可能比另一行占用更多 space。因为压缩是可变的,所以当您删除一行时,不确定是否有任何其他行可以完全容纳在删除后留下的 space 中。首先确定行的大小然后寻找可容纳新行的已删除行的 space 会对性能造成极大的损害。

当谈到从已删除的行中回收 space 时,一般来说,GROOM 会将剩余的未删除行从一个范围合并到一个新的范围(连同它可以打包的任何其他行),并且然后回收旧的范围作为免费 space.

这至少是删除行中的 space 不能立即免费使用的原因之一 space。