创建SQL Trace

Trace是轻量级的追踪工具,几乎对系统没有任何副作用,开启Trace,经常能够帮助DBA追踪到一些非常有用的信息。Trace出现的比较早,MS推出更强大的Extended Events来取代Trace。

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use Extended Events instead.

一,使用TSQL Script创建SQL Trace

step1,使用 sp_trace_create 创建Trace的定义

sp_trace_create only creates a trace definition. This stored procedure cannot be used to start or change a trace.

sp_trace_create [ @traceid = ] trace_id OUTPUT
          , [ @options = ] option_value
          , [ @tracefile = ] ‘trace_file‘
     [ , [ @maxfilesize = ] max_file_size ]
     [ , [ @stoptime = ] ‘stop_time‘ ]
     [ , [ @filecount = ] ‘max_rollover_files‘ ]

step2,使用 sys.sp_trace_setevent 为trace添加Event和Column

Adds or removes an event or event column to a trace. sp_trace_setevent may be executed only on existing traces that are stopped (status is 0). An error is returned if this stored procedure is executed on a trace that does not exist or whose status is not 0.

sp_trace_setevent [ @traceid = ] trace_id
          , [ @eventid = ] event_id
          , [ @columnid = ] column_id
          , [ @on = ] on

step3, 使用 sys.sp_trace_setfilter 为Trace 设置过滤器,也可以不设置

sp_trace_setfilter [ @traceid = ] trace_id
          , [ @columnid = ] column_id
          , [ @logical_operator = ] logical_operator
          , [ @comparison_operator = ] comparison_operator
          , [ @value = ] value

Step4,使用 sys.sp_trace_setstatus  启动或停止Trace
Modifies the current state of the specified trace.

sp_trace_setstatus [ @traceid = ] trace_id , [ @status = ] status

status 参数的可用值是:
0:Stops the specified trace.

1:Starts the specified trace.

2:Closes the specified trace and deletes its definition from the server.

二,使用SQL Profile来创建SQL Trace

SQL Profile是一个可视化的创建SQL Trace的工具,创建Trace的过程十分直观,简单,相比之下,使用TSQL Script来创建SQL Trace十分繁琐。SQL Server Profile 有一个非常cool的功能,就是能够导出创建SQL Trace的Script。

创建Trace之后,点击File->Export->Scipt Trace Definition,就能将SQL Profile创建Trace的脚本代码导出。

导出的Script 如下,不能直接使用,必须修改一处代码:在创建Trace时,指定存储trace数据的File 或 Table。仅此而已。

-- Create a Queue
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5
-- Client side File and Table cannot be scripted
exec @rc = sp_trace_create @TraceID output, 0, N‘InsertFileNameHere‘, @maxfilesize, NULL
if (@rc != 0) goto error

-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 14, 1, @on
exec sp_trace_setevent @TraceID, 14, 9, @on

--delete many commands here ---

-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint
exec sp_trace_setfilter @TraceID, 1, 0, 6, N‘%drop%‘

-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1

-- display trace id for future references
select TraceID=@TraceID
goto finish

error:
select ErrorCode=@rc

finish:
go

参考doc:

SQL Server中关于跟踪(Trace)那点事

时间: 2024-10-15 01:05:22

创建SQL Trace的相关文章

SQL Server Extended Events 进阶 1:从SQL Trace 到Extended Events

http://www.sqlservercentral.com/articles/Stairway+Series/134869/ SQL server 2008 中引入了Extended Events 用以替换SQL Trace. 然而在第一个版本中并没有为用户提供UI,因此使用Extended Events并不是很方便.SQL Server 2012及时修正了这一点,将UI管理工具集成在SSMS中, 这就意味着我们不需要再为了查询Event XML而学习使用XQuery了.因此跟多的DBA和开

怎样收集EBS 各个模块的 Log, SQL trace, 以及FRD log

