首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ormlite非常慢

Ormlite非常慢
EN

Stack Overflow用户
提问于 2019-04-17 04:23:45
回答 1查看 158关注 0票数 0

我有一个简单的表,只有6个非常简单的字段,表中只有2行。运行查询时

SELECT * FROM PersonsPreferences

在MS SQL Server Management Studio中,“客户端统计信息”报告的运行时间约为0-1毫秒。不出所料。

然而,当我使用Ormlite时,我得到的运行时间要长得多--大约30毫秒。我的C# Ormlite代码如下:

代码语言:javascript
复制
Stopwatch lSW = new Stopwatch();
lSW.Start();
PersonPreference lPMPExisting = db.Select<PersonPreference>().FirstOrDefault();
var e = lSW.ElapsedMilliseconds;

现在,在上面的代码中,"e“得到了大约30的值,这远远超过了它应该得到的值。'PersonPreference‘是一个非常简单的类,用于访问相应的DB表。我使用的是Ormlite 5.0,最新的版本是5.5,但我的数据库访问是如此基础,以至于5.0应该足够好了?有什么建议吗?

Best,Bjorn

EN

回答 1

Stack Overflow用户

发布于 2019-04-17 06:57:29

有几件事。首先是秒表:

  • 在检索已用时间之前使用Stop()
  • 检查Stopwatch.IsHighResolution以确保您的测试是准确的
  • 运行多个测试,消除预热,计算平均时间

<代码>F29

对于ORM本身,Management Studio通常连接到服务器实例并保留一个会话。因此,客户端统计信息不包含到服务器的连接、身份验证和握手。如果在初始化秒表之前打开与数据库的连接,则会隐藏您发布的代码。在您的示例中,您“选择”/检索多个PersonPreference,然后在集合上应用LINQ FirstOrDefault,这会对您的性能产生负面影响。当你说执行时间

远远超出了它应有的范围。

您期望的范围是多少,您是否将查询与EF、dapper、Nhibernate或其他任何查询进行了比较?

任何ORM,无论是重的还是微的,都会处理多个职责,并且性能会比使用dbms的直接sql查询差。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55716078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档