【发布时间】:2012-09-01 03:04:36
【问题描述】:
背景:
我有一个 SQLite3 数据库,我正在使用 CSharp SQLite 来查询数据。我的问题是任何带有 JOIN 或 ORDER BY 调用的查询都非常慢(使用 CSharp-SQLite 为 0.1 秒,而使用 orig.SQLite 为 0.003 秒)。
CSharp SQLite 的最新 benchmarks 表明它最多慢 2 倍,这很好,但我得到的时间慢了 30 倍。
现在,我已经为我的数据库中的所有必要字段编制了索引,并拥有了适当的主键和外键。另外,原始 SQLite 可以很好地运行这些查询。
问题:
我必须使用 SQLite 的托管代码端口,所以我在这里缺少什么或者我需要拨打CSharp SQLite 的电话吗?是否有替代的 SQLite 库端口?
【问题讨论】:
-
您需要一个完整的端口,还是只需要能够从 C# 轻松使用 SQLite? System.Data.Sqlite 是标准 SQLite 的 ADO.NET 包装器。
-
全端口。 System.Data.SQLite 作为 C++ 代码的包装器,仍然需要 C++ 运行时。我们不能使用任何使用这些 runtmes 的东西。
-
明白了。仅从查看基准代码来看,它似乎只涵盖了非常基本的查询。测试查询中没有任何 JOIN 或 ORDER BY 子句。也许 C#-SQLite 在那个部门真的很慢?
标签: c# performance sqlite