0.简介
SQL Server 提供 SQL 跟踪和事件通知来监视数据库引擎中发生的事件。
通过记录指定事件,SQL 跟踪可以帮助您解决性能问题、审核数据库活动、收集用于测试环境的示例数据、调试 Transact-SQL 语句和存储过程以及为性能分析工具收集数据。可以通过 SQL Server Profiler(一个图形用户界面)或在命令行输入的 Transact-SQL 系统存储过程访问 SQL 跟踪。
运行时,SQL 跟踪在数据库引擎中的事件发生时捕获事件。捕获的事件是您选择在某进程中进行监视的事件类实例,此进程称为一个 trace。每个事件类都包括一个事件名称和多个数据列(用于描述特定情况下发生的事件类的属性)。跟踪中指定事件类的某个事件发生时,SQL 跟踪将把事件名称和关联数据记录到跟踪文件中。
通常,通过 SQL Server Profiler 访问 SQL 跟踪。还可以使用 Transact-SQL 系统存储过程来访问 SQL 跟踪。SQL Server Profiler 可以使用 SQL 跟踪的全部事件捕获功能并添加跟踪表信息、将跟踪定义保存为模板、提取查询计划和死锁事件作为单独的 XML 文件以及重播跟踪结果以进行诊断和优化的能力。
事件通知将有关 SQL 跟踪捕获的许多相同事件的信息发送到 Service Broker 服务。但事件通知与跟踪不同,它可用于在 SQL Server 内响应事件执行操作。由于事件通知异步执行,因此这些操作不占用即时事务定义的任何资源。
下列主题说明如何使用 SQL Server Profiler、SQL 跟踪和事件通知来监视事件。
SQL Server Profiler介绍
SQL Server Profiler 是用于从服务器捕获 SQL Server 事件的工具。事件保存在一个跟踪文件中,可在以后对该文件进行分析,也可以在试图诊断某个问题时,用它来重播某一系列的步骤。SQL Server Profiler 用于下列活动中:
-
逐步分析有问题的查询以找到问题的原因。
-
查找并诊断运行慢的查询。
-
捕获导致某个问题的一系列 Transact-SQL 语句。然后用所保存的跟踪在某台测试服务器上复制此问题,接着在该测试服务器上诊断问题。
-
监视 SQL Server 的性能以优化工作负荷。有关为数据库工作负荷而优化物理数据库设计的信息,请参阅数据库引擎优化顾问概述。
-
使性能计数器与诊断问题关联
SQL Server Profiler 还支持对 SQL Server 实例上执行的操作进行审核。审核将记录与安全相关的操作,供安全管理员以后复查。
如何创建跟踪
- 在“文件”菜单上,单击“新建跟踪”,并连接到 SQL Server 实例。 此时,将显示“跟踪属性”对话框。
- 在“跟踪名称”框中,键入跟踪的名称。
- 在“使用模板”列表中,为此跟踪选择一个跟踪模板;如果不想使用模板,请选择“空白”。
- 若要保存跟踪结果,请执行下列操作之一:
- 单击“保存到文件”将跟踪捕获到文件中。指定“设置最大文件大小”的值。默认值为 5 MB。或者,选择“启用文件滚动更新”,以便当文件大小达到最大值时自动创建新文件。也可以选择“服务器处理跟踪数据”,由正在运行跟踪的服务而不是客户端应用程序来处理跟踪数据。在服务器处理跟踪数据时,即使是在压力较大的情况下也不会跳过事件,但是服务器性能可能会受到影响。
- 单击“保存到表”将跟踪捕获到数据库表中。
-
根据需要,可以单击“设置最大行数”,并指定值。
- 根据需要,可以选中“启用跟踪停止时间”复选框,再指定停止日期和时间。
- 若要添加或删除事件、数据列或筛选器,请单击“事件选择”选项卡。有关详细信息,请参阅:如何指定跟踪文件的事件和数据列 (SQL Server Profiler)
- 单击“运行”启动跟踪功能。
注意
如果不将跟踪结果保存到文件或表中,则当 SQL Server Profiler打开时可以查看跟踪。但是,在停止跟踪并关闭 SQL Server Profiler之后会丢失跟踪结果。为了避免这种丢失跟踪结果的情况,可以在关闭 SQL Server Profiler之前单击“文件”菜单上的“保存”来保存结果。
-
根据需要,可以选中“启用跟踪停止时间”复选框,再指定停止日期和时间。
-
若要添加或删除事件、数据列或筛选器,请单击“事件选择”选项卡。有关详细信息,请参阅:如何指定跟踪文件的事件和数据列 (SQL Server Profiler)
-
单击“运行”启动跟踪功能。
在 SQL Server 2008 中,可以使用扩展事件来排除性能问题。扩展事件可更加深入地探查 SQL Server 的内部工作原理,可在复杂的故障排除情况中使用。有关详细信息,请参阅 SQL Server 扩展事件。
主题 | 说明 |
SQL 跟踪简介 | 说明 SQL 跟踪如何工作以及如何使用存储过程创建跟踪。 |
SQL Server Profiler 简介 | 说明如何使用 SQL Server Profiler 进行跟踪。 |
优化实用工具和工具的性能 | 介绍可以经过优化来提高实用工具和工具性能的服务器操作 |
优化服务器性能 | 说明如何优化 SQL Server 来提高服务器性能。 |
事件通知简介 | 说明事件通知如何工作以及如何使用事件通知来监视和响应数据库和服务器事件 |
使用 SQL Server Management Studio 监视 | 说明如何使用 SQL Server Management Studio 来监视 SQL Server 性能。 |
监视错误日志 | 说明如何使用 SQL Server 错误日志和 Microsoft Windows 应用程序日志来监视 SQL Server 活动。 |
用 Transact-SQL 语句监视 | 说明如何使用 Transact-SQL 语句来监视 SQL Server 实例。 |
参考