2012-08-23 135 views
4

如何清除firebird查询缓存来执行我的性能测试?如何清除firebird查询缓存?

的例子SQLServer中here

韩国社交协会

+0

我不认为Firebird有一个“查询缓存”它只是缓存单个数据块。但从来不是查询的结果。 –

+0

可以,但我仍然必须清理它。 –

回答

3

Andrei是正确的 - Firebird严重依赖OS文件系统缓存。 Firebird将在内部缓存少量页面(检查数据库中的缓冲区属性),但它通常只有非常少量的数据。经典默认为75页?我看到其他地方约有1000页的建议,根据页面大小而定,可以提供8或16 MB的建议。

代替重新启动操作系统来清除文件系统缓存,您可以将数据库置于其自身的安装位置。然后为了彻底清除缓存,你可以停止Firebird,卸载/挂载分区并再次启动Firebird。这会使文件系统缓存无效。

这应该不会太痛苦 - 与其他数据库不同,Firebird不必在事务日志中的开始和重放事务上扫描数据文件。翻译日志本质上是通过仔细写入与数据文件结合在一起的。

0

我想重新启动火鸟服务是最简单的(只?)的方式。

+0

我注意到,即使重新启动服务,它也能正常工作。 –

1

除了经常访问的数据页面的内存缓冲区Firebird依赖于OS文件缓存。重新启动服务器进程可以清空内存缓冲区但清除文件缓存,恐怕需要重新启动操作系统。

+0

你说的话对我看到的是有意义的。 –