Toe*_*pam 6 c# entity-framework sql-server-profiler
我正在帮助提高复杂应用程序的性能,其中包含遍布代码库的数百个实体框架查询.我们遇到的一个问题是,当我们运行SQL事件探查器并捕获实体框架查询时,找到实际导致通过分析器的sql语句的代码非常耗时.我想知道是否有某种方式我们可以使用在sql语句中出现的唯一标识符"标记"每个实体框架语句.为实体框架为每个语句生成的实际sql语句添加注释的行.然后我们可以在探查器跟踪中看到注释,并在代码中搜索标记.关于我们如何做到这一点的任何想法?我猜测必须有一些方法可以拦截EF生成的sql,并在它发送到数据库服务器之前添加我们的注释.
我个人会使用代码分析器而不是 SQL 分析器(我更喜欢 JetBrain 的 dotTrace)。实体框架有时会根据它必须执行的操作生成多个查询,因此将您看到的每个查询标记为特定操作并不容易,因为它不一定会找到进入每个查询的方式。
根据我的经验,EF 性能问题通常是由于在错误的位置对 linq 查询执行的操作执行了完整的表加载并合并了大量对象。代码分析器还允许您准确地关注代码中的位置来解决这些问题,而不是追查创建有问题的 SQL 语句的操作。
| 归档时间: |
|
| 查看次数: |
415 次 |
| 最近记录: |