2013-09-05 211 views
2

我面对的SQLite一个问题,我需要一些帮助。 我正在使用SQLite预编译DLL在C#.NET中开发应用程序。我使用的版本是x86的“1.0.66.0”和x64处理器的“1.0.79.0”。的executeQuery命令运行速度很慢

我用下面的命令来得到一些结果

*using (DbDataReader reader = _database.ExecuteQuery(selectCommand))* 

的场景如下:

#1我建立与目标平台的exe:x64和加载SQLite的x64版本 在这种情况下,ExecuteQuery执行selectCommand并在1秒内返回结果(37行)。

#2我建立与目标平台的exe:x86和加载的SQLite 86版本在这种情况下的executeQuery执行的SelectCommand并返回55秒的结果(37行)。

这是非常奇怪的,因为代码完全相同,唯一改变的事情就是为了在这两种类型的处理器上运行的sqlite的DLL。

任何思考如何解决这个问题呢?

PS。当我在数据库上运行相同的命令时,手动在1秒内返回数据。查询时比86版本执行

+0

你在这三种情况下使用什么版本的SQLite的? (尝试'SELECT sqlite_version()') –

+0

@CL -My SQLite的版本是3.7.6.1 –

+0

,其他两个? –

回答

-1

64版本使用更大的虚拟空间。因此,x86平台的执行时间大于x64,并且将其最小化的唯一方法是将索引添加到查询的表中。

+0

这是错误的; SQLite使用完全相同的页面缓存大小(2000页)。 –

相关问题