如何在SQL事件探查器中查看SQL查询?

当我发布更新查询或其他更改数据库中的数据的数据操作语言(DML)查询时,使用Entity Framework 4,如何查看发送到SQL Server的查询?

假设我做了类似的事情:

someEntityObjectInstance.SomeProperty = newValue; context.SaveChanges(); 

在这种情况下,没有ObjectQuery来执行ToTraceString(),所以我无法真正看到幕后发生了什么。 我相信有一些Microsoft SQL Server工具,比如探查器或者可以帮助我查看查询的东西。

另外,我认为VS 2010 Ultimate中的一些Intellitrace会做同样的事情吗?

你有没有可以教我如何使用SQL 2005 Profiler,如果有这样的事情?

更新

我正在查看SQL Server 2005 Profiler中的跟踪,但是当我发出context.DeleteObject()调用或更新对象并调用context.SaveChanges() ,我在Profiler中看不到UPDATE或DELETE查询。 我只看到奇怪的SELECT查询。

你回答了,sql server工具叫做profiler

编辑:

http://msdn.microsoft.com/en-us/library/ms187929.aspx

有更简单的方法,如果你想要的只是在他们点击数据库时看到sql查询。

这里有两个非常轻量级的Sql剖析器,可以完成各种SqlServer风格的工作,包括LocalDb – “ 在我的机器上工作(TM)

ExpressProfiler

到目前为止,最容易使用的(也是最简单的 – 显示我的SQL语句 – kthxbye)是CodePlex上的ExpressProfiler 。

下载小ZIP, 想知道你是否真的得到了整个文件 (你做过),在里面运行EXE,BAM!

在此处输入图像描述

整个程序是单个126 KB EXE! 现在那很轻巧!

AnjLab Sql Profiler

另一个是来自DataWizard的那个 ,曾经是免费的(显然价格现在从5美元开始)。

当它是开源的时候,有人设法在GitHub (包括xcopy可安装的二进制文件) 上保存快照 。

可执行文件将自身显示为“AnjLab Sql Profiler”并允许对显示的事件进行一些过滤 – 但这种优势也是它的弱点,因为有太多的事件类型可以启用/禁用。 如果选择了所有内容,则输出结果非常冗长。

仅通过选择特定事件就可以获得更好的输出。

在此处输入图像描述

以下是我为了获得上述输出而选择的事件:

在此处输入图像描述