Dan*_*ola 11 trace filter sql-server-profiler sql-server-2008
我正在尝试使用SQL事件探查器解决此问题(SQL 2008)
在生产中运行跟踪几天后,最后再次发生错误,现在我正在尝试诊断原因.问题是跟踪有400k行,其中99.9%来自"报表服务器",我甚至不知道为什么会这样,但它似乎每秒都在ping SQL Server ......
有没有办法从跟踪中过滤掉一些记录,以便能够查看其余的记录?
我可以使用当前的.trc文件执行此操作,还是必须再次运行跟踪?
是否有其他应用程序可以查看可以为我提供此功能的.trc文件?
Mit*_*eat 25
您可以将捕获的跟踪加载到SQL Server Profiler:使用SQL Server Profiler查看和分析跟踪.
或者您可以加载到ClearTrace(免费版)之类的工具来执行工作负载分析.
您可以加载到SQL Server表中,如下所示:
SELECT * INTO TraceTable
FROM ::fn_trace_gettable('C:\location of your trace output.trc', default)
Run Code Online (Sandbox Code Playgroud)
然后,您可以运行查询来聚合数据,例如:
SELECT
COUNT(*) AS TotalExecutions,
EventClass,
CAST(TextData as nvarchar(2000)) ,
SUM(Duration) AS DurationTotal ,
SUM(CPU) AS CPUTotal ,
SUM(Reads) AS ReadsTotal ,
SUM(Writes) AS WritesTotal
FROM
TraceTable
GROUP BY
EventClass,
CAST(TextData as nvarchar(2000))
ORDER BY
ReadsTotal DESC
Run Code Online (Sandbox Code Playgroud)
另请参阅:MS SQL Server 2008 - 如何记录和查找最昂贵的查询?
在启动之前为捕获的跟踪设置过滤器也很常见.例如,常用的过滤器仅限于需要超过一定数量读取的事件,例如5000.