A developers’ impression.
“When I built or changed a SQL Server-based Product system newly, I must do some load tests to check performance and stability of a SQL Server. When I used the existing tools, there were many regrets and limitations, so I needed a tool that complemented those points. After long thoughts and tests, I developed it by myself. It has been developed and used internally up to version 3, and I release it as a freeware. I hope this helps SQL Server users ( or MySQL/MariaDB Users).”
Jungsun Kim @ SQLRoad.com
Microsoft Data Platform MVP (2002~)
Note. This document is a User Guide for SQLBigEyes Hammer, a load test for Microsoft SQL Server.
SQLRoad(www.sqlroad..com) developed this SQLBigEyes Hammer.
Images and some names used in the document may differ from version to version.
Note. After downloading/uncompressing, rename “SQLBigEyesHammer.ham” file to “SQLBigEyesHammer.exe”
Setup Load and Run
|Main Menu, Toolbar and Server connection information setting|
|SQLBigEyes Hammer can run multiple queries simultaneously and load test against a single SQL Server. After executing SQLBigEyes Hammer, select [DBMS Type], [Target Server:Port], [Authentication Method], [User ID], [Password] (when using SQL Server authentication) to test in each of the Toolbar items shown in the figure below. Specify it and click the [Test Connection] button to check whether the connection is successful or unsuccessful.
When you open the “New Query” window later, the server connection information set here is applied by default.
Ref-1. Authentication method and account information can be changed in individual Hammer windows.
|New Query Window|
|Enter the query to be executed in the [Query] window. You can specify more than one query. Basically the entire query is executed in one batch (batch) at once, so it is structured so that there is no problem to perform it.
Note) SQLBigEyes Hammer supports entering queries of more than 8,000 characters (over).
Note) You can adjust the “Font size” by using the [Ctrl+Mouse Wheel].
If you want to execute a specific query among several queries, select the query and click the [Run] button.
|Line-by-line query execution|
|Select the [Execute LineByLine] option if you want to call one query line by line rather than executing all queries as a batch at once.
1) In the case of /* */ comments spanning multiple lines, an error occurs, so remove them in advance or change them by line.
2) Lines beginning with -– comments are automatically excluded when executed.
|Real-time performance evaluation by thread|
|If you select the [View Statistics] option in the figure above, the number of times the query is being executed for each concurrently executed thread, the number of successes and failures among them, the execution time of individual calls together with the number of occurrences (Elapsed Time) and the accumulated execution time up to that point (Total Elapsed Time). Each thread is not necessarily called in order.
Important. Specifying this option can affect the overall execution time due to additional behavior in the SQLBigEyes Hammer program itself.
(Current Iteration) and (Total Elapsed Time) at the top of the Query window show the accumulated number of iterations and total execution time to date regardless of this option.
Tip. Utilize when testing in a redundant environment
SQLBigEyes Hammer is developed so that even if an error occurs during execution, the query continues to be repeated until the specified number of iterations is met. This can be useful when testing Failover behavior in a redundant environment such as Failover Cluster, Always on availability group, auto failover group on Azure, etc
[Options – Fetch Rows & View Result]
Hammer does not process query result rows by default. By specifying the [Fetch Rows] option, you can specify that the default behavior of populating a variable is for the entire result row and for individual column values. This allows you to perform a load test (similar to the actual situation), including the amount of time the client processes data.
In addition, if you select the [View Result] option, the result is displayed in the “Result of Query” tab at the bottom. If the Iterations value is 2 or more, the execution result is displayed in the form of being added to the Grid. The “Iteration” column value indicates the number of iterations.
Connection using Connection Pooling in ADO.NET (.NET Data Provider), ADO (OLEDB), etc. is the default operation, but if necessary, you can disable the option and perform a load test with Non-Connection Pooling.
|Performance Monitor window [Beta]|
SQLBigEyes Hammer provides the [Performance Monitor] window so that you can check some performance counters simply as shown in the figure. Currently, Batch Requests/sec value is supported, and additional support is planned as needed in the future.
Note) This function is currently being tested (Beta). There may be a delay in the output of the chart when the load of the program itself increases or the computer in use is under load.
|Run and stop all Hammer windows|
|Saving Hammer Window Configurations|
|For later reuse, connection information of the current Hammer window, database, and property information including the number of repetitions can be saved in the configuration file (xml).
Using [Save Configuration] menu, toolbar, or shortcut key, and designate folder and file name to save. The xml file can also be edited directly using an editor tool such as Notepad.
When reusing the saved xml file, select the [Open Hammer] menu and specify the file, a new Hammer window is created, and the query and property information are automatically set.
|Here are some considerations when using SQLBigEyes Hammer.
|If the following runtime error occurs repeatedly while using SQLBigEyes and you are uncomfortable, it would be appreciated if you capture the screen and send it by e-mail with a brief explanation.
And you can click the [Continue (C)] button to proceed with the operation.
|Community Information(Korean)||You can share release information, user reviews, and experiences of SQLBigEyes products through the website of SQLRoad Co., Ltd.
In addition, technical inquiries and information about SQL Server are handled, so it will be helpful if you use them.
|Contact||Jungsun Kim(firstname.lastname@example.org), Principal Consultant/Director