SQL Server Profiler中TextData字段被截断,如何调整其大小?
解决SQL Server Profiler中TextData字段截断的方法
方法1:调整Profiler跟踪的TextData字段长度
- 打开SQL Server Profiler,新建跟踪并连接到目标数据库实例
- 切换到「事件选择」选项卡,点击右下角的列筛选器按钮
- 在弹出窗口中找到「TextData」列,展开后修改「数据大小」的数值(默认通常是1024或4000,最大可设为8000),设置完成后确认
- 启动跟踪,此时TextData字段可容纳更长的查询内容
方法2:改用Extended Events(推荐,Profiler已被官方弃用)
如果查询长度超过8000字符,Profiler仍会截断内容,此时Extended Events是更可靠的方案:
- 打开SSMS,在左侧对象资源管理器中找到「管理」->「扩展事件」,右键选择「新建会话」
- 在会话向导中,添加
sql_statement_completed(针对普通SQL语句)或rpc_completed(针对存储过程/参数化查询)事件 - 在「事件字段」中勾选
statement或sql_text,这些字段默认支持捕获完整的大文本内容,不会被截断 - 完成会话创建后启动它,右键会话选择「查看目标数据」即可查看完整查询语句
方法3:修改自定义跟踪模板
如果常用固定跟踪模板,可直接调整模板的TextData长度:
- 在Profiler的「文件」菜单中选择「模板」->「编辑模板」
- 选择对应模板,进入「事件选择」选项卡,重复方法1的步骤调整TextData的数据大小,保存模板后,后续使用该模板新建跟踪即可生效
注意:即便将Profiler的TextData设为最大8000字节,超长度的查询仍会被截断,这种情况下Extended Events是唯一能完整捕获内容的方案。
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

