实体框架EF代码首先使用ExecuteStoreCommand执行sproc非常慢

时间:2012-12-11 13:07:50

标签: sql entity-framework-4 ef-code-first azure-sql-database

我在Azure sql db中有一个存储过程,当我从SSMS运行时,它在大约300毫秒内完成。 sproc采用id和日期范围,收集一些数据并将其保存到聚合表中。 它不会返回任何结果。

当它从EF代码运行时,第一个ExecuteStoreCommand对象(具有相同的参数) 它需要大约60秒才能完成。

我尝试使用context.Database.ExecuteSqlCommand和context.Database.SqlQuery 同样的结果,非常慢!

有人可以解释一下,与直接执行sproc相比,EF执行速度是如此之慢?

那里有没有合适的工具可以告诉我EF正在做什么(探查器?)

1 个答案:

答案 0 :(得分:0)

如果没有存储过程的代码,很难告诉您可能没有考虑哪种“最佳实践”,但此页面“Code Project: Performance and the Entity Framework”有很多关于提高EF性能的良好信息。 / p>

这个“article”有很多关于使用Visual Studio 2010分析器工具分析EF数据访问活动的好信息。