火鸟gfix扫不干净

时间:2018-06-26 09:57:53

标签: firebird

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

1 个答案:

答案 0 :(得分:1)

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

换句话说,在几乎所有情况下,备份都会比数据库本身小,有时甚至要小得多(如果您有很多索引或很多事务搅动,或者有很多斑点)。

Firebird中的垃圾收集将删除旧的记录版本,扫描还将清除交易信息。两者都不会释放分配的页面,即:数据库文件不会收缩。参见Firebird for the Database Expert: Episode 4 - OAT, OIT, & Sweep

如果要收缩数据库,则需要备份,但是通常不需要这样做:Firebird会自动重用其数据页上的可用空间。

另请参阅Firebird for the Database Expert: Episode 6 - Why can't I shrink my databases