我是一家公司的SQL Server数据库管理员,该公司销售的ASP.NET MVC3应用程序使用LINQ和Entity Framework4进行所有数据库访问。当我在SQL Server的计划缓存中发现由LINQ生成的低效查询时,我希望能够在源代码中找到该LINQ语句,以便对其进行优化。查找生成给定SQL语句的LINQ的最佳方法是什么?
例如,有没有办法在配置文件中添加一个条目,或者以某种方式修饰代码,以便将类和方法名或LINQ语句本身作为注释包含在生成的SQL中?
发布于 2011-11-04 23:33:34
商业工具ORM Profiler、Entity Framework Profiler或Hugati Query Profiler都将为您提供生成SQL的方法的堆栈跟踪。这使得在代码中查找LINQ相当容易,尽管它不是直接显示的。
这些工具还有一个优点,那就是它们可以很容易地在应用程序执行的许多其他SQL语句中查找低效查询。
发布于 2011-11-04 23:25:59
尽管它不是免费工具,但它可能会提供您需要的信息:
这里还描述了一个不太昂贵的工具,我没有用过,但它看起来很有前途:
http://huagati.blogspot.com/2010/06/entity-framework-support-in-huagati.html
发布于 2011-11-04 23:39:11
我打赌实体框架分析器(http://efprof.com/)会帮到你。工作流程与您所要求的非常不同(顺便说一句,这将是非常酷的)。这是一个很好的工具,即使它不是你的最终解决方案,也值得一看。
祝好运!
https://stackoverflow.com/questions/8011401
复制相似问题