SQL Server Profiler

SQL Server Profiler 是一个用于创建和管理跟踪以及分析和重播跟踪结果的丰富界面。 这些事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分析或用它来重播特定的一系列步骤。

重要

我们宣布弃用数据库引擎跟踪捕获和跟踪重播SQL Server Profiler。 下一版本的 SQL Server 将支持这些功能,但在更高版本中将删除这些功能。 具体是哪一 SQL Server 版本现在还未确定。 也不推荐使用包含 Microsoft SQL Server 跟踪和重播对象的 Microsoft.SqlServer.Management.Trace 命名空间。 请注意,Analysis Services 工作负载的SQL Server Profiler未弃用,将继续受支持。

下表显示了建议在 SQL Server 2014 中用于捕获和重播跟踪数据的功能:

功能\目标工作负荷 关系引擎 Analysis Services
跟踪捕获 SQL Server Management Studio 中的扩展事件图形用户界面 SQL Server Profiler
跟踪重播 分布式重播 SQL Server Profiler

SQL Server Profiler 的优点

Microsoft SQL Server Profiler 是 SQL 跟踪的图形用户界面,用于监视 数据库引擎 或 Analysis Services 的实例。 您可以捕获有关每个事件的数据并将其保存到文件或表中供以后分析。 例如,可以对生产环境进行监视,了解哪些存储过程由于执行速度太慢影响了性能。 SQL Server Profiler 用于如下活动:

  • 逐步分析有问题的查询以找到问题的原因。

  • 查找并诊断运行慢的查询。

  • 捕获导致问题的一系列 Transact-SQL 语句。 然后用所保存的跟踪在某台测试服务器上复制此问题,接着在该测试服务器上诊断问题。

  • 监视 SQL Server 的性能以优化工作负荷。 有关为数据库工作负荷而优化物理数据库设计的信息,请参阅 Database Engine Tuning Advisor

  • 使性能计数器与诊断问题关联。

SQL Server Profiler 还支持对 SQL Server 实例上执行的操作进行审核。 审核将记录与安全相关的操作,供安全管理员以后复查。

SQL Server Profiler 概念

若要使用 SQL Server Profiler,您需要了解描述该工具工作方式的术语。

注意

使用SQL Server Profiler时,了解 SQL 跟踪会很有帮助。 有关详细信息,请参阅 SQL Trace

事件
事件是在 SQL Server 数据库引擎实例中生成的操作。 示例包括:

  • 登录连接、失败和断开。

  • Transact-SQL SELECT、INSERT、UPDATE 和 DELETE 语句。

  • 远程过程调用 (RPC) 批处理状态。

  • 存储过程的开始或结束。

  • 存储过程中的语句的开始或结束。

  • SQL 批处理的开始或结束。

  • 写入到 SQL Server 错误日志的错误。

  • 在数据库对象上获取或释放的锁。

  • 打开的游标。

  • 安全权限检查。

由事件生成的所有数据显示在单个行中的跟踪内。 该行与详细说明事件的数据列相交。

EventClass
事件类是可跟踪的事件类型。 事件类包含所有可由事件报告的数据。 事件类示例如下所示:

  • SQL:BatchCompleted

  • 审核登录

  • 审核注销

  • Lock:Acquired

  • Lock:Released

EventCategory
事件类别定义 SQL Server Profiler中的事件的分组方法。 例如,所有锁事件类都分组在 Locks 事件类别中。 但是,事件类别仅存在于 SQL Server Profiler中。 该术语不反映引擎事件的分组方法。

DataColumn
数据列是在跟踪中捕获的事件类的属性。 由于事件类决定了可收集的数据类型,因此并不是所有数据列都适用于所有事件类。 例如,在捕获了 Lock:Acquired 事件类的跟踪中, BinaryData 数据列包含锁定的页 ID 或行的值,但 Integer Data 数据列不包含任何值,因为该数据列不适用于被捕获的事件类。

模板
模板定义跟踪的默认配置。 具体地说,它包括您要使用 SQL Server Profiler监视的事件类。 例如,可以创建一个指定了要使用的事件、数据列和筛选器的模板。 模板不会被执行,而是用 .tdf 扩展名保存为文件。 保存后,模板就可以在启动基于此模板的跟踪时控制捕获的跟踪数据。

Trace
跟踪基于选定的事件、数据列和筛选器捕获数据。 例如,可创建跟踪来监视异常错误。 为此,请选择 Exception 事件类以及 ErrorStateSeverity 数据列。 需要收集这三列的数据,以使跟踪结果可提供有意义的数据。 然后,可运行以此方式配置的跟踪,并可收集有关服务器中发生的任何 Exception 事件的数据。 可以保存跟踪数据,也可以立刻将其用于分析。 尽管某些事件(如 Exception 事件)永远不会被重播,但跟踪以后可以被重播。 还可以将跟踪保存为模板,以便在将来生成类似的跟踪。

SQL Server 提供了以下两种用于跟踪 SQL Server 实例的方法:使用 SQL Server Profiler 进行跟踪,或使用系统存储过程进行跟踪。

Filter
当创建跟踪或模板时,可以定义筛选由事件收集的数据的准则。 若要避免跟踪过大,可以筛选跟踪,以便只收集一部分事件数据。 例如,可以在跟踪中将 Microsoft Windows 用户名限制为特定的用户,从而减少输出的数据。

如果没有设置筛选器,则跟踪输出中将返回选定事件类的所有事件。

SQL Server Profiler 任务

