Skip to content

Commit 22283ce

Browse files
MaximilianJahnsMaximilianJahns
authored andcommitted
Add MSSQL Server TPC-C benchmark support
1 parent 281e5e2 commit 22283ce

5 files changed

Lines changed: 139 additions & 5 deletions

File tree

compose.yml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
services:
22
postgres:
3-
image: postgres:18.1-trixie
3+
image: postgres:18.3-trixie
44
container_name: postgres_container
55
environment:
66
POSTGRES_USER: postgres
@@ -9,7 +9,7 @@ services:
99
ports:
1010
- "5432:5432"
1111
mariadb:
12-
image: mariadb:12.1.2-noble
12+
image: mariadb:12.2.2-noble
1313
container_name: mariadb_container
1414
environment:
1515
MYSQL_ROOT_PASSWORD: maria
@@ -21,16 +21,21 @@ services:
2121
mysql:
2222
image: mysql:9.5.0-oraclelinux9
2323
container_name: mysql_container
24-
command: --default-authentication-plugin=mysql_native_password
2524
environment:
2625
MYSQL_ROOT_PASSWORD: mysql
2726
MYSQL_DATABASE: mysql
2827
MYSQL_USER: mysql
2928
MYSQL_PASSWORD: mysql
3029
ports:
3130
- "3307:3306"
32-
33-
3431
hammerdb:
3532
image: tpcorg/hammerdb:latest
3633
container_name: hammerdb_container
34+
mssql:
35+
image: mcr.microsoft.com/mssql/server:2022-latest
36+
container_name: mssql_container
37+
environment:
38+
ACCEPT_EULA: Y
39+
MSSQL_SA_PASSWORD: Mssql1234!
40+
ports:
41+
- "1433:1433"

mssql/mssql_tprocc_buildschema.tcl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/tclsh
2+
puts "SETTING CONFIGURATION"
3+
dbset db mssqls
4+
dbset bm TPC-C
5+
diset connection mssqls_tcp true
6+
diset connection mssqls_port 1433
7+
diset connection mssqls_azure false
8+
diset connection mssqls_encrypt_connection true
9+
diset connection mssqls_trust_server_cert true
10+
diset connection mssqls_linux_server mssql_container
11+
diset connection mssqls_uid sa
12+
diset connection mssqls_pass Mssql1234!
13+
diset connection mssqls_linux_authent sql
14+
diset connection mssqls_linux_odbc {ODBC Driver 18 for SQL Server}
15+
set vu [ numberOfCPUs ]
16+
set warehouse [ expr {$vu * 5} ]
17+
diset tpcc mssqls_count_ware $warehouse
18+
diset tpcc mssqls_num_vu $vu
19+
diset tpcc mssqls_dbase tpcc
20+
diset tpcc mssqls_raiseerror true
21+
puts "SCHEMA BUILD STARTED"
22+
buildschema
23+
puts "SCHEMA BUILD COMPLETED"
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/tclsh
2+
puts "SETTING CONFIGURATION"
3+
dbset db mssqls
4+
dbset bm TPC-C
5+
diset connection mssqls_tcp true
6+
diset connection mssqls_port 1433
7+
diset connection mssqls_azure false
8+
diset connection mssqls_encrypt_connection true
9+
diset connection mssqls_trust_server_cert true
10+
diset connection mssqls_linux_server mssql_container
11+
diset connection mssqls_uid sa
12+
diset connection mssqls_pass Mssql1234!
13+
diset connection mssqls_linux_authent sql
14+
diset connection mssqls_linux_odbc {ODBC Driver 18 for SQL Server}
15+
diset tpcc mssqls_dbase tpcc
16+
diset tpcc mssqls_raiseerror true
17+
puts "DROP SCHEMA STARTED"
18+
deleteschema
19+
puts "DROP SCHEMA COMPLETED"

