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

Wat*_* v2 5 c# sql-server entity-framework sql-server-2005 entity-framework-4

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

假设我做了类似的事情:

someEntityObjectInstance.SomeProperty = newValue;
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

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

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

你能告诉我如何使用SQL 2005 Profiler,如果有这样的事情吗?

更新

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

Cri*_*scu 8

有更简单的方法,如果你想要的是在他们点击数据库时看到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"并允许对显示的事件进行一些过滤 - 但这种优势也是它的弱点,因为有太多的事件类型可以启用/禁用.如果选择了所有内容,则输出结果非常冗长.

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

在此输入图像描述

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

在此输入图像描述

  • ExpressProfiler 现在似乎只是源代码,并已移至 https://github.com/OleksiiKovalov/expressprofiler 它编译没有问题并且似乎可以工作,尽管我仍然没有在其显示中找到更新查询语法。 (2认同)

Jas*_*ens 2

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

编辑:

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