五、性能监视(3)SQL跟踪

本文介绍了SQL Server中的SQL跟踪(SQL Trace)概念及其结构,并详细解释了如何通过系统存储过程手动创建跟踪,包括创建跟踪、添加事件、设置筛选器、启动和停止跟踪等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念

1. SQL跟踪(SQL Trace)

  SQL Server 的底层有一个事件子系统,称为SQL Trace。DBA可能通过这个事件子系统捕捉与SQL Server实例中可能发生的200多个事件有关的信息。

  SQL Server Profiler是一个图形化工具,提供了SQL Trace子系统最常用的接口。SQL Server 提供 Transact-SQL 系统存储过程来创建对 SQL Server 数据库引擎实例的跟踪。 可以不使用 SQL Server Profiler,而使用这些系统存储过程从您自己的应用程序中手动创建跟踪。 这样,您就可以针对企业的特定需求编写自定义应用程序。 

  在 SQL 跟踪中,如果事件是在跟踪定义中列出的事件类的实例,则收集这些事件。 可以将这些事件从跟踪中筛选出来或为其目标进行排队。 目标可以是文件或 SQL Server 管理对象 (SMO),它可以使用管理 SQL Server 的应用程序中的跟踪信息。 

  
2. SQL 跟踪结构

  事件源可以是生成跟踪事件(例如 Transact-SQL 批处理)或 SQL Server 事件(例如死锁)的任何源。 有关事件的详细信息,请参阅 SQL Server 事件类参考。 事件发生后,如果该事件类已经包含在跟踪定义中,则跟踪将收集该事件信息。 如果已经在跟踪定义中为该事件类定义筛选器,则将应用这些筛选器并将跟踪事件信息传递到队列。 从队列中,跟踪信息或者被写入文件,或者由应用程序(例如 SQL Server Profiler)中的 SMO 使用。 

  以下关系图显示了在跟踪期间 SQL 跟踪如何收集事件。 
135116949.gif

 

 

二、使用SQL跟踪的方法

  通过系统存储过程进行跟踪的过程如下: http://technet.microsoft.com/zh-cn/library/hh245121.aspx

(1)使用 sp_trace_create 创建跟踪。为存储过程 sp_trace_create 的 @tracefile 参数指定路径和文件名后,SQL Server 将跟踪结果保存到文件中。

(2)使用 sp_trace_setevent 添加事件。

(3)使用 sp_trace_setfilter 设置筛选器(可选)

(4)使用 sp_trace_setstatus 启动跟踪。

(5)使用 sp_trace_setstatus 停止跟踪。

(6)使用 sp_trace_setstatus 关闭跟踪。

 

 

本文结语:

  SQL跟踪可以通过存储过程创建对数据库实例的跟踪。你可以针对特定的需求在自定义的应用程序中手动创建跟踪。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值