Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite x86中的ExecuteQuery命令运行速度非常慢_Sqlite_X86_64 Bit_Executequery - Fatal编程技术网

SQLite x86中的ExecuteQuery命令运行速度非常慢

SQLite x86中的ExecuteQuery命令运行速度非常慢,sqlite,x86,64-bit,executequery,Sqlite,X86,64 Bit,Executequery,我正面临SQLite的问题,我需要一些帮助。 我正在用SQLite预编译DLL在C#.NET中开发一个应用程序。我使用的版本是x86的“1.0.66.0”,x64处理器的“1.0.79.0” 我使用以下命令获得一些结果 *using (DbDataReader reader = _database.ExecuteQuery(selectCommand))* 场景如下: #1我使用平台目标:x64构建exe,并加载x64版本的SQLite 在这种情况下,ExecuteQuery执行selectC

我正面临SQLite的问题,我需要一些帮助。 我正在用SQLite预编译DLL在C#.NET中开发一个应用程序。我使用的版本是x86的“1.0.66.0”,x64处理器的“1.0.79.0”

我使用以下命令获得一些结果

*using (DbDataReader reader = _database.ExecuteQuery(selectCommand))*
场景如下:

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

#2我使用平台目标x86构建exe,并加载x86版本的SQLite 在这种情况下,ExecuteQuery执行selectCommand并在55秒内返回结果(37行)

这很奇怪,因为代码完全相同,唯一需要更改的是sqlite dll,以便在这两种类型的处理器中运行

如何解决这个问题


另外,当我在数据库上运行相同的命令时,手动在1秒内返回数据。

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

x64版本在执行查询时比x86版本使用更大的虚拟空间。因此,x86平台的执行时间比x64要长,减少执行时间的唯一方法是向查询的表中添加索引。

在这三种情况下,您使用的是什么版本的SQLite?(尝试
选择sqlite_version()
)@CL-我的sqlite版本是3.7.6。1@CL-案例有两个,我在两个案例中使用相同的版本。如果您的意思是DLL的版本对于x86是“1.0.66.0”,对于x64是“1.0.79.0”。感谢根据,您的两个DLL均未使用版本3.7.6.1。第三种情况是使用任何工具手动运行命令。无论如何,x64 DLL中更新的SQLite版本中更新的查询优化器可以解释这种差异。在这三种情况下,您使用的是哪个版本的SQLite?(尝试
选择sqlite_version()
)@CL-我的sqlite版本是3.7.6。1@CL-案例有两个,我在两个案例中使用相同的版本。如果您的意思是DLL的版本对于x86是“1.0.66.0”,对于x64是“1.0.79.0”。感谢根据,您的两个DLL均未使用版本3.7.6.1。第三种情况是使用任何工具手动运行命令。无论如何,x64 DLL中更新的SQLite版本中更新的查询优化器将解释这种差异;SQLite使用完全相同的页面缓存大小(2000页);SQLite使用完全相同的页面缓存大小(2000页)。