从Firebird DataBase中删除垃圾

时间:2013-05-23 06:46:53

标签: delphi delphi-7 firebird2.1

Firebird 2.1.3数据库似乎正在从未完成的事务中创建大量垃圾,这导致数据库运行非常缓慢,直到通过数据库扫描或服务器重启来删除垃圾。我的数据库大小为30gb +。 你有什么想法可能导致这个吗? 任何新的存储过程是否会产生多余的垃圾? 请帮帮我。?

1 个答案:

答案 0 :(得分:3)

Firebird数据库在一段时间后变慢通常是客户端事务管理不良的标志。通过检查标题页中的各种事务计数器可以很容易地检查这一点,可以通过运行查询来查询:

gstat -h <yourdatabase>

当您的数据库变慢时。例如:几乎所有的访问库,当以自动提交模式运行事务时(基本上当你不关心在客户端应用程序中启动显式事务时),正在使用COMMIT RETAINING,这基本上阻止了向前移动OIT / OAT。

除了gstat命令行工具,使用Firebird 2.1,您还可以使用监控表,特别是MON $ TRANSACTIONS来识别长时间运行的事务。