SQL Server Stress Testing your database engine using RML utilities

Hi Friends,

As a DBA, stress testing and performance benchmarking is one of the most important activities that you would perform. There are many techniques and choice of tools at your disposal. In many cases, I have used RML utilities.

If you look into the description of RML utilities provided by Microsoft at http://support.microsoft.com/kb/944837, you will observe that they talk about the following benefits:

•You can determine the application, the database, the SQL Server login, or the query that is using the most resources.

•You can determine whether the execution plan for a batch is changed when you capture the trace for the batch. Additionally, you can use the RML Utilities for SQL Server to determine how SQL Server performs each of these execution plans.

•You can determine the queries that are running slower than before.

The above benefits are fine and understandable if you read more and use RML utilities. However, one benefit gets ignored here: Stress Testing your SQL instance.

The question is: “How can I stress my SQL Server to projected levels with a current workload?” And here comes the OStress utility from the RML pack.

RML stands for Replay MarkUp Language and consists of four utilities:





•OStress Replay Control Agent (ORCA)

I want to highlight the OStress utility. OStress is a simple and scalable command line application which can stress or replay database commands. You can specify a query via a command line parameter, .SQL script or .RML file. You have switches to simulated number of connections and iterations for a given workload.

For example:

The following command runs stress_01.sql simulating 200 connections and iterates 2000 times.

Ostress.exe –ic:\AmitStresTest\stress_01.sql –n200 –r2000 –oc:\ AmitStresTest \output

And your stress_01.sql can contain simple or complex code that causes CPU or memory pressure. With this, you can test the scalability of SQL Server for a given workload. You can record performance benchmark etc,

Just an example of what stress_01.sql can contain: cross join with the largest table in your database.

The set of tools offer a great deal of help here. Before you get surprises in your production environment with huge workloads and simultaneous access, stress test now and have your answers ready.

RML utilities have a 32 bit and 64 bit versions which can be downloaded from http://support.microsoft.com/kb/944837

performance benchmarking, Performance testing, SQL Server performance tuning




About Amit Bansal

Amit Bansal is always brainstorming around SQL Server. Despite working with SQL since 1997, he is amazed that he keeps learning new things every single day. SQL Server is AB's first love, and his wife does not mind that. He tries to share as much and spreads the SQL goodness. Internals and Performance Tuning excites him, and also gives him sleepless nights at times, simply because he is not a genius, but quite a hard worker and does not give up. It has been a long and exciting journey since 1997, you can read here: http://sqlmaestros.com/amit-bansal/ He is on Twitter: https://www.twitter.com/A_Bansal

View all posts by Amit Bansal →

One Comment on “SQL Server Stress Testing your database engine using RML utilities”

Leave a Reply

Your email address will not be published.