Home > Storage > PowerFlex > White Papers > Building Azure Arc-enabled Data Services for a SQL Managed Instance on Dell PowerFlex > HammerDB configuration
To monitor all the SQL MIs simultaneously, HammerDB CLI automation was used. This section describes how the auto build and auto drive dictionary parameters for the testing are configured.
Extensive consideration for the proper, real-life database configuration was analyzed. The goal was to achieve a balance between performance and ease of deployment, such as required from a DBaaS solution.
Table Name | Row Count |
[dbo].[customer] | 9000000 |
[dbo].[district] | 3000 |
[dbo].[history] | 9000000 |
[dbo].[item] | 100000 |
[dbo].[new_order] | 2700000 |
[dbo].[order_line] | 90002727 |
[dbo].[orders] | 9000000 |
[dbo].[stock] | 30000000 |
[dbo].[warehouse] | 300 |
Note: The above metrics gave the TPM results that are 50% of the HammerDB tests with 12x database size or 4000 warehouses (500 GB). As the Hammer DB testing with the maximum warehouses does not fit in to a true DBaaS mindset. We used a more streamlined approach that gave excellent TPM numbers.
dbset db mssqls
diset connection mssqls_server 192.168.101.xxx
diset connection mssqls_tcp true
diset connection mssqls_port 1433
diset connection mssqls_authentication sql
diset connection mssqls_odbc_driver ODBC Driver 17 for SQL Server
diset tpcc mssqls_count_ware 300
diset tpcc mssqls_num_vu 30
vuset logtotemp 1
dbset db mssqls
diset connection mssqls_server 192.168.101.xxx
diset connection mssqls_tcp true
diset connection mssqls_port 1433
diset connection mssqls_authentication sql
diset connection mssqls_odbc_driver ODBC Driver 17 for SQL Server
diset connection mssqls_keyandthink false
diset tpcc mssqls_total_iterations = 1000000
diset tpcc mssqls_driver timed
diset tpcc mssqls_rampup 1
diset tpcc mssqls_duration 9
diset tpcc mssqls_checkpoint true
diset tpcc mssqls_allwarehouse true
diset tpcc mssqls_timeprofile true
The total duration run time, per virtual user, is 11 minutes. Autopilot was configured as follows.
loadscript
puts "SEQUENCE STARTED"
foreach z { 40 80 120 160 200 } {
puts "$z VU TEST"
vuset vu $z
vucreate
puts "TCOUNTER STARTED"
tcstart
tcstatus
vurun
#Runtimer, set in seconds, must exceed rampup + duration 660 = 11 min
#Rampup 1, Duration 9, 1 extra minute to capture TPM
runtimer 660
vudestroy
after 5000
}