由于缓存,Sqlite在Windows XP中的第一个查询花费了太长时间



在Windows中使用SQLite时似乎出现了问题,因为在相对较大的数据集上的第一个查询比后续查询花费的时间要长得多。我确信它与查询结构无关。

从互联网上的其他帖子来看,这可能与Windows中的缓存问题有关(它试图在启动时缓存大文件),然而,我无法验证这一点。此外,我在SQLite文档中找不到足够的信息来确定这是否是SQLite而不是windows的问题。

我有两个问题与此有关:

  • 有人能确认Windows的大文件可能会对SQLite数据库产生影响(文件扩展名不是".db")&建议一些变通办法?

  • SQLite内部是否有任何事情可以解释第一个查询比其他查询慢得多

您可能会发现sqlite用户邮件列表中的这个消息线程很有用。

缓存不是一个"问题"。实际情况是,第一次执行查询时,结果会加载到缓存中,然后返回。在随后的调用中,会从缓存中提取结果。

如果关闭了缓存,则所有查询都将花费相同(更长)的时间来返回数据。

这就是数据库缓存的本质。

如果第一个查询花费的时间太长,那么您应该考虑调整其性能的方法。

另一个缓存是动态加载DLL时的缓存。如果这就是您所观察到的,那么您可以在应用程序启动时执行查询。这会减慢你的应用程序启动速度,但你的第一次真正查询会更快。

相关内容

最新更新