最近在研究EF延迟加载和贪婪加载的用法时,想要查看Linq生成的sql。一开始通过VS-->调试-->窗口-->IntelliTrace事件,来查看生成的sql,并不是十分准确。然后想到了好像可以用sql server2008自带的sql server profilter来查看sql。
1.首先,启动sql server profilter。启动方法:在SQL Server Management Studio中,点击菜单“工具”-->sql server profilter;
在弹出界面输入用户名和密码,点击连接。
2.选择跟踪属性。连接完后,弹出如下界面
界面上有两个Tab,“常规”tab下可以设置跟踪名称和模板,跟踪时间等,如果是即时查看,全部默认即可。主要是设置第二个tab“事件选择”。这里我们只需选择跟踪存储过程完成事件和TSQL完成事件即可。同时勾选“显示所有列”,并在事件中勾选“DatabaseName”列。
3.到这里我们还可以根据我们的需求选择“列赛选器”,对事件输出进行过滤。如我们可以设置“DatabaseName”为我们的跟踪的数据库名,如果要进行性能优化,比如查看运行时间长的sql,则可以设置“Duration”大于某个阈值。
4.查看跟踪的事件和sql。完成上面的设置后,点击运行,这时就开始跟踪我们设置好的事件了。