首先在Firebird上查询速度慢

时间:2011-01-10 08:37:01

标签: sql stored-procedures performance firebird

启动应用程序后,Firebird数据库上的大型数据集上运行的第一个查询总是很慢。对同一查询的后续调用(它是一个存储过程)都可以。我认为这与加载到内存中的内容有关,但我可以解释为什么以及是否可以采取任何措施来解决问题。

3 个答案:

答案 0 :(得分:1)

如果存储过程是第一个查询,它会编译存储过程,它也会获取缓冲区并缓存结果。 在第二个查询中,程序不会再次编译(预先缓存)并且结果是即时的(对于某些操作系统,提取也在内存中,因此不需要磁盘io)

一种方法是优化sp或表 它们有多大? (每个表的记录数)

优化这个的一个简单方法是放置一个每天/小时运行一次的cron脚本来预填充缓存,这样你就可以快速获得sp

答案 1 :(得分:0)

也许这不是关于查询,但连接时间(延迟)很长? [旧] Firebird / Interbase引擎出现了这样的问题。

答案 2 :(得分:0)

您没有解释您正在使用哪个Firebird版本,但是在版本2.50中,存在一个错误(CORE 3227 - 存储过程的慢速编译),这可能是导致问题的原因。更多细节: http://www.firebirdnews.org/?p=5282&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+FirebirdNews+%28Firebird+News%29