有什么工具可以查看针对数据库运行的查询吗?

问题描述:

是否有任何工具可以检查asp.net或sql server并报告所有针对数据库运行的查询?我问的原因是我正在使用Linq进行一个项目,并且想仔细检查每个页面实际上做了些什么。有什么工具可以查看针对数据库运行的查询吗?

理想情况下,我希望在浏览器中查看页面并获得运行的所有查询的报告以创建该页面。

我知道我可以使用调试/断点查看它针对单个查询运行的SQL,并且我知道LinqPad,但是我担心Linq会自行创建更多的查询来获取我可能不是的相关数据直接意识到。有什么(工具/程序/报告/等)像我所描述的?谢谢!

编辑:有没有免费工具可以做到这一点?我正在使用Sql Server 2008 Express,不幸的是没有SQL Profiler。

绝对有一个叫做SQL Profiler的SQL工具。它确实需要提升数据库权限才能运行分析器。

有一个体面的教程,如何运行Profiler TechRepublic

另一个选项是NHibernate Profiler。我知道它不像SQL Profiler那样“免费”,从来没有使用它,但它的屏幕截图看起来很酷。

SQL Profiler这样做。

分析器是他们所有这一切的最佳工具,但它可能是昂贵的经验不足的手中。

您也可以尝试做“EXEC sp_who的”,然后是“DBCC INPUTBUFFER(111)” - 只是把进程ID在111

的地方由于您使用的SQL Server Express,怎么样这个工具?

Profiler for Microsoft SQL Server 2005/2008 Express Edition

的Microsoft SQL Server系列包括 免费的Express版,这是完全 功能,但有一些令人失望的 其限制从 在发展过程中 使用它阻止。其中之一是缺少 分析工具,不包括标准SQL分析器 。但是,现在您有 可以使用快速版 调整您的系统。 SQL Server Express 版Profiler提供了 功能标准分析器的大部分功能, 如选择事件到配置文件, 设置过滤器等。现在有 没有模拟免费工具。

Download Here

对于LINQ到SQL具体查询,您还可以使用DataContext.Log属性输出查询到TextWriter,所以你可以做这样的事情写入调试器输出窗口或(在我使用)到log4net。

这些链接可能帮助:

将不包括不L2S生成的东西,所以这可能不是最终为大家解决方案..但我发现它很有帮助。

登录LINQ到SQL ASP.NET查询一个快速和肮脏的方法是这样的(假设Northwind.Dbml):

NorthwindDataContext context = new NorthwindDataContext(); 
context.Log = Response.Output; 

这将写入所有查询的响应流。讨厌的,但方便的即时满足,而不需要调试器或分析器等。

这是一个免费的前45天,但它给你运行时分析/记录一堆过滤器选项,SQL Server查询执行计划日志记录等。专门为剖析L2S应用程序而构建:

http://www.huagati.com/L2SProfiler