1

我创建了一个启动服务器端 Profiler 跟踪的存储过程。最初,我从分析器的文件/导出/脚本跟踪定义选项生成了 SQL 脚本。从那以后,我对其进行了一些修改以使其更友好。

该脚本执行以下操作:

exec sp_trace_create... -- creates the trace
exec sp_trace_setevent <traceID>, <eventID>, <columnID>, 1... (many of these per event)
exec sp_trace_setfilter...(a few filters)
exec sp_trace_setstatus <traceID>, 1 -- starts the trace

跟踪完成后,我检查了跟踪文件,跟踪列以任意顺序出现。它与我添加到每个跟踪事件的列的顺序不匹配。我希望这些列以不同的顺序出现。

使用服务器端跟踪时,有没有办法控制跟踪文件中列的顺序?

我们的产品在 SQL Server 2005 到 2012 版本上运行,但需要特定数据库版本的答案很好。

另请注意,我知道扩展事件,但我专门寻找有关服务器端分析器跟踪的答案。

4

1 回答 1

1

正如 Aaron Bertrand 指出的那样,当写入跟踪文件时,无法控制列的顺序。

可以使用该函数sys.fn_trace_gettable将跟踪数据检索到表中,然后以任何顺序从中选择数据。

也可以让服务器端跟踪将事件保存到表中。创建跟踪时,在跟踪属性中选择“保存到表”选项。

于 2013-11-14T14:03:45.610 回答