使用SQL Server Profiler监视系统的一些基本概念和各种事件的监视

来源:互联网 发布:平安时代女子服饰知乎 编辑:程序博客网 时间:2024/05/21 11:34

这两天需要搞一份我们某个系统的夜间数据库处理的所有数据,从晚上8点左右到早上9点左右都在做数据处理。所以PM希望能够看看晚上的数据处理高峰期和一些事物以及数据库的使用情况,所以需要用profiler来做个像样的分析。如果你不知道一些概念和指标,可以看看这篇文章。

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 = 查询等待。查询必须等待资源(如内存)才能执行。
2 =
查询超时。查询在等待执行所需的资源时超时。所有事件类的该数据列均不填充。

FileName

36

所修改的文件的逻辑名称。

Handle

33

ODBCOLE 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
2 = UPDATE ALL
4 = REFERENCES ALL
8 = INSERT
16 = DELETE
32 = EXECUTE
(仅限于过程)
4096 = SELECT ANY
(至少一列)
8192 = UPDATE ANY
16384 = REFERENCES ANY

Reads

16

服务器代表事件执行的逻辑磁盘读取数。

RoleName

38

要启用的应用程序角色名。

Server Name1

26

跟踪的 SQL Server 实例名。

Severity

20

异常错误的严重级别。

SPID1

12

SQL Server 指派的与客户端相关的服务器进程 ID

Start Time1

14

启动事件的时间(可用时)。

State

30

等同于错误状态代码。

Success

23

表示事件是否成功。取值包括:

1 = 成功。
0 =
失败

例如,1 表示权限检查成功,0 表示该检查失败。

TargetLoginName

42

对于以登录为目标的操作(例如,添加新登录),是目标登录的名称。

TargetLoginSid

43

对于以目标为登录的操作(例如,添加新登录),是目标登录的 SID

TargetUserName

39

对于以数据库用户为目标的操作(例如授予用户权限),是该用户的名称。

TextData

1

与跟踪内捕获的事件类相关的文本值。但是,如果正在跟踪参数化查询,则不以 TextData 列中的数据值显示变量。

Transaction ID

4

系统分配的事务 ID

Writes

17

服务器代表事件执行的物理磁盘写入数。

 

所有的事件类:

事件类是描述由服务器生成的事件的列。事件类确定收集的数据类型,因此并不是所有数据列都适用于所有事件类

 

每个事件类的子类都可以通过一些数据列来进行分析:

微软提供的所有事件类和数据列的对应分析如下:

最后是用户自己定义的事件类:

 

以我们常用的存储过程事件类来说明如何结合列进行存储过程事件类分析:

首先给出事件类和数据列的对应关系:

事件类

数据列

描述

RPC Output Parameter

Event Class

记录的事件类型 = 100

 

Object Name

来自 RPC 事件(如句柄)的输出参数名。

 

Text Data

在由远程过程调用 (RPC) 返回的对象名中命名的参数值。

RPC:Completed

Event Class

记录的事件类型 = 10

 

End Time

RPC 的结束时间。

 

Duration

RPC 的持续时间。

 

CPU

RPC 所使用的 CPU 数量。

 

Reads

RPC 发出的页读取数。

 

Writes

RPC 发出的页写入数。

 

Text Data

RPC 文本。

RPC:Starting

Event Class

记录的事件类型 = 11

 

Text Data

RPC 文本。

SP:CacheHit

Event Data

记录的事件类型 = 38

 

Object ID

在高速缓存中找到的存储过程的对象 ID

 

Object Name

在高速缓存中找到的存储过程名。

 

Text Data

在高速缓存中找到的 SQL 语句的文本。

SP:CacheInsert

Event Class

记录的事件类型 = 35

 

Object ID

存储过程的对象 ID

 

Object Name

在高速缓存中找到的存储过程名。

 

Text Data

正在高速缓存的 SQL 语句的文本。

SP:CacheMiss

Event Class

记录的事件类型 = 34

 

Event Sub Class

存储过程的嵌套级。

 

Object Name

在高速缓存中找到的存储过程名。

SP:CacheRemove

Event Class

记录的事件类型 = 36

 

Object ID

存储过程的对象 ID

 

Object Name

在高速缓存中找到的存储过程名。

 

Text Data

正在从高速缓存中删除的 SQL 语句的文本。

SP:Completed

Event Class

记录的事件类型 = 43

 

Nest Level

存储过程的嵌套级。

 

End Time

事件的结束时间。

 

Duration

存储过程运行的时间长度。

 

Object ID

存储过程的对象 ID

 

Object Name

在高速缓存中找到的存储过程名。

 

Object Type

调用的存储过程类型。

 

Text Data

存储过程调用的文本。

SP:ExecContextHit

Event Class

记录的事件类型 = 39

 

Object ID

存储过程的对象 ID

 

Object Name

在高速缓存中找到的存储过程名。

 

Text Data

在高速缓存中找到的存储过程的文本。

SP:Recompile

Event Class

记录的事件类型 = 37

 

Nest Level

存储过程的嵌套级。

 

Object ID

存储过程的对象 ID

 

Object Name

在高速缓存中找到的存储过程名。

 

Text Data

触发重新编译的存储过程的文本。

SP:Starting

Event Class

记录的事件类型 = 42

 

Nest Level

存储过程的嵌套级。

 

Object ID

存储过程的对象 ID

 

Object Name

在高速缓存中找到的存储过程名。

 

Object Type

正在启动的存储过程类型。

 

Text Data

存储过程调用的文本。

SP:StmtCompleted

Event Class

记录的事件类型 = 45

 

Event Sub Class

存储过程的嵌套级。

 

Integer Data

语句返回的实际行数。

 

Object ID

系统指派的存储过程 ID

 

Text Data

存储过程内的语句文本。

SP:StmtStarting

Event Class

记录的事件类型 = 44

 

Event Sub Class

存储过程的嵌套级。

 

Object ID

系统指派的存储过程 ID

 

Text Data

存储过程内的语句文本。

然后是每个子事件类的说明:

事件类

描述

RPC Output Parameter

显示有关先前执行的远程过程调用 (RPC) 的输出参数的信息。

RPC:Completed

在已完成 RPC 后发生。

RPC:Starting

RPC 已启动后发生。

SP:CacheHit

在高速缓存内找到过程。

SP:CacheInsert

有项目插入过程高速缓存内。

SP:CacheMiss

在过程高速缓存内没找到存储过程。

SP:CacheRemove

项目已从过程高速缓存中删除。

SP:Completed

存储过程已完成。

SP:ExecContextHit

在高速缓存内找到存储过程的执行版本。

SP:Recompile

存储过程已重新编译。

SP:Starting

存储过程已启动。

SP:StmtCompleted

存储过程内的语句已完成。

SP:StmtStarting

存储过程内的语句已启动。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 买车型号错了怎么办 沃出行不退押金怎么办 钢铁雄心4人力0怎么办 钢铁雄心4没工厂怎么办 钢铁雄心4锁区怎么办 qq超市金币满了怎么办 旋转轮胎2车翻了怎么办 轮胎里面卡进小石子应该怎么办 手游吃鸡模拟器已经到达上限怎么办 逆战场手游模拟器黑屏怎么办 欧洲卡车2翻车了怎么办 卧式注塑机锁模久了打不开怎么办 欧洲卡车2困了怎么办 欧卡2没油了怎么办 欧卡2车卡住了怎么办 欧卡2车子卡住了怎么办 做题手感变差怎么办 吃鸡游戏掉帧怎么办 买了俄区游戏怎么办 战地1子弹用完了怎么办 1kb彩信点开了怎么办 玩地球末日卡顿怎么办 电脑显示不亮了怎么办 电脑玩游戏显卡停止运行怎么办 ie浏览器打开就停止工作怎么办 蝙蝠侠阿甘骑士卡顿怎么办 捷豹钥匙没电了怎么办 车钥匙没电 汽车报警怎么办 东西卡在门锁里怎么办 锁芯里面有东西怎么办 有东西卡在锁里怎么办 锁里面卡了牙签怎么办 塑料卡在锁里怎么办 门锁被牙签堵了怎么办 锁子里面卡东西怎么办 东西卡在锁里怎么办 开车门碰到旁边车门怎么办 美团退款后 物品怎么办 倒车影像是反的怎么办 荒野行动cp版玩着玩着关机怎么办 王者荣耀点击开始游戏就闪退怎么办