功能杂谈--关于SQL trace的一些快遗忘资料

 SQL Trace常用到的设置:

1. 创建trace

复制代码

declare
@rc int declare @TraceID int declare @maxfilesize bigint declare @DateTime datetime declare @filePath nvarchar(500) declare @traceOption int --设置跟踪结束时间 set @DateTime = '2014-11-12 23:59:56.000' --设置跟踪文件最大值(MB) set @maxfilesize = 5000 --设置文件地址 set @filePath=N'E:\SQL Trace20141112-1.trc' --设置跟踪配置 --0 Enable nothin,无配置 --2 Enable the roll over,配置跟踪文件可以滚动增加,如果不设置滚动增加,当文件增加到最大值后,最早的跟踪记录会被移除。 --4 Shutdow_on_error set @traceOption=2 exec @rc = sp_trace_create @TraceID output, @traceOption, @filePath, @maxfilesize, @Datetime
复制代码

 

2. 开始/关闭trace

复制代码
--关闭跟踪
EXEC sp_trace_setstatus @traceid = 3
    , @status =  0
    
    
--开启跟踪
EXEC sp_trace_setstatus @traceid = 3
    , @status =  1

--关闭跟踪并删除跟踪定义
EXEC sp_trace_setstatus @traceid = 2
    , @status =  2
复制代码

 

3. 查看当前的trace(默认情况下,用户常见的trace结束后,会自动删除掉)

--查看跟踪
select * from sys.traces

 

4. 将trace文件导入到表中

--将trace文件导入到表中
SELECT 
IDENTITY(BIGINT,1,1) AS RID,
* 
INTO tempdb.dbo.TraceData
FROM sys.fn_trace_gettable('E:\SQL Trace20141112-1.trc',default)

--=====================================================================

PS1: 建议先使用profiler设置并运行一段时间做检查,确认无误后再使用SQL trace来捕获,SQL trace比SQL Profiler更节省资源;

PS2:有些如JDBC调用时参数化查询时,会先调用sp_prepare来编译查询,获取一个编译后的INT值,然后再通过该INT值来执行,需要检查是否在Trace中加入对TSQL事件下的PrepareSQL事件,否则无法找到具体查询文本;

--=====================================================================

posted on   笑东风  阅读(319)  评论(1编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

导航

点击右上角即可分享
微信分享提示