che*_*r89 5 sql-server wpf entity-framework windows-services
我有一个巨大的应用程序,它使用 Entity Framework 4。它是服务器上的 WCF(托管在 Windows 服务中)和客户端上的 WPF。
它的某些部分很慢,我想知道是不是因为数据库访问很慢。
我想不断测量该代码的性能,例如记录每个查询的执行时间(最好包括 EF 自己的东西,如 materialization),以便稍后分析。我怎么做?
EFProf 之类的工具(因为即使他们可以测量数据库服务器执行特定查询所花费的时间,我该如何运行它们一周?)和 Glimpse(它不支持 Windows 服务和 WPF)在我的情况下不起作用.
我考虑过创建自己的 SqlConnection 子类,但我的版本只接受 ObjectContext ctor 中的 EntityConnection,并且 EntityConnection 被标记为密封。而这个选项只允许测量原始 sql 查询的执行时间,而不是 EF 的代码。
我现在看到的唯一选项是:1)更新到 EF 6 并编写 SqlConnection 子类(这不会衡量 EF 自己的代码)2)更新到更高版本并使用类似EF hooks 库的 东西
当然,它不在一个书(只是看了掌握实体框架) - 因为我们大多数人只需要使用图书馆,不知道它有多快(讽刺)。
小智 1
无论是在 linq 表达式缓存还是 SQL Server 选择缓存的内容中,都在进行各种优化,唯一的方法是衡量您的性能速度和内存消耗
对于您的情况,我认为微软通过“使用 ETW 测量实体框架性能”提供了一种简单的方法
另外,您可以通过 SQL 探查器获取其中一些信息,这只是更多的工作。
| 归档时间: |
|
| 查看次数: |
861 次 |
| 最近记录: |