紧凑型火鸟 2.1 数据库
Posted
技术标签:
【中文标题】紧凑型火鸟 2.1 数据库【英文标题】:Compact Firebird 2.1 Database 【发布时间】:2011-04-15 04:53:02 【问题描述】:我如何压缩 Firebird 2.1 数据库,就像我们在 MS Access 中所做的一样(丢弃已删除的数据、重新创建索引等)?
有办法吗?
谢谢!
【问题讨论】:
另见***.com/questions/1662431/… 【参考方案1】:唯一的方法是进行备份和恢复。
【讨论】:
巴西人,爱德华多?我也是!感谢您的建议! 是的,我是。欢迎联系我。【参考方案2】:通常不需要压缩 Firebird 数据库:请参阅关于垃圾收集和名为“扫描”的自动(每个数据库可配置)操作的 fb 发行说明。 简而言之,当删除记录或释放最旧的记录版本时,fb 会重用页面中的空间,仅在可用空间变得太小时(即低于定义的百分比)时才要求磁盘空间块。 默认情况下,在预定义数量的已提交事务后执行扫描,但这是一项昂贵的任务。 备份和恢复必须作为优化和收缩的最后手段,因为这也会重建和优化索引,但通常不需要这样做,因为有重建索引的命令和工具。
【讨论】:
【参考方案3】:来自official faq
许多用户想知道为什么他们在使用时没有取回磁盘空间 从数据库中删除大量记录。
原因是它是一项昂贵的操作,它需要一个 大量磁盘写入和内存 - 就像对 硬盘分区。被使用的数据库部分(页面) 此类数据被标记为空,Firebird 将在下次重复使用它们 它需要写入新数据。
如果磁盘空间对您很重要,您可以通过以下方式取回空间 做备份然后恢复。因为你正在做备份 立即恢复,明智的做法是使用“禁止垃圾回收” 或“不使用垃圾收集”开关(gbak 中的 -G),这将使 备份速度要快得多。垃圾收集用于清理您的 数据库,并且由于它是一项维护任务,因此通常一起完成 带备份(因为备份必须通过整个数据库)。 但是,您很快就会放弃该数据库文件,并且没有 需要清理一下。
【讨论】:
以上是关于紧凑型火鸟 2.1 数据库的主要内容,如果未能解决你的问题,请参考以下文章