是否有任何工具可以查看针对数据库运行的查询?

时间:2009-07-29 17:39:19

标签: asp.net sql sql-server linq-to-sql reporting

是否有任何工具可以检查asp.net或sql server并报告针对数据库运行的所有查询?我问的原因是我正在使用Linq进行项目,并希望仔细检查它对每个页面的实际操作。

理想情况下,我想在浏览器中查看某个页面,并提供有关创建该页面的所有查询的报告。

我知道我可以使用调试/断点来查看它为单个查询运行的SQL,而且我知道LinqPad,但我担心Linq自己会再提出几个查询来获取我可能不会直接查询的相关数据意识到。有什么(工具/程序/报告/等)像我描述的那样吗?谢谢!

编辑:有没有 FREE 工具可以做到这一点?我使用的是Sql Server 2008 Express,但遗憾的是没有SQL Profiler。

7 个答案:

答案 0 :(得分:14)

当然,有一个名为SQL Profiler的SQL工具。它确实需要提升的数据库权限才能运行探查器。

有一个关于如何在TechRepublic上运行Profiler的体面教程。

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

答案 1 :(得分:3)

Profiler是他们所有人的最佳工具,但在经验不足的手中它可能会很昂贵。

您也可以尝试执行“exec sp_who”然后尝试“dbcc inputbuffer(111)” - 只需将进程ID放在111的位置。

答案 2 :(得分:2)

SQL Profiler就是这么做的。

答案 3 :(得分:1)

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

Profiler for Microsoft SQL Server 2005/2008 Express Edition

  

Microsoft SQL Server系列包括   免费的Express版,完全是   功能,但有一些   令人失望的限制   防止在开发中使用它   处理。其中一个是缺席   分析工具,标准SQL分析器   不包括在内。但是,现在你有了   能够使用快递版本   调整你的系统。 SQL Server Express   Edition Profiler提供了大部分功能   功能标准分析器呢,   例如选择要分析的事件,   设置过滤器等。到现在为止   没有模拟免费工具。

Download Here

答案 4 :(得分:1)

在ASP.NET中记录LINQ to SQL查询的快速而又脏的方法就是这样(假设是Northwind.Dbml):

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

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

答案 5 :(得分:0)

具体来说,对于LINQ to SQL查询,您还可以使用DataContext.Log属性将查询输出到TextWriter,这样您就可以执行诸如写入调试器输出窗口或(如在我的使用)到log4net。

这些链接可能有所帮助:

不会涵盖L2S未生成的内容,所以这可能不是最终的解决方案......但我发现它很有帮助。

答案 6 :(得分:0)

这个版本仅在前45天免费,但它为您提供运行时分析/日志记录,其中包含一系列过滤器选项,SQL Server查询执行计划日志记录等。专门用于分析L2S应用程序:

http://www.huagati.com/L2SProfiler

相关问题