我平时接触到的EBS 模块主要是下面几个: PO, INV, OM. 因此也经常需要收集相关的log 信息. 如果界面上报错了, 可以很容易从log 里面看到是哪里的代码执行报错. 这篇博客总结了收集上述几个log 的方法, 和sql trace 以及frd log. 1. OM log 这个主要记录OM 模块的日志. OM 模块的代码文件以OE 开头, 文件里面有记录日志的语句: oe_debug_pub.add(). 写在这个语句的内容会被写到日志中. 设置profile OM: Debug

创建sql自定义的函数及商品分页sql存储过程

--商品筛选时判断品牌ID是否存在 --select dbo.isValite(94,94)create function isValite(@brandId int,@bId int)returns intas begin Declare @rNumber int if @brandId = @bId set @rNumber = 1 else set @rNumber = 0 if @bId = 0 set @rNumber = 1 return @rNumberendgo --判断商品筛选

简单的如何创建sql server存储过程

学习sql server数据库,sql server存储过程的建立方法是一定要知道的,下面将教您如何建立sql server存储过程,希望对您有所帮助. 在对象资源管理器中,连接到某个数据库引擎实例,再展开该实例. 展开“数据库”.sql server存储过程所属的数据库以及“可编程性”. 右键单击“存储过程”,再单击“新建存储过程”. 在“查询”菜单上,单击“指定模板参数的值”. 在“指定模板参数的值”对话框中,“值”列包含参数的建议值.接受这些值或将其替换为新值,再单击“确定”. 在查询编辑

创建SQL触发器

我们可以对某个数据表添加SQL触发器,当该表进行添加.更新.删除时执行某项操作.不过SQL触发器如果能不用尽量不用,若在项目后期改动程序波及范围太大,使用SQL触发器可以避免,所以才使用. 数据表dbo.User(UserName, Password) CREATE TRIGGER Trigger_User ON dbo.User FOR UPDATE, DELETE AS IF UPDATE(UserName) BEGIN DECLARE @userNameBeforeUpdate NVARC

创建SQL用户与删除SQL用户

---------------------------创建SQL用户并关联数据库--------------------------- --新建SQL用户,关联windows用户连接SQL数据库 CREATE LOGIN [huang-PC\Fly_User] FROM WINDOWS WITH DEFAULT_DATABASE=[Fly] --PC\User:包括windows用户与组,还有域用户与组. --Fly:用户默认关联的数据库名. /* --创建SQL服务器用户 CREATE LOG

.net 动态创建sql数据库表

//必须的命名空间 using System; using System.Data; using System.Data.SqlClient; //中间常规内容略 string tabName = "table1"; //声明要创建的表名,你也可以改为从textbox中获取: string sqlStr = "create table "; sqlStr += tabName + "( "; sqlStr += "col0 numeri

C#与数据库访问技术总结(六)之Command对象创建SQl语句代码示例

Command对象创建SQl语句代码示例 说明:前面介绍了 Command 对象的方法和一些属性,回顾一下 Command对象主要用来执行SQL语句.利用Command对象,可以查询数据和修改数据. 在下面这段代码里,首先根据连接字符串创建一个SqlConnecdon连接对象,并用此对象连接数据源:然后创建一个SqlCommand对象,并用此对象的ExecuteNonQuery方法执行不带返回结果集的SQL语句. 1 //连接字符串 2 3 private static string strCo

PLSQL_性能优化效能跟踪工具SQL Trace分析(案例)

2014-06-25 BaoXinjian 一.摘要 SQL TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具.在日常的数据库问题诊断和解决中,SQL TRACE是非常常用的方法.一般,一次跟踪可以分为以下几步:1.界定需要跟踪的目标范围,并使用适当的命令启用所需跟踪.2.经过一段时间后,停止跟踪.此时应该产生了一个跟踪结果文件.3.找到跟踪文件,并对其进行格式化,然后阅读或分析. 另文已介绍了其他的跟踪工具DBMS_PROFILER, Form Trace, Re