任务说明 主题
列出 SQL Server 提供的用于监视特定类型事件的预定义模板,以及重播跟踪所需使用的权限。 SQL Server Profiler 模板和权限
介绍了如何运行 SQL Server Profiler。 运行 SQL Server Profiler 所需的权限
介绍如何创建跟踪。 创建跟踪 (SQL Server Profiler)
说明如何指定跟踪文件的事件和数据列。 指定跟踪文件的事件和数据列 (SQL Server Profiler)
说明如何将跟踪结果保存到文件。 将跟踪结果保存到文件 (SQL Server Profiler)
说明如何将跟踪结果保存到表。 将跟踪结果保存到表 (SQL Server Profiler)
说明如何筛选跟踪中的事件。 在跟踪中筛选事件 (SQL Server Profiler)
说明如何查看筛选信息。 查看筛选器信息 (SQL Server Profiler)
说明如何修改筛选器。 修改筛选器 (SQL Server Profiler)
说明如何设置跟踪文件的文件大小上限 (SQL Server Profiler)。 设置跟踪文件的最大文件大小 (SQL Server Profiler)
说明如何设置跟踪表的最大表大小。 设置跟踪表的最大表大小 (SQL Server Profiler)
说明如何启动跟踪。 启动跟踪
说明如何在连接到服务器后自动启动跟踪。 连接到服务器后自动启动跟踪 (SQL Server Profiler)
说明如何基于事件开始时间筛选事件。 基于事件开始时间筛选事件 (SQL Server Profiler)
说明如何基于事件结束时间筛选事件。 基于事件结束时间筛选事件 (SQL Server Profiler)
说明如何筛选跟踪中的服务器进程 ID (SPID)。 在跟踪中筛选服务器进程 ID (SPID) (SQL Server Profiler)
介绍如何暂停跟踪。 暂停跟踪 (SQL Server Profiler)
介绍如何停止跟踪。 停止跟踪 (SQL Server Profiler)
说明如何在跟踪暂停或停止之后运行跟踪。 在跟踪暂停或停止之后运行跟踪 (SQL Server Profiler)
说明如何清除跟踪窗口。 清除跟踪窗口 (SQL Server Profiler)
说明如何关闭跟踪窗口。 关闭跟踪窗口 (SQL Server Profiler)
说明如何设置跟踪定义默认值。 设置跟踪定义默认设置 (SQL Server Profiler)
说明如何设置跟踪显示默认值。 设置跟踪显示默认值 (SQL Server Profiler)
说明如何打开跟踪文件。 打开跟踪文件 (SQL Server Profiler)
说明如何打开跟踪表。 打开跟踪表 (SQL Server Profiler)
说明如何重播跟踪表。 重播跟踪表 (SQL Server Profiler)
说明如何重播跟踪文件。 重播跟踪文件 (SQL Server Profiler)
说明如何每次重播一个事件。 每次重播一个事件 (SQL Server Profiler)
说明如何重播到断点。 重播到断点 (SQL Server Profiler)
介绍如何重播至光标处。 重播至光标处 (SQL Server Profiler)
说明如何重播 Transact-SQL 脚本。 重播 Transact-SQL 脚本 (SQL Server Profiler)
说明如何创建跟踪模板。 创建跟踪模板 (SQL Server Profiler)
说明如何修改跟踪模板。 修改跟踪模板 (SQL Server Profiler)
说明如何设置全局跟踪选项。 设置全局跟踪选项 (SQL Server Profiler)
说明如何在跟踪时查找值或数据列。 在跟踪时查找值或数据列 (SQL Server Profiler)
说明如何从正在运行的跟踪派生模板。 从正在运行的跟踪中派生模板 (SQL Server Profiler)
说明如何从跟踪文件或跟踪表派生模板。 从跟踪文件或跟踪表派生模板 (SQL Server Profiler)
说明如何创建 Transact-SQL 脚本来运行跟踪。 创建 Transact-SQL 脚本来运行跟踪 (SQL Server Profiler)
说明如何导出跟踪模板。 导出跟踪模板 (SQL Server Profiler)
说明如何导入跟踪模板。 导入跟踪模板 (SQL Server Profiler)
说明如何从跟踪提取脚本。 从跟踪提取脚本 (SQL Server Profiler)
说明如何将跟踪与 Windows 性能日志数据关联。 将跟踪与 Windows 性能日志数据关联 (SQL Server Profiler)
说明如何组织跟踪中显示的列。 组织跟踪中显示的列 (SQL Server Profiler)
介绍了如何启动 SQL Server Profiler。 启动 SQL Server Profiler
说明如何保存跟踪和跟踪模板。 保存跟踪和跟踪模板
说明如何修改跟踪模板。 修改跟踪模板
说明如何将跟踪与 Windows 性能日志数据关联。 将跟踪与 Windows 性能日志数据关联
介绍了如何使用 SQL Server Profiler 查看和分析跟踪。 使用 SQL Server Profiler 查看和分析跟踪
介绍了如何使用 SQL Server Profiler 分析死锁。 使用 SQL Server Profiler 分析死锁
说明如何在 SQL Server Profiler 中使用 SHOWPLAN 结果来分析查询。 在 SQL Server Profiler 中使用 SHOWPLAN 结果来分析查询
介绍了如何使用 SQL Server Profiler 筛选跟踪。 使用 SQL Server Profiler 筛选跟踪
说明如何使用 SQL Server Profiler 的重播功能。 重播跟踪
列出了 SQL Server Profiler 的上下文相关帮助主题。 SQL Server Profiler 的 F1 帮助
列出由 SQL Server Profiler 用于监视性能和活动的系统存储过程。 SQL Server Profiler 存储过程 (Transact-SQL)

另请参阅

“锁”事件类别
“会话”事件类别
“存储过程”事件类别
TSQL 事件类别
服务器性能和活动监视