环境:
托管在Azure上
我们有一页使用存储过程从数据库中获取数据。
最近我们注意到,该页面有时加载约20秒。因此,我们开始调查问题。我试图直接从Management Studio执行此存储过程,它花费了150毫秒以上的时间:
所以接下来要做的是创建一个控制台应用程序,该应用程序连接到Azure SQL数据库并执行此存储过程:
我还尝试使用EF 6中的SqlQuery
:
同一件事。
重要的事情:这不是永久性的问题。有时会出现此问题,有时会很好-50/50。
我已经检查了Azure门户中的数据库负载-大约50%的DTU使用率(在此性能问题期间)。但是我认为这与数据库负载无关,因为它可以从Management Studio快速执行。
目前我不知道出了什么问题,所以我需要帮助。我想注意到很多员工一直在使用该页面(执行存储过程)。也许这与问题有关。
那么问题:为什么使用ado.net / EF执行此存储过程需要这么长时间?
答案 0 :(得分:0)
进行一些调试。
潜在的罪魁祸首主要包括:
您提供的信息无关紧要。请参阅... SP在EF6中未执行-EF6将它们添加到ADO.NET中,ADO.NET将其发送到数据库。正如您所说的那样,它们在数据库中的运行速度很慢,对于这个特定问题,任何C#级别的调试都没有像我本地Pizzeria的菜单一样有用。您必须停止调试并分析数据库中发生的情况。
您提供的SSMS屏幕截图完全没有用-如果发生这种情况,您需要在SSMS中运行SP,然后使用...查询计划和适当的nalaysis跟踪以查看会发生什么。