Sql-server – Running a sql server Trace of 1 GB using sqlcmd

profilersql serversql-server-2000sql-server-2008

I am load testing two sql server instances. I have a trace file from sql server 2000 database with a file size of little less than 1 GB. I am running this using the sqlcmd utility and it is been running for more than 5 hours now. The original trace file's duration was around 5 hours. Is this something expected with sqlcmd utility?

Best Answer

I assume the original trace contains the actions of multiple clients, with many queries executing in parallel? Your playback via SQLCMD is occuring serially, which is why it will take much longer to complete the same workload.

SQLCMD is the wrong tool for this, you need the RML Utilities. A very brief outline of the tools (taken from a previous answer):

  • ReadTrace converts Profiler traces from .trc files to .rml (Replay Markup Language).
  • OStress is used to replay .rml and .sql files against a server.
  • ORCA (OStress Replay Control Agent) co-ordinates replay across distributed instances of OStress.
  • Reporter provides performance analysis reports.

This way you'll get the parallel playback you need to draw any meaningful comparison between the workloads on different instances.