功能杂谈--关于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事件,否则无法找到具体查询文本;
--=====================================================================
分类:
SQL SERVER--杂乱功能
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现