Performance Test Tool

Free tool for testing, tuning and optimizing queries for multiple concurrent connections
Q: Does Performance Test Tool support Transaction Isolation Levels?
A: Yes. All Transaction Isolation Levels are supported. Begin, commit, rollback and save transactions are also supported across Tasks, i.e. a transaction can be started in one Task, and rolled back in another Task.
Q: Where can Performance Test Tool be run?
A: Performance Test Tool can be run from any computer (including Xeon architecture), and does not necessarily have to be run on the SQL Server box.
Q: Can Performance Test Tool be run in a service context?
A: Yes, including both the SQL Server Agent and Windows Task Scheduler. Execution results can optionally be send to mail recipients.
Q: What technologies are used to gather statistics?
A: On SQL Server 2005 - 2008R2, Performance Test Tool uses SQL Server Trace. On SQL Server 2012 - 2016, Performance Test Tool uses Extended Events by default (can be changed in Preferences to SQL Server Trace).
Q: How precise are the statistics?
A: All statistics are gathered directly from the SQL Server Engine and are 100% precise. No measurements are done by the tool itself.
Q: What is Workload mode?
A: Performance Test Tool can playback a recorded or imported workload. The playback will create a realistic workload on the SQL Server with a given number of concurrent users. It can be beneficial to have this workload executed repeatedly e.g. when doing QA tests. Workload mode can execute workloads repeatedly and optionally create a custom report for each workload execution.
Q: What is a Task and what is a Task Collection?
A: A Task contains a single T-SQL statement. A Task Collection contains a batch of Tasks. Performance statistics can be shown for each individual Task as well as for the whole Task Collection.

Performance Test Tool includes example Task Collections to get you started.
Q: What is a Stylesheet and what is a Stylesheet Collection?
A: Performance Test Tool can present the result from a test run in various ways. How the result should be displayed and what performance statistics that should be included is determined by a Stylesheet. The Stylesheet can format the result exactly as wanted with XSLT and C#, and create a report in either HTML or XML. The result from a test run contains thousands of performance statistics, so a Stylesheet makes it possible to only show the relevant data in the output reports.

A Stylesheet Collection contains a collection of Stylesheets that is applicable for a Task Collection. A Task Collection is often distributed together with a Stylesheet Collection.

Performance Test Tool includes example Stylesheet Collections to get you started.
Q: What is the {connection} value for the Setup and Teardown Tasks?
A: When executing a Normal Task, the value of {connection} will be the actual connection, e.g. when having 10 connections, {connection} will be a value from 1 to 10. Since Setup and Teardown Tasks is only run with one connection, the value of {connection} for these Task types are always 0.
Q: How is Performance Test Tool different from Microsoft Distributed replay?
A: Distributed Replay is not ment for query tuning and optimization. Distributed Replay can replay a captured SQL Server Trace on up till 16 different computers. Before each run, the database has to be restored to a known state, since it's only possible to run a Distributed Replay one time. When a new query should be tested with Distributed Replay, a new trace has to be captured, and the capture has to be distributed to the replay computers. The database has to be restored, and often the code base that generates the query has to be recompiled. After that it is possible to do a one-time test with a single trace with up till 16 concurrent connections. No reports or statistics are created for the test run.

With Performance Test Tool, there are no limits on the number of connections. A SQL Server Trace can be run as many times as wanted, and queries can be modified, tuned and optimized directly from within Performance Test Tool. Parameters can be implemented in the queries and transactions are supported. Detailed statistics are shown for each individual statement as well as for the whole execution, and custom reports can be created.

Distributed Replay does not work on SQL Server 2005 - 2008 R2, while Performance Test Tool supports those versions.
Q: What are the system requirements?
A: .NET Framework 2.0.

Compatible with Microsoft SQL Server 2005 - 2016.
Q: What licensing model is used?
A: Performance Test Tool is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Performance Test Tool is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.