C# Sqlite第一次查询在Windows XP中由于缓存而花费的时间太长?

C# Sqlite第一次查询在Windows XP中由于缓存而花费的时间太长?,c#,windows,sqlite,caching,system.data.sqlite,C#,Windows,Sqlite,Caching,System.data.sqlite,在Windows中使用SQLite时,在相对较大的数据集上进行第一次查询比后续查询花费的时间要长,这似乎是一个问题。我确信它与查询结构无关 从互联网上的其他帖子来看,这似乎与Windows中的缓存问题有关(它试图在启动时缓存大文件),但是,我无法验证这一点。此外,我在SQLite文档中找不到足够的信息,无法确定这是否是SQLite而不是windows的问题 关于这一点,我有两个问题: 是否有人可以确认Windows的大文件存在问题,可能会影响SQLite数据库(文件扩展名不是“.db”)&建议

在Windows中使用SQLite时,在相对较大的数据集上进行第一次查询比后续查询花费的时间要长,这似乎是一个问题。我确信它与查询结构无关

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

关于这一点,我有两个问题:

  • 是否有人可以确认Windows的大文件存在问题,可能会影响SQLite数据库(文件扩展名不是“.db”)&建议一些解决方法

  • SQLite本身是否有什么事情可以解释第一个查询比其他查询慢得多

缓存不是一个“问题”。第一次执行查询时,将结果加载到缓存中,然后返回。在后续调用中,将从缓存中提取结果

如果关闭缓存,则所有查询返回数据所需的时间相同(更长)

这就是数据库缓存的本质

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

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

您可以从sqlite用户邮件列表中找到有用的信息