mssql/mssql_tprocc_run.tcl

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/tclsh
2+
puts "SETTING CONFIGURATION"
3+
dbset db mssqls
4+
dbset bm TPC-C
5+
diset connection mssqls_tcp true
6+
diset connection mssqls_port 1433
7+
diset connection mssqls_azure false
8+
diset connection mssqls_encrypt_connection true
9+
diset connection mssqls_trust_server_cert true
10+
diset connection mssqls_linux_server mssql_container
11+
diset connection mssqls_uid sa
12+
diset connection mssqls_pass Mssql1234!
13+
diset connection mssqls_linux_authent sql
14+
diset connection mssqls_linux_odbc {ODBC Driver 18 for SQL Server}
15+
diset tpcc mssqls_dbase tpcc
16+
diset tpcc mssqls_driver timed
17+
diset tpcc mssqls_rampup 2
18+
diset tpcc mssqls_duration 5
19+
diset tpcc mssqls_allwarehouse true
20+
diset tpcc mssqls_timeprofile true
21+
diset tpcc mssqls_raiseerror true
22+
loadscript
23+
puts "TEST STARTED"
24+
vuset vu vcpu
25+
vucreate
26+
tcstart
27+
tcstatus
28+
set jobid [ vurun ]
29+
vudestroy
30+
tcstop
31+
puts "TEST COMPLETE"
32+
set of [ open /tmp/mssql_tprocc w ]
33+
puts $of $jobid
34+
close $of

usage_scenario_mssql.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
name: HammerDB MSSQL benchmark
3+
author: Max Jahns
4+
description: Benchmarks SQL Server with HammerDB using TPC-C
5+
compose-file: !include compose.yml
6+
sci:
7+
R_d: TPC-C SQL-op
8+
services:
9+
postgres:
10+
mariadb:
11+
mysql:
12+
cockroachdb:
13+
oracle:
14+
hammerdb:
15+
depends_on:
16+
mssql:
17+
condition: service_started
18+
flow:
19+
- name: Wait for SQL Server
20+
container: hammerdb_container
21+
commands:
22+
- type: console
23+
note: Waiting for SQL Server to be ready
24+
command: sleep 30
25+
shell: sh
26+
log-stdout: true
27+
- name: Build Warehouses
28+
container: hammerdb_container
29+
commands:
30+
- type: console
31+
note: RUN HAMMERDB BUILD
32+
command: ./hammerdbcli auto /tmp/repo/mssql/mssql_tprocc_buildschema.tcl | tee /dev/stderr | awk '/System achieved [0-9]+ NOPM/ { match($0, /System achieved [0-9]+ NOPM/); printf("GMT_SCI_R=%s\n", substr($0, RSTART+16, RLENGTH-21)) }'
33+
shell: sh
34+
log-stdout: true
35+
read-sci-stdout: true
36+
- name: Query Warehouses
37+
container: hammerdb_container
38+
commands:
39+
- type: console
40+
note: RUN HAMMERDB RUN
41+
command: ./hammerdbcli auto /tmp/repo/mssql/mssql_tprocc_run.tcl | tee /dev/stderr | awk '/System achieved [0-9]+ NOPM/ { match($0, /System achieved [0-9]+ NOPM/); printf("GMT_SCI_R=%s\n", substr($0, RSTART+16, RLENGTH-21)) }'
42+
shell: sh
43+
log-stdout: true
44+
read-sci-stdout: true
45+
- name: Drop Warehouses
46+
container: hammerdb_container
47+
commands:
48+
- type: console
49+
note: RUN HAMMERDB DROP
50+
command: ./hammerdbcli auto /tmp/repo/mssql/mssql_tprocc_deleteschema.tcl | tee /dev/stderr | awk '/System achieved [0-9]+ NOPM/ { match($0, /System achieved [0-9]+ NOPM/); printf("GMT_SCI_R=%s\n", substr($0, RSTART+16, RLENGTH-21)) }'
51+
shell: sh
52+
log-stdout: true
53+
read-sci-stdout: true

0 commit comments

Comments
 (0)