【转】SQL Server 2008 事件探查器(SQL SERVER Profiler)

时间:2023-03-09 08:45:18
【转】SQL Server 2008 事件探查器(SQL SERVER Profiler)

跟踪数据库sql语句的执行情况。例:一个系统,用到了sql server 数据库,这个系统共有500张表,当用户在前台页面做某一个操作时,比如插入,登录等等,我们想知道此刻是在对哪一张表操作,打开事件探查器,新建跟踪,就能看到所做的操作,并且能定位操作的是哪一张表,如果要人为去找的话,花一天时间也不一定有结果的。

使用方法:方法一 打开 事件探查器,文件--新建跟踪,另外可以在【工具】处设置筛选条件,例如要跟踪的数据库,语句等。

方法二 开始,运行,输入profiler进入后,只要运行程序,相对应的sql语句在探查器里边就能显示了

【转】SQL Server 2008 事件探查器(SQL SERVER Profiler) 举例说明:

如何进入事件探查器:开始---程序---SQL Server 2008---性能工具---SQL SERVER PROFILEr,进入,点击新建事件跟踪,输入sa用户与密码。
如果你输入的用户与密码没有权限的话,会提示:“您必须是 sysadmin 固定服务器角色的成员或具有 ALTER TRACE 权限,才能对 SQL Server 运行跟踪。”

事件探查器重要列名解释:

CPU:事件所使用的 CPU 时间总计(以毫秒为单位)。
Duration : 持续时间,事件所花费的时间总计,(以毫秒为单位)。
Reads : 服务器代表事件执行的逻辑磁盘读取数,(以字节为单位) 。
Writes :服务器代表事件执行的物理磁盘写入数,(以字节为单位) 。
loginName:SQL 登陆用户;
SPID:会话编号;
starttime:开始执行时间;
endtime:执行结束时间;
TEXTDATA:执行的语句。

如何得到当前会话编号:

1、在SQL SERVER 2008,打开一个查询分析器,就可以在标题最后括号中有一个数值,那个就是当前会话编号,如:57、55等;
2、通过执行代码:ctrl+1,出来的结果集中,第一列spid,即为当前会话编号;
3、通过执行此代码也可以得到:select @@spid.