目标可以是文件或 SQL Server 管理对象 (SMO),它可以使用管理 SQL Server 的应用程序中的跟踪信息。
这样,您就可以针对企业的特定需求编写自定义应用程序。
以下关系图显示了在跟踪期间 SQL 跟踪如何收集事件。
SQL Server Profiler 数据列(这些数据列与 SQL 跟踪使用的数据列相同),并指示默认情况下选择的列。
|
数据列 |
列号 | 说明 |
|---|---|---|
|
1 |
10 |
此列由该应用程序传递的值填充,而不是由程序名填充的。 |
|
BigintData1 |
52 |
数据类型),取决于跟踪中指定的事件类。 |
|
BigintData2 |
53 |
数据类型),取决于跟踪中指定的事件类。 |
|
Binary Data |
2 |
依赖于跟踪中捕获的事件类的二进制值。 |
|
1 |
9 |
如果客户端提供了客户端进程 ID,则填充此数据列。 |
|
ColumnPermissions |
44 |
可以分析语句文本来确定各列所应用权限的情况。 |
|
CPU |
18 |
事件使用的 CPU 时间(毫秒)。 |
|
1 |
3 |
若要确定数据库的值,请使用 DB_ID 函数。 |
|
DatabaseName |
35 |
正在运行用户语句的数据库的名称。 |
|
1 |
40 |
客户端的 SQL Server 用户名。 |
|
Duration |
13 |
事件的持续时间(微秒)。 SQL Server Profiler 图形用户界面默认以毫秒为单位显示“持续时间”列,但是当跟踪保存到文件或数据库表中时,将以微秒为单位写入“持续时间”列值。 |
|
EndTime |
15 |
或SP:Starting)将不填充此列。 |
|
Error |
31 |
中存储的错误号。 |
|
1 |
27 |
捕获的事件类的类型。 |
|
EventSequence |
51 |
此事件的序列号。 |
|
1 |
21 |
事件类的事件子类值代表执行警告的类型: 查询执行之前必须等待资源;例如,内存。 对于所有事件类,均不填充此数据列。 |
|
GUID |
54 |
依赖于跟踪中指定的事件类的 GUID 值。 |
|
FileName |
36 |
所修改的文件的逻辑名称。 |
|
Handle |
33 |
一个整数,ODBC、OLE DB 或 DB-Library 使用它来协调服务器的执行情况。 |
|
1 |
8 |
若要确定主机名,请使用 HOST_NAME 函数。 |
|
IndexID |
24 |
列。 |
|
IntegerData |
25 |
跟踪中捕获的与事件类对应的整数值。 |
|
IntegerData2 |
55 |
跟踪中捕获的与事件类对应的整数值。 |
|
IsSystem |
60 |
指示该事件发生在系统进程还是用户进程上: = 系统 = 用户 |
|
LineNumber |
5 |
包含存储过程或批处理中语句的行号。 |
|
LinkedServerName |
45 |
链接服务器的名称。 |
|
LoginName |
11 |
用户的登录名(SQL Server 安全登录名或 Windows 登录凭据,格式为“域/用户名”)。 |
|
1 |
41 |
服务器中的每个登录名都具有唯一的 ID。 |
|
MethodName |
47 |
OLEDB 方法的名称。 |
|
Mode |
32 |
一个整数,各种事件都使用它来描述事件要请求或已接收的状态。 |
|
NestLevel |
29 |
一个整数,表示 @@NESTLEVEL 返回的数据。 |
|
1 |
7 |
用户所属的 Microsoft Windows 域。 |
|
1 |
6 |
Windows 用户名。 |
|
ObjectID |
22 |
系统分配的对象 ID。 |
|
ObjectID2 |
56 |
相关对象或实体(如果存在)的 ID。 |
|
ObjectName |
34 |
被引用对象的名称。 |
|
2 |
28 |
列。 |
|
Offset |
61 |
语句在存储过程或批处理中的起始偏移量。 |
|
OwnerID |
58 |
拥有锁的对象的类型。 |
|
OwnerName |
37 |
对象所有者的数据库用户名。 |
|
ParentName |
59 |
该对象所在的架构的名称。 |
|
Permissions |
19 |
值为: = SELECT ALL = UPDATE ALL = REFERENCES ALL = INSERT = DELETE = EXECUTE(仅过程) = SELECT ANY(至少一列) = UPDATE ANY = REFERENCES ANY |
|
ProviderName |
46 |
OLEDB 访问接口的名称。 |
|
Reads |
16 |
这些读取操作数包含在语句执行期间读取表和缓冲区的次数。 |
|
RequestID |
49 |
包含该语句的请求的 ID。 |
|
RoleName |
38 |
正在启用的应用程序角色名。 |
|
RowCounts |
48 |
批处理中的行数。 |
|
1 |
26 |
正在跟踪的 SQL Server 实例的名称。 |
|
SessionLoginName |
64 |
此数据列将同时显示 SQL Server 登录名和 Windows 登录名。 |
|
Severity |
20 |
异常错误事件的严重级别。 |
|
SourceDatabaseID |
62 |
存在该对象的源的数据库 ID。 |
|
SPID |
12 |
SQL Server 为客户端的相关进程分配的服务器进程 ID (SPID)。 |
|
SqlHandle |
63 |
以检索关联的 SQL 文本。 |
|
1 |
14 |
事件(如果有)的开始时间。 |
|
状态 |
30 |
错误状态代码。 |
|
Success |
23 |
值包括: = 成功。 = 失败 表示权限检查失败。 |
|
TargetLoginName |
42 |
如果是针对登录的操作(例如,添加新的登录),这是所针对登录的名称。 |
|
TargetLoginSid |
43 |
如果是针对登录的操作(例如,添加新的登录),这是所针对登录的 SID。 |
|
TargetUserName |
39 |
如果是针对某个数据库用户的操作(例如,授予用户权限),这是该用户的名称。 |
|
TextData |
1 |
列中的数据值显示变量。 |
|
Transaction ID |
4 |
系统为事务分配的 ID。 |
| 类型 | 57 |
跟踪中捕获的与事件类对应的整数值。 |
|
Writes |
17 |
由服务器代表事件写入物理磁盘的次数。 |
|
XactSequence |
50 |
用于说明当前事务的标记。 |
默认情况下,对于所有事件,均填充这些数据列。
ObjectType 跟踪事件列。
|
任务说明 |
主题 |
|---|---|
|
介绍如何使用 TRANSACT-SQL 存储过程创建和运行跟踪。 |
|
|
介绍如何在 SQL Server 数据库引擎实例上使用存储过程创建手动跟踪。 |
|
|
介绍如何将跟踪结果保存到跟踪结果所写入的文件。 |
|
|
目录中的空间来提高访问跟踪数据的性能。 |
|
|
介绍如何使用存储过程创建跟踪。 |
|
|
介绍如何使用存储过程创建只检索有关所需跟踪事件信息的筛选器。 |
|
|
介绍如何使用存储过程修改现有跟踪。 |
|
|
介绍如何使用内置函数查看保存的跟踪。 |
|
|
介绍如何使用内置函数查看跟踪筛选器信息。 |
|
|
介绍如何使用存储过程删除跟踪。 |
|
|
介绍如何将跟踪引起的性能损失降到最低。 |
|
|
介绍如何筛选跟踪以将跟踪过程中的开销降到最低。 |
|
|
介绍如何将跟踪收集的数据量降至最低。 |
|
|
介绍在 Microsoft SQL Server 中计划跟踪的两种方法。 |