最近,我遇到了SQL Azure / Web Apps / Entity Framework的一些非常奇怪的性能问题。
似乎偶尔会调用数据库(读取和写入查询)会在几秒到几分钟(!)之间挂起。即使在包含4行包含5行数据的表的选择查询上也会发生这种情况。
问题似乎是随机发生的,不可重现。将DB升级到更高性能层似乎没有任何影响。 Web应用程序和sql azure数据库都位于同一区域。
数据库性能图通常持平约0.5%的资源利用率,偶尔会出现大约5%的上涨 - 所以问题肯定不在于资源限制。
考虑到它的间歇性,我不知道如何开始调查这个问题。我非常感谢任何反馈。上周问题
它是否与Entity Framework专门处理sql azure的数据库连接的方式有关?对本地SQL Express的测试从未引起过类似的事情。
答案 0 :(得分:2)
在与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/。
答案 1 :(得分:0)
好的,看起来我找到了解决我的性能问题的方法 - 就像启用多个活动结果集(https://msdn.microsoft.com/en-us/library/h32h3abf(v=vs.110).aspx)一样简单。
大约2年前,EF框架肯定会有一些变化 - 因为这个问题只有在我升级到6.1.3之后才出现。我不确定最初的版本是什么 - 但它是2年前的当前版本。
我希望这有助于其他人。这给我带来了很多的悲痛,并且耗费了大量潜在的项目。