sqlite - SQLite x86中的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我使用Platform target:x64构建exe并加载x64版本的SQLite
在这种情况下,ExecuteQuery执行selectCommand并在1秒内返回结果(37行)。

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

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

有什么想法如何解决此问题?

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

最佳答案

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

关于sqlite - SQLite x86中的ExecuteQuery命令运行非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636672/

相关文章:

sql - 如何在不使用 ROW_NUMBER() 的情况下模仿 ROW_NUMBER() 功能?

iphone - 关于核心数据中实体索引的问题

windows - 是否可以在 .text 段中使用 NASM 中的 DB 指令创建可写变量?

ios - 64 位 BOOL 值

.net - 使用 .NET 应用程序部署 SQLite 时的 list

database - sqlite 上的 information_schema.columns

assembly - Printf 显示垃圾值

assembly - 对非常量 TSS 段使用 jmp 指令

visual-studio-2010 - 从 Visual Studio 2010 启动 64 位命令提示符

windows - 在 Windows 64 位上将 libusb 与 Delphi 一起使用?