最近,我遇到了SQL Azure / Web Apps / Entity Framework的一些非常奇怪的性能问题。
看起来,对数据库的调用(读和写查询)偶尔会挂起几秒钟到几分钟(!)。即使对包含4列包含5行数据的表的select查询也会发生这种情况。
该问题似乎是随机发生的,不可重现。将数据库升级到更高性能层似乎没有任何影响。web应用程序和sql azure数据库位于同一区域。
DB性能图通常在资源利用率的0.5%左右是平坦的,偶尔会达到5%左右-所以问题当然不在于资源限制。
考虑到这个问题的间歇性,我不知道如何开始调查它。我将非常感谢任何反馈。上个星期的问题
它可能与实体框架处理数据库连接的方式有关吗?在本地SQL express上进行测试从未产生过类似的结果。
发布于 2016-07-13 20:48:39
在与Entity Framework解决了性能问题之后,我们最终切换到了Dapper,并看到了性能的巨大提高。他们在GitHub页面上有一些基准测试,显示了速度的差异。
https://github.com/StackExchange/dapper-dot-net
另外,我不确定你使用的EF版本是什么,但如果是EF Core,它的性能目前会比以前的版本差。另一个性能比较可以在这里找到:https://www.exceptionnotfound.net/dapper-vs-entity-framework-vs-ado-net-performance-benchmarking/。
发布于 2016-07-20 15:31:18
好了,看起来我已经为我的性能问题找到了一个解决方案--它就像启用多个活动结果集一样简单(用于连接的https://msdn.microsoft.com/en-us/library/h32h3abf(v=vs.110).aspx。
从大约2年前开始,EF框架肯定发生了一些变化--因为这个问题是在我升级到6.1.3之后才出现的。我不确定最初的版本是什么--但它是2年前的最新版本。
我希望这对其他人有帮助。它给我带来了很大的悲痛,并花费了一个很大的潜在项目来失败。
https://stackoverflow.com/questions/37982347
复制相似问题