简单测试页正在使用~4s通过实体数据源加载小数据集。页面克隆使用SQL数据源加载相同的数据需要70 SQL。
运行在访问Azure DB、EF和SQL的本地服务器上的性能也是一样的。运行SQL分析器,与SQL几乎相同和快速(~20 Ran )。
Azure托管了asp.net web应用程序targeting.Net 4.7.2和EF6。项目中使用相同数据模型的其他页面存在类似的性能问题。我在类似的项目中使用过EF6,没有问题。
<div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="edsLists"></asp:GridView>
</div>
<asp:EntityDataSource ID="edsLists" runat="server"
ConnectionString="name=DatabaseEntities"
DefaultContainerName="DatabaseEntities" EnableFlattening="False"
EntitySetName="Lists" AutoGenerateWhereClause="True" Where=""
Include="">
</asp:EntityDataSource>
<div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="edsLists"></asp:GridView>
</div>
<asp:SqlDataSource ID="edsLists" runat="server" ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" SelectCommand="SELECT * FROM [Lists]">
</asp:SqlDataSource>更新:这里的是从跟踪输出的:


下面是使用SQL数据源的相同页面的跟踪:

Performance EF6(test1)/SQL(test2):

发布于 2019-12-20 08:02:01
如果平台行为不正常,并且由于而产生额外的延迟。如果问题正在发生,请通过诊断和解决叶片、诊断学即服务以及选择CLR profiler来识别慢度来收集分析器跟踪。
Recommendation
此外,我建议您运行实体框架的NHibernate配置文件,以查看任何N+1问题,如果在运行之前修复了它。
如果您有任何问题或关切,请告诉我。
为了给您一个要点,下面是我们对其进行故障排除的过程。虽然它与点网内核相关,但在蔚蓝的web应用程序中,您也可以发现它与asp.net类似:
-如果您选择“只收集数据”
单击“收集事件探查器跟踪”按钮开始收集,就像正常的.NET应用程序一样。
最后5个分析会话列在当前的“收集.NET事件探查器跟踪”选项卡中。
-如果你选择“收集和分析数据”
您不仅可以下载压缩文件,还可以打开分析报告。.NET核心支持在中提供。

“.NET核心慢速需求”选项卡在Profiler跟踪报告。它显示了这个跟踪中最慢的ASP.NET核心请求。
每个慢请求列表的详细信息包括调用堆栈和完整请求跟踪:

希望能帮上忙。
https://stackoverflow.com/questions/59418269
复制相似问题