firebird gfix 扫描不干净 [已关闭]

问题描述 投票:0回答:1

我在使用 gfix swing 命令时遇到了问题,因为它无法清理垃圾收集器。这可能是什么问题。数据库备份大小比数据库本身小 900mb。如果手动启动的 gfix 扫描不起作用,会出现什么问题?

firebird
1个回答
1
投票

备份较小,因为它不包含索引,而只包含数据库数据本身,并且它只包含最新提交的事务的数据,不包含较早的记录版本。此外,备份的存储格式更加高效,因为它是串行写入和读取的,不需要数据库本身使用更复杂的布局。

换句话说,在几乎所有情况下,备份都会小于数据库本身,有时会小得多(如果您有大量索引或大量事务搅动,或大量 blob)。

Firebird 中的垃圾收集会删除旧的记录版本,扫描也会清理交易信息。两者都不会释放分配的页面,即:数据库文件不会收缩。请参阅 Firebird 数据库专家:第 4 集 - OAT、OIT 和 Sweep

如果你想收缩数据库,你需要备份恢复它,但通常不需要这样做:Firebird会自动重新使用其数据页上的可用空间。

另请参阅 数据库专家的 Firebird:第 6 集 - 为什么我不能缩小数据库

© www.soinside.com 2019 - 2024. All rights reserved.