什么是SQL Server执行跟踪断点
SQL Server 执行跟踪(SQL Server Profiler)可以用来监视和分析 SQL Server 数据库引擎的各种活动,比如 T-SQL 命令、过程的执行路径、登录和 Logout、数据库的连接、锁等等,从而提供对 SQL Server 数据库引擎内部运行情况的深入理解和洞察。执行跟踪断点(SQL Server Profiler Trace Breakpoints)可以用来中断已经启动的执行跟踪,从而在指定的情况发生时,观察到一些特定的详细信息和数据。
SQL Server执行跟踪断点的设置
步骤一:创建执行跟踪
在设置执行跟踪断点之前,首先需要设置 SQL Server 执行跟踪。下面的代码演示了如何在 SQL Server Management Studio (SSMS) 中创建执行跟踪。
-- 创建执行跟踪
DECLARE @TraceID INT;
DECLARE @FilePath NVARCHAR(200);
SET @FilePath = 'D:\Trace\TraceOutput.trc';
-- 指定执行跟踪轨迹的保存位置.
EXECUTE sp_trace_create @TraceID OUTPUT, 0, @FilePath, 1024 * 5, NULL;
-- 启动执行跟踪
EXECUTE sp_trace_setstatus @TraceID, 1;
说明:
sp_trace_create 用来创建执行跟踪,它包含下列参数:
一个输出参数(@TraceID),用来指定创建的执行跟踪的 ID 号。
一个 @options 参数,它用来设置执行跟
踪的属性,比如追踪级别、输出文件的最大大小、是否追踪停止等。
一个输出文件路径。
一个最大跟踪文件大小。
一个最大文件数目。
sp_trace_setstatus 用来开启或关闭执行跟踪。 1表示开启,0表示关闭。在执行跟踪开始之后,可以利用 sp_trace_setstatus 来动态开启或关闭追踪。
步骤二:设置 SQL Server 执行跟踪断点
设置 SQL Server 执行跟踪断点,需要用到 SQL Server Profiler 工具。以下是步骤:
将 SSMS 升级到最新版本,然后打开 SQL Server Profiler 工具。
在 "File" 菜单中,选择 "New Trace" (或者用 Ctrl+N 快捷方式)。在 "Connect to Server" 窗口中输入 SQL Server 的连接信息,以及验证方式。
在 "Events Selection" 对话框中,选择要追踪的 SQL Server 事件和数据列。勾选 "Breakpoints" 选项,下拉选择 "TSQL" 分类,然后在 "TSQL" 事件中勾选 "SQL:BatchCompleted" 和 "SQL:StmtCompleted"。
单击 "Run" 开始执行执行跟踪。
步骤三:中断追踪并查找数据
设置了执行跟踪断点后,可以中断已经启动的执行跟踪,在执行跟踪特定条件触发时,将跟踪信息输出到窗口或文件中以便分析。
以下代码演示如何中断执行跟踪:
-- 停止执行跟踪.
DECLARE @TraceID INT;
SET @TraceID = 1; -- 根据实际编号设置
EXECUTE sp_trace_setstatus @TraceID,0 ;
-- 删除执行跟踪.
EXECUTE sp_trace_setstatus @TraceID, 2;
说明:
sp_trace_setstatus中TraceID即上一步创建的指定ID,第一个参数为其TraceID,第二个参数为0时表示停止追踪,参数为2时表示删除追踪。
总结
SQL Server 执行跟踪断点能够在 SQL Server Profiler 的基础上,实现对于已有执行跟踪的中断及触发特定条件时获得特定数据列输出到窗口或文件中进行分析等独特功能。在数据库排错和性能分析等领域中,执行跟踪断点均有着广泛应用。