wlfmdw
wlfmdw
采纳率0%
2019-12-01 19:30 阅读 312

EF效率为什么捉摸不定?

先说一下背景

1、网站类型:wcf服务

2、框架:.NET Framwork 4.0

3、EF版本:EntityFramework.6.2.0

4、数据库:SQL Server 2008 R2

表内数据500万+,一个普通的查询,带表连接(join),带分页(skip take),具体先不管这个查询怎么写的,因为神奇之处好像和查询本身并没有太大关系了,这个查询的作用是以管理员的ID为条件查询订单列表,表现为以下特点:

1、有的用户很快(毫秒级),有的用户很慢(30秒超时)

2、慢的用户的订单并不是都比快的用户的订单多(此处毫无规律,有的用户订单很少,反而很慢)

3、使用Sql server Profiler可以跟踪到慢语句,Duration确实是30秒+

4、把跟踪到的慢语句拷到查询分析器里执行,结果是毫秒级,也就是说只有在程序里慢

5、我发现语句执行的快慢和分页有关系,都是查询第一页的情况下,30条一页(take(30))就慢,29条一页就快(take(29)),关键问题是31条一页也快

有没有大牛可以给一些指导意见,造成此问题的原因大概可能是什么,或者朝哪个方向寻找思路和解决方案,谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2019-12-01 23:39

    用Sql server Profiler看下生成的sql有问题么,数据量大不大,把sql拷贝出来放在服务器单独运行也这样么,是不是网络传输的问题

    点赞 评论 复制链接分享

相关推荐