views:

486

answers:

4

Has anyone come across any good tools (preferably but not necessarily FOSS) that can read a SQL Server (2005/2008) trace file and execute the commands against another database. We are attempting to perform some performance testing on our SQL servers and would like to replicate an actual load.

I have come across but not yet used:

  • JMeter
  • ReplayML

Preferably, the application would be able to use threading to mimic user connections and query execution on the SQL Server.

A: 

You can replay trace files directly in SQL Profiler, although I've only used it a couple of times for that, so I don't know what all of the limitations are on it.

Tom H.
+4  A: 

You can replay a SQL Server Profiler trace against another server using the SQL Server Profiler itself.

See the following Microsoft Reference as a starting point.

http://msdn.microsoft.com/en-us/library/ms189604.aspx

Quest Software also have a tool called Benchmark Factory that can be used to perform SQL Server load testing.

http://www.quest.com/benchmark-factory/

John Sansom
While this solution isn't perfect it is what we chose to use and is therefore the accepted answer. Thanks John
Jason Irwin
A: 

team system has an add-on that you can find on codeplex: It is called ->

sql load test

Let me know if that works well for you.

CodeToGlory
+3  A: 

One of the best tools is actually freely available from Microsoft. The RML Utilities are targeted at SQL2005 & SQL2008 and are specifically designed for this type of testing.

You can download the tools from http://www.microsoft.com/downloads/details.aspx?FamilyId=7EDFA95A-A32F-440F-A3A8-5160C8DBE926&displaylang=en

We have used them to solve several performance and locking issues.

Note: Capturing trace files using the SQL Profiler GUI can add to performance problems due to the way the GUI and Trace backend interact. The RML Utilites include a script that can capture traces directly from the SQL Server without using the GUI.

Frozenskys