I’ve been trying to track down a deadlock problem that has been plaguing our system for quite a while now.
To this end we’ve run a trace on the production server (on the events to track and how to analyze them read this ). Unfortunately, I ended up with 386 trace files.
Loading them in SQLProfiler is a sure path to RSI. Thankfully google is your friend and can find everything in MS’s knowledge base :).
This article describes how to programmatically load trace files into trace tables. It’s for SQLServer 2000, but the relevant SQL still works on SQLServer 2008.
In short, I created a new database (Traces) and run the following query:
USE Traces
GO
SELECT * INTO trace_table FROM ::fn_trace_gettable(‘c:\trace_file.trc’,default)
This will create the file trace_table and load all the trace files (that’s what the default in the function call does).
It took quite a while, but at the end it was a lot better than hitting enter 386 times in SQLProfiler (and that every time I tried to filter events)