Firebird 2.1.3数据库似乎正在从未完成的事务中创建大量垃圾,这导致数据库运行非常缓慢,直到通过数据库扫描或服务器重启来删除垃圾。我的数据库大小为30gb +。 你有什么想法可能导致这个吗? 任何新的存储过程是否会产生多余的垃圾? 请帮帮我。?
答案 0 :(得分:3)
Firebird数据库在一段时间后变慢通常是客户端事务管理不良的标志。通过检查标题页中的各种事务计数器可以很容易地检查这一点,可以通过运行查询来查询:
gstat -h <yourdatabase>
当您的数据库变慢时。例如:几乎所有的访问库,当以自动提交模式运行事务时(基本上当你不关心在客户端应用程序中启动显式事务时),正在使用COMMIT RETAINING,这基本上阻止了向前移动OIT / OAT。
除了gstat命令行工具,使用Firebird 2.1,您还可以使用监控表,特别是MON $ TRANSACTIONS来识别长时间运行的事务。