首页
登录 | 注册

SQL 事件探查器 事件

2、事件

  一个事件表现SQL Server中执行的各种活动。这些活动可以简单地分类为事件类,游标事件,锁事件,存储过程事件和T-SQL事件是常见的事件类。

  对于性能分析,主要对SQL Server上执行的各种活动的资源压力水平的事件感兴趣。资源压力主要包含如下内容:

  1. SQL活动涉及哪一类的CPU使用?
  2. 使用了多少内存?
  3. 涉及多少I/0操作?
  4. SQL活动执行了多长时间?
  5. 特定的查询执行的频率有多高?
  6. 查询面对哪类错误和警告?

  下面给出跟踪查询结束的事件:

事件类 事件 说明
Stored Procedures RPC:Completed RPC完成事件
  SP:Completed 存储过程完成事件
  SP:StmtCompleted 在存储过程中一条SQL语句完成事件
T-SQL SQL:BatchCompleted T-SQL批完成事件
  SQL:StmtCompleted 一条T-SQL语句完成事件

  RPC事件表示存储过程使用远程过程调用(RPC)机制通过OLEDB命令执行。如果一个数据库应用程序使用T-SQL EXECUTE语句执行一个存储过程,那么存储过程将被转化为一个SQL批而不是一个RPC。RPC请求通常比EXECUTE请求快,因为它绕过了SQL Server中的许多语句解析和参数处理。

  T-SQL由一条或多条T-SQL语句组成。语句或T-SQL语句在存储过程中也是单独和离散的。用SP:StmtCompleted或SQL:StmtCompleted事件捕捉单独的语句可能是代价很高的操作,这取决于单独语句的数量。假设系统中的每个存储过程包含且只有一条T-SQL语句。在这种情况下,完成的语句集合相当小。现在假定过程中有多条语句,而且这些过程中有些使用其他语句调用其他过程。收集所有这些额外的数据现在变成系统上非常厉害的负载。在生产机上一定要慎用。

  现在回到那个事件选择面板,只有已经被选择的事件才会被显示。如果想显示所有可供选择的事件,则只需选中“显示所有事件”单选框,要添加一个跟踪事件,在Event列中查找一个事件类下的事件,并单击其左边的检查框;要删除不需要的事件,取消选中的事件选择框。

  光分类就有好多的说:

  

  下面给出其他一些与性能诊断有关的事件:

事件类 事件 说明
Security Audit(安全审计) Audit Login(登录审计) 记录用户连接到SQL Server或断开连接时数据库的连接
Audit Logout(注销审计)
Sessions(会话) ExistingConnection(现有连接) 表示所有在跟踪开始之间连接到SQL Server的用户
Cursors(游标) CursorImplicitConversion(游标隐含转换) 表明创建的游标类型与所请求的类型个不同
Errors and Warnings(错误和警告) Attention(注意) 表示由于客户端撤销查询或者数据库连接破坏引起请求中断
Exception(异常) 表明SQL Server发生了异常
Execution Warning(执行警告) 表明在查询或存储过程执行期间出现了警告
Hash Warning(哈希警告) 表明hash操作发生了错误
Missing Column Statistics(列统计丢失) 表明优化器要求的确定处理策略用的类统计丢失
Missing Join Predicate(连接断言丢失) 表明查询在两个表没有连接断言情况下执行
Sort Warning(排序警告) 表明像SELECT这样的查询中执行排序操作没有合适的内存
Locks(锁) Lock:Deadlock(死锁) 标志着死锁的出现
Lock:Deadlock Chain(死锁链) 显示产生死锁的查询链条
lock:Timeout(锁超时) 表示锁已经超过其超时参数,该参数由SETLOCK_TIMEOUT timeout_perious(ms)命令设置
Stored Procedures(存储过程)    SP:Recompile(重编译) 表明用于一个存储过程的执行计划必须重编译,原因是执行计划不存在,强制的重编译,或者现有的执行计划不能重用

 SP:Starting(开始)

 SP:StmtStarting(语句开始)

分别表示一个SP:StmtStarting存储过程和存储过程中的一条SQL语句的开始。他们对于识别开始单因为一个操作导致Attention事件未能结束的查询很有用 
 Transactions(事物) SQLTransaction(SQL事务)  提供数据库事务的信息,包括事务开始/结束的时间、事务持续事件等信息 

  3、事件列

   事件以不同的特性(被称为数据列)来表现。数据列表现一个事件的不通特性,如事件的类、用于该事件的SQL语句、事件的资源开销以及事件来源。

数据列 说明
EventClass(事件类) 事件类型,如SQL:StatementCompleted
TextData 事件所用的SQL语句,如SELECT * FROM Person
CPU 事件的CPU开销(以ms表示),如对一个SELECT语句,CPU=100表示该语句执行100ms
Reads 为一个事件所执行的逻辑读操作数量。例如对一个SELECT语句,Reads=800表示该语句需要800次逻辑读操作
Writes 为一个事件所执行的逻辑写操作数量
Duration 事件的执行时间(ms)
SPID 用于该事件的SQL Server进程标识符
StartTime 事件开始的时间

   以上是常用的数据列,另外还有一些不太常用的数据列:

  •   BinaryData(二进制数据)
  •   IntegerData(整数数据)
  •   EventSubClass(事件子类)
  •   DatabaseID(数据库标识符)
  •   ObjectID(对象标识符)
  •   IndexID(索引标识符)
  •   TransactionID(事务标识符)
  •   Error(错误)
  •   EndTime(结束时间)

  列数据可以重新安排以符合你自己所喜欢的风格,要控制列数据的安放,单击组织列按钮,将打开如下对话框。可以单击Up和Down按钮修改列的位置,将列移入Groups意味着它将成为一个合计列。

   

本文网址:http://www.bnee.net/article/96036.html

相关文章

  • SQL Profiler的Trace分析 一般情况下: CPU:事件所使用的CPU时间总计(以毫秒为单位) READ:服务器代表事件执行的逻辑磁盘读取数 WRITE:服务器代表事件执行的物理磁盘写入数 DURATION:事件花费的时间总计( ...
  • SQL Server 2000 “事件探查器”的简单使用
    1.在安装有SQL SERVER 2000的电脑上打开"事件探查器",操作如图:   2.在"事件探查器"中新建一个跟踪:文件/新建/跟踪   3.输入连接服务器的秘密,注意是U8的数据服务器,可以根 ...
  • SQL Server事件探查器(Profiler)可以帮助数据库管理员跟踪SQL Server数据库所执行的特定事件,监视数据库的行为;并将这些有价值的信息保存到文件或表,以便以后用来分析解决数据库出现的问题,对数据库引擎性能进行优化.本文 ...
  • 最近因为在近一期的测试结果中,发现在数据库竟然存在此死锁症状,于是上头下达命令,必须把死锁原因找出来,也就是执行的SQL语句定位出来.以前对于ORACLE的定位倒是做过,但SQL SERVER没有做过.在同事的建议下,开始的事件探查器的使用 ...
  • Sql Server 事件探查器是SQL SERVER的一项利器.然而,这个工具偶尔也会出些令人不爽的问题,典型的就是对本地数据库(local)启动事件探查器跟踪后无法暂停及停止(点击暂停或停止就长时间没响应),半天后反应过来,但是却依然在 ...
  • SQL SERVER->事件探查器->文件->新建->跟踪,输入用户名.密码 -> 出现跟踪属性窗体-> 常规选项页 ,(你可以设定事件或进行筛选,这样开起来好看些,或不用.)-> 运行 你就可以比 ...
  • SQL 事件探查器是图形工具,使系统管理员得以监视 Microsoft SQL Server 实例中的事件.可以捕获有关每个事件的数据并将其保存到文件或 SQL Server 表中供以后分析.例如,可以对生产环境进行监视,了解执行速度太慢而 ...