2010-11-01 132 views
1

我们的代理使用嵌入式数据库来存储中间状态。数据库正在不断写入,以便在代理重新启动的情况下备份状态。我们目前正在使用Firebird嵌入式数据库,该数据库取代了SQLITE,后者在代理程序的高度并发环境中表现不佳。压力测试嵌入式数据库

但是,火鸟不是没有它的故障。当我们用我们的测试步骤后,我们开始看到日志中的访问冲突异常和死锁报告(任何有兴趣的堆栈跟踪可以在这里查看它们 - http://tracker.firebirdsql.org/browse/CORE-3207http://tracker.firebirdsql.org/browse/CORE-3209

他们的支持是非常敏感的,但它是很难对我来说,我们将我们的场景剥离为一个可以使数据库崩溃的最小代码示例。

我的问题 - 有谁知道一个简单的工具来压力测试一个嵌入式数据库真的很快?

非常感谢所有优秀的撒玛利亚人。

P.S.

请不要建议自己写 - 我很清楚这个选项,宁愿下载准备好的东西。

回答

1

Firebird是基准测试套件的一部分,您可以找到here。 它不测试可能需要的多线程访问。任何数据库都需要一次只允许一个更新程序以一定的粒度。它可以是每个数据库一个或每页一个或每个对象一个。您可能需要重新检查您的应用程序,以便多个线程不会彼此跺脚。 如果您正在寻找更好的性能,请与Firebird比较,查看VelocityDB,here