问题描述
|
在Windows中使用SQLite时似乎出现问题,相对较大的数据集上的第一个查询比随后的查询要花费大量的时间。我确定它与查询结构无关。
从Internet上的其他帖子看来,这可能与Windows中的缓存问题(在启动时尝试缓存大文件)有关,但是,我无法对此进行验证。另外,如果SQLite而不是Windows出现问题,我也无法在SQLite文档中找到足够的信息来解决。
我有两个与此有关的问题:
谁能确认Windows的大文件问题可能会影响SQLite数据库(文件扩展名不是\“。db \”)并提出一些解决方法?
SQLite本身内部是否发生任何事情,可能解释了第一个查询比其余查询慢得多。
解决方法
您可能会从sqlite-users邮件列表中发现此消息线程有帮助。
, 缓存不是“问题”。发生的情况是,第一次执行查询时,结果将加载到缓存中,然后返回。在后续调用中,结果将从缓存中提取。
如果关闭了缓存,则所有查询将花费相同(更长)的时间来返回数据。
这就是数据库缓存的本质。
如果第一个查询花费的时间太长,那么您应该考虑调整其性能的方法。
另一个缓存是动态加载DLL的时间。如果这是您正在观察的内容,则可以在应用程序启动时执行查询。这会减慢您的应用启动速度,但您的第一个实际查询会更快。