Csharp/C#教程:SQLite:.Net比本机慢得多?分享


SQLite:.Net比本机慢得多?

这是我的查询:

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个最近点。

在本机sqlite中运行它会在78ms内返回一个结果,但是在.Net sqlite环境中,它需要将近1400ms。

有什么建议?

我在我的ORM结构中使用参数化值进行此查询。 还尝试过将其作为原生文本查询。

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

 private static IDataReader CallSqlReader(string SqlStatement, Dictionary 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; } 

预计访问数据库的非本地方法比访问相同数据库的本机方式更慢,可能更慢。 但是等一下,看看有人出现之前有过这个问题的人,并且能够找到某种解决方案。 同时,如果您准确地显示如何从dotnet中执行此查询,它可能会有所帮助。

上述就是C#学习教程:SQLite:.Net比本机慢得多?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/949857.html

(0)
上一篇 2021年11月18日
下一篇 2021年11月18日

精彩推荐