SQL 事件探查器数据列:
数据列描述为跟踪内捕获的每个事件类所收集的数据。事件类确定收集的数据类型,因此并不是所有数据列都适用于所有事件类。例如,为 Lock:Acquired 事件类捕获 Binary Data 数据列时,该数据列包含锁定的页 ID 或行的值,但没有 Integer Data 事件类的值。对于所有事件类,默认数据列均为自动填充。
SQL 事件探查器使您得以在创建模板时选择数据列。这些数据列表现在运行跟踪时希望返回的信息。在 SQL 事件探查器中显示的数据可以按事件发生的顺序显示,也可以按一个数据列或数据列组合分组显示。
下表描述默认情况下选定的 SQL 事件探查器数据列。
数据列 |
列号 |
描述 |
Application Name1 |
10 |
创建与 SQL Server 实例的连接的客户端应用程序名。 该列由应用程序传递的值填充,而不是由所显示的程序名填充。 |
Binary Data |
2 |
与在跟踪中捕获的事件类相关的二进制值。 |
ClientProcessID1 |
9 |
由主机计算机分配给进程的 ID,在该进程中客户应用程序正在运行。如果客户端提供客户端进程 ID,则填充此数据列。 |
Column Permissions |
44 |
表明是否已设置了列权限。分析语句文本,以确定将哪些权限应用到了哪些列。 |
CPU |
18 |
事件所使用的 CPU 时间总计(以毫秒为单位)。 |
Database ID1 |
3 |
USE database 语句所指定的数据库 ID,如果没有对给定实例发出过 USE database 语句,则是默认数据库。如果在跟踪内捕获 Server Name 数据列且服务器可用,则 SQL 事件探查器将显示数据库名。 通过使用 DB_ID 函数确定数据库的值。 |
DatabaseName |
35 |
正在运行用户语句的数据库的名称。 |
DBUserName1 |
40 |
客户端的 SQL Server 用户名。 |
Duration |
13 |
事件所花费的时间总计(以毫秒为单位)。 |
End Time |
15 |
事件结束时的时间。启动事件的事件类(如SQL:BatchStarting 或 SP:Starting)的该列不填充。 |
Error |
31 |
给定事件的错误号。通常是存储在 sysmessages 中的错误号。 |
EventClass1 |
27 |
捕获的事件类类型。 |
EventSubClass1 |
21 |
事件子类的类型,提供有关每个事件类的进一步信息。例如,Execution Warning 事件类的事件子类值代表执行警告的类型: 1 = 查询等待。查询必须等待资源(如内存)才能执行。 |
FileName |
36 |
所修改的文件的逻辑名称。 |
Handle |
33 |
ODBC、OLE DB 或 DB-Library 所用的整数,用以协调服务器的执行。 |
Host Name1 |
8 |
正运行客户端的计算机名。如果客户端提供主机名,则填充此数据列。若要确定主机名,请使用 HOST_NAME 函数。 |
Index ID |
24 |
受事件影响的对象上的索引 ID。若要确定对象的索引 ID,请使用 sysindexes 系统表的 indid 列。 |
Integer Data |
25 |
与在跟踪中捕获的事件类相关的整型值。 |
LoginName |
11 |
用户的登录名(SQL Server 安全登录或 Microsoft Windows® 登录凭据,格式为 DOMAIN/Username)。 |
LoginSid1 |
41 |
登录用户的安全标识号 (SID)。可以在 master 数据库的sysxlogins 表中找到该信息。对于服务器中的每个登录,SID 是唯一的。 |
Mode |
32 |
不同事件所用的整数,用于描述事件已接收或要请求的状态。 |
NestLevel |
29 |
表示 @@NESTLEVEL 所返回的数据的整数。 |
NT Domain Name1 |
7 |
用户所属的 Microsoft Windows NT® 4.0 或 Windows 2000 域。 |
NT User Name1 |
6 |
Windows NT 4.0 或 Windows 2000 用户名。 |
Object ID |
22 |
系统分配的对象 ID。 |
ObjectName |
34 |
引用的对象名。 |
ObjectType |
28 |
表示事件中涉及的对象类型的值。该值对应于 sysobjects中的 type 列。 |
Owner Name |
37 |
对象所有者的数据库用户名称。 |
Permissions |
19 |
表示所检查的权限类型的整型值。取值为: 1 = SELECT ALL |
Reads |
16 |
服务器代表事件执行的逻辑磁盘读取数。 |
RoleName |
38 |
要启用的应用程序角色名。 |
Server Name1 |
26 |
跟踪的 SQL Server 实例名。 |
Severity |
20 |
异常错误的严重级别。 |
SPID1 |
12 |
SQL Server 指派的与客户端相关的服务器进程 ID。 |
Start Time1 |
14 |
启动事件的时间(可用时)。 |
State |
30 |
等同于错误状态代码。 |
Success |
23 |
表示事件是否成功。取值包括: 1 = 成功。 例如,1 表示权限检查成功,0 表示该检查失败。 |
TargetLoginName |
42 |
对于以登录为目标的操作(例如,添加新登录),是目标登录的名称。 |
TargetLoginSid |
43 |
对于以目标为登录的操作(例如,添加新登录),是目标登录的 SID。 |
TargetUserName |
39 |
对于以数据库用户为目标的操作(例如授予用户权限),是该用户的名称。 |
TextData |
1 |
与跟踪内捕获的事件类相关的文本值。但是,如果正在跟踪参数化查询,则不以 TextData 列中的数据值显示变量。 |
Transaction ID |
4 |
系统分配的事务 ID。 |
Writes |
17 |
服务器代表事件执行的物理磁盘写入数。 |
所有的事件类:
事件类是描述由服务器生成的事件的列。事件类确定收集的数据类型,因此并不是所有数据列都适用于所有事件类。
每个事件类的子类都可以通过一些数据列来进行分析:
微软提供的所有事件类和数据列的对应分析如下: