gpt4 book ai didi

c# - SQLite:.Net 比原生慢很多?

转载 作者:行者123 更新时间:2023-11-30 18:40:06 24 4
gpt4 key购买 nike

这是我的查询:

SELECT * FROM [GeoName]
WHERE ((-26.3665122100029-Lat)*(-26.3665122100029-Lat))+((27.5978928658078-Long)*(27.5978928658078-Long)) < 0.005
ORDER BY ((-26.3665122100029-Lat)*(-26.3665122100029-Lat))+((27.5978928658078-Long)*(27.5978928658078-Long))
LIMIT 20

这将返回最近的 20 个点。

在 native sqlite 中运行它会在 78 毫秒内返回结果,但在 .Net sqlite 环境中它需要将近 1400 毫秒。

有什么建议吗?

我在我的 ORM 结构中有这个查询并使用参数化值。还尝试将其作为 native 文本查询。

运行查询的代码(在我的 ORM 层内):

private static IDataReader CallSqlReader(string SqlStatement, Dictionary<string, object> parameters)
{
ConnectionCheck();

try
{
var cmd = conn.CreateCommand();
cmd.CommandText = SqlStatement;
cmd.CommandType = CommandType.Text;
foreach (var item in parameters)
{
cmd.Parameters.AddWithValue(item.Key, item.Value);
}
return cmd.ExecuteReader();
}
catch { }
return null;
}

最佳答案

预计访问数据库的非 native 方法会比访问同一数据库的 native 方法慢,也许慢得多。但是等着看是否有人出现过这个问题并且能够想出某种解决方案。同时,如果您准确展示如何从 dotnet 中执行此查询,可能会有所帮助。

关于c# - SQLite:.Net 比原生慢很多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com