HammerDB Documentation


Table of Contents

1. Installation and Configuration
1. Release Notes
1.1. HammerDB v6.0 Overview
1.2. CI and Pipeline Automation
1.3. Metrics, I/O Metrics and Active Session History
1.4. Result Upload, Sharing and Metadata Capture
1.5. Performance Profiles and Timing Percentiles
1.6. Web Service and SCGI Support
1.7. Remove HammerDB v5.0 Persistent Configuration Files Before Installation
2. Linux Wayland Display Server Has Slow Refresh on Ubuntu
3. Known Third-Party Driver Issues
3.1. Oracle on Windows: Oracle Bug 12733000 OCIStmtRelease Crashes or Hangs if Called After Freeing the Service Context Handle
3.2. SQL Server on Linux: unixODBC Handle Validation May Become a Performance Bottleneck
3.3. MySQL on Linux: C++ Runtime Library Load Issue
3.4. Db2 Driver is Not Included in the HammerDB Docker Image or Build
4. Linux Xft Font and Cairo Graphics Pre-Installation Requirements
5. Documentation License, Copyright and Contribution
6. HammerDB v6.0 New Features
6.1. Overview
6.2. CI and Pipeline Automation
6.3. Metrics and Active Session History
6.4. Result Upload, Sharing and Metadata Capture
6.5. Performance Profiles and Timing Percentiles
6.6. Web Service and Automation Improvements
6.7. Pull Request Summary
7. Test Matrix
8. Downloading HammerDB
9. Checksum Verification
10. Installing and Starting HammerDB on Windows
10.1. Self-Extracting Installer
10.2. tar.gz File
10.3. Starting HammerDB
10.4. Uninstalling HammerDB
11. Installing and Starting HammerDB on Linux
11.1. Install and Uninstall Red Hat .rpm file
11.2. Install and Uninstall Ubuntu .deb file
11.3. Install and Uninstall the Tar.gz File
11.4. Starting HammerDB
12. HammerDB Docker Container Build & Run
12.1. Docker Image
12.2. Dockerfile Download and Installation
12.3. Building the HammerDB Container
12.4. Running the Container
12.4.1. IBM Client Install
12.5. Connecting the Container to the Network
13. HammerDB CI and Pipeline Automation
13.1. CI Test Environment Layout
13.2. HammerDB CI Commands
13.3. Initialise the CI Environment with cifix
13.4. Review and Update CI Configuration
13.5. Start the CI Listener
13.6. Start the HammerDB Web Service
13.7. Running a Benchmark from the Pipelines Page
13.8. Jobs and Reports Created by CI
13.9. Running Profiles and Comparisons
13.10. Running Pipelines in the CLI
13.11. Running Pipelines with a Webhook
14. Verifying the Installation of Database Client Libraries
14.1. Oracle Client
14.2. SQL Server
14.3. Db2
14.4. MySQL
14.5. MariaDB
14.6. PostgreSQL
15. XML & Persistent Configuration
16. Themes and Scalable Graphics
17. Building HammerDB from Source
17.1. Compiler & Dependency Install on Linux
17.2. Compiler & Dependency Install on Windows
17.3. Download HammerDB Source
17.4. Running the Build
17.5. HammerDB License
2. Quick Start
1. Building the Schema
2. Checking the Schema
3. Run a Test Workload
4. Run a Timed Workload
5. Using the Transaction Counter
6. Browsing Results
7. Deleting the Schema
3. Introduction to OLTP Testing (TPROC-C derived from TPC-C)
1. What is a Transactional Workload
2. What is the TPC and the TPROC-C workload derived from TPC-C?
3. HammerDB TPROC-C workload
4. Comparing HammerDB results
5. Understanding the TPROC-C workload derived from TPC-C
6. TPROC-C key similarities and differences from TPC-C
7. How many warehouses to create for the TPROC-C test
8. Publishing database performance results
4. How to Run a TPROC-C Workload
1. Test Network Configuration
1.1. SUT Database Server Configuration
1.2. Load Generation Server Configuration
1.3. CPU Single-Threaded Performance Calibration
2. Installation and Configuration
2.1. Oracle
2.2. Microsoft SQL Server
2.3. Db2
2.4. MySQL
2.5. MariaDB
2.6. PostgreSQL
3. Configuring Schema Build Options
3.1. Oracle Schema Build Options
3.2. Microsoft SQL Server Schema Build Options
3.2.1. In-Memory Optimized Tables
3.2.2. Build Options
3.3. Db2 Schema Build Options
3.4. MySQL Schema Build Options
3.5. MariaDB Schema Build Options
3.6. PostgreSQL Schema Build Options
4. Creating the Schema
5. Checking the Schema
6. Deleting the Schema
6.1. Deleting or Verifying the Oracle Schema
6.2. Deleting or Verifying the SQL Server Schema and In-memory Schema
6.3. Deleting or Verifying the Db2 Schema
6.4. Deleting or Verifying the MySQL Schema
6.5. Deleting or Verifying the MariaDB Schema
6.6. Deleting or Verifying the PostgreSQL Schema
7. Configuring Driver Script options
8. Advanced Driver Script Options
8.1. Use All Warehouses for increased I/O
8.2. Time Profile for measuring Response Times
8.3. Fixed Throughput and Scaling to thousands of sessions
8.4. Cluster Connect Pool for Cluster Testing
8.5. Step Testing with Variable Load
9. Additional Driver Script Options for Stored Procedures and Server Side Reports: PostgreSQL, MySQL, MariaDB, Oracle, Db2 and EnterpriseDB PostgreSQL
9.1. PostgreSQL Stored Procedures
9.2. MySQL Prepare Statements
9.3. MariaDB Prepare Statements
9.4. No Stored Procedures Option for MySQL and MariaDB
9.5. MariaDB Purge when complete
9.6. Oracle AWR Reports
9.7. Db2 MONREPORT
10. Loading the Driver Script
11. Configure Virtual Users
12. Create and Run Virtual Users
5. Autopilot for Automated Testing
1. Configure and Run Autopilot
2. Autopilot Troubleshooting
3. Extending Autopilot to start automatically
6. Transactions
1. Oracle Transaction Counter
2. SQL Server Transaction Counter
3. Db2 Transaction Counter
4. MySQL Transaction Counter
5. MariaDB Transaction Counter
6. PostgreSQL Transaction Counter
7. Running the Transaction Counter
8. Logging Transaction Counter Output
7. System Discovery, CPU, I/O and Database Metrics
1. Start the Agent Manually
2. Configure Metrics Manually
3. Configure Metrics Automatically
4. Monitor Metrics
5. Viewing Job Metrics Data
6. Oracle Database Metrics - Active Session History
7. PostgreSQL Database Metrics - Active Session History
8. MySQL and MariaDB Database Metrics
8. Remote Primary and Replica Modes
1. Primary Mode
2. Replica Mode
3. Primary Distribution
9. Command Line Interface (CLI)
1. Start the CLI
2. Start the CLI in Python
3. CLI Commands
3.1. CLI commands in Python
4. Configure Schema Build
5. Building the Schema
6. Configure Driver
7. Configure Virtual Users
8. Run the workload
9. CLI Scripting in Tcl
10. CLI Scripting in Python
11. CLI Example Scripts Driven by Bash and PowerShell
12. CLI Jobs Interface
10. Viewing Jobs with the Web Service Interface (WS)
1. Web Service Configuration
2. Starting and Stopping the Web Service
3. Jobs Home Page
4. Benchmark Report
5. Submitting a Benchmark Report
6. Charts, Timing, Metrics and Profiles
7. Pipelines from the Web Service
8. Using Web Service Output for Automation
11. Introduction to Analytic Testing (TPROC-H derived from TPC-H) and Cloud Queries
1. What is TPROC-H derived from TPC-H?
2. Running the Power and Throughput Test and Calculating the Geometric Mean
3. Choosing a Database for running TPROC-H workloads
3.1. Oracle
3.2. Microsoft SQL Server
3.3. Db2
3.4. PostgreSQL
3.5. MySQL
3.6. MariaDB
4. Benchmarking Database Cloud Services
4.1. Redshift Cloud Analytic Workload
12. How to Run an Analytic Workload
1. SUT Database Server Configuration
2. Installation and Configuration
2.1. Oracle
2.2. SQL Server
2.3. Db2
2.4. PostgreSQL
2.5. MySQL
2.6. MariaDB
3. Configuring Schema Build Options
3.1. Oracle Schema Build Options
3.2. SQL Server Schema Build Options
3.3. Db2 Schema Build Options
3.4. MySQL Schema Build Options
3.5. MariaDB Schema Build Options
3.6. PostgreSQL Schema Build Options
4. Creating the Schema
4.1. Verifying and Backing-Up the Oracle Schema
4.2. Verifying and Backing Up the SQL Server Schema
4.3. Verifying and Backing up the Db2 Schema
4.4. Verifying and Backing up the MySQL Schema
4.5. Verifying and Backing up the MariaDB Schema
4.6. Verifying and Backing up the PostgreSQL Schema
5. Checking the Schema
6. Configuring Driver Script Options
7. Loading the Driver Script
8. Configure Virtual Users
9. Run a Single Virtual User Test
9.1. Changing the Query Order
10. Run a Power Test
11. Run a Throughput Test
11.1. SQL Server Snapshot Isolation
12. Calculate the Geometric Mean
13. Generating and Loading Bulk Datasets
1. Generate the Dataset
2. Generate the Dataset with the CLI
3. Generate the template database
3.1. Capture and run the table creation DDL
3.1.1. Oracle
3.1.2. SQL Server
3.1.3. Db2
3.1.4. MySQL
3.1.5. PostgreSQL/Amazon Redshift
4. Run the bulk data load
4.1. Oracle
4.2. SQL Server
4.3. Db2
4.4. MySQL
4.5. MariaDB
4.6. PostgreSQL/Amazon Redshift
14. Oracle Trace File Replay
1. Generating Trace Files
2. Converting Oracle Trace Files
3. Replaying Oracle Trace Files
4. Capturing Errors from Trace File Workloads
15. GNU Free Documentation License

List of Figures

1.1. Verified Publisher
1.2. HammerDB Version
1.3. GPL v3 License
1.4. Choose the Installation Directory
1.5. Copying Files
1.6. Installing
1.7. Complete the Setup Wizard
1.8. HammerDB Started
1.9. hammerdb Executable
1.10. Uninstall
1.11. Uninstall Database Files
1.12. HammerDB Docker Hub
1.13. Docker File Download
1.14. Docker Build
1.15. Successfully built
1.16. Docker Run
1.17. IBM Client
1.18. HammerDB Web Service Jobs Page
1.19. HammerDB Web Service Pipelines Page
1.20. Pipeline Benchmark Options
1.21. Pipeline Activity
1.22. Detailed CI Pipeline Output
1.23. Jobs Created by a CI Pipeline
1.24. Job Detail Links
1.25. Benchmark Configuration and Result Data
1.26. Benchmark Result and Profile Summary
1.27. Transaction Count and Profile Charts
1.28. Metrics Charts
1.29. Benchmark Report Disclaimer and Links
1.30. Profile and Compare Pipeline Completion
1.31. Environment Variables
1.32. Path environment variable
1.33. XML Configuration Files
1.34. Database Files
1.35. Modified Default Database
1.36. Scaling Graphics
1.37. Dark Breeze Theme
1.38. Light Breeze Theme
1.39. Switch Theme
1.40. Download Source
1.41. Windows build
2.1. Benchmark Options
2.2. Build Options Connections
2.3. Build Options Settings
2.4. Create Schema
2.5. Building Schema
2.6. Schema Build Complete
2.7. Schema Check
2.8. Driver Connection Options
2.9. Driver Script Loaded
2.10. Virtual User Options
2.11. Virtual Users Created
2.12. Virtual Users Running
2.13. Driver Options
2.14. Virtual Users
2.15. Virtual User and Monitor Created
2.16. Timed Workload Running
2.17. Test Result
2.18. Transaction Counter
2.19. Job Options
2.20. Browse Jobs
2.21. Job Result
2.22. Delete Schema
2.23. Confirm Deletion
2.24. Schema deleted
3.1. Performance Profile
3.2. TPROC-C Schema
4.1. ODBC Drivers
4.2. Benchmark Options
4.3. Schema Build Options
4.4. Oracle Build Options Connections
4.5. Oracle Build Options Settings
4.6. SQL Server Build Connection Options
4.7. SQL Server Build Settings Options
4.8. Db2 Build Connection Options
4.9. Db2 Build Settings Options
4.10. MySQL Build Connection Options
4.11. MySQL Build Settings Options
4.12. MariaDB Build Connection Options
4.13. MariaDB Build Settings Options
4.14. PostgreSQL Build Connection Options
4.15. PostgreSQL Build Settings Options
4.16. Build
4.17. Create Schema
4.18. Schema Build Start
4.19. Schema Complete
4.20. Check TPROC-C Schema
4.21. TPROC-C Schema Check Complete
4.22. Delete Schema Option
4.23. Delete Schema Dialog
4.24. Schema Deleted
4.25. SQL Server in-Memory
4.26. In-memory report
4.27. Driver Script Options
4.28. Driver Script Options
4.29. Use All Warehouses Option
4.30. Use All Warehouses
4.31. Time Profile
4.32. Graphical Response Times
4.33. Asynchronous Options
4.34. Session Count
4.35. Logging In Asynchronous Clients
4.36. Asynchronous Workload Running
4.37. Steady State
4.38. Asynchronous Workload Complete
4.39. Connect Pooling
4.40. Cluster Connect Pool
4.41. Connections Comment
4.42. Step Test
4.43. Step Load
4.44. No Stored Procedures Option
4.45. Purge when complete
4.46. Driver Script Loaded
4.47. Virtual User Options
4.48. Virtual User
4.49. Virtual Users Create
4.50. Virtual Users Running
4.51. Virtual Users Complete
5.1. Autopilot Options
5.2. Autopilot Options
5.3. Run Autopilot
5.4. Autopilot Running
5.5. Autopilot Continuing
5.6. Autopilot Complete
5.7. Autopilot Performance Profile
5.8. Performance Profile
5.9. Autopilot Error
6.1. Transaction Counter Options
6.2. Oracle TX Counter Options
6.3. SQL Server TX Counter Options
6.4. Db2 TX Counter Options
6.5. MySQL TX Counter Options
6.6. MariaDB TX Counter Options
6.7. PostgreSQL TX Counter Options
6.8. Start Transaction Counter
6.9. Transaction Counter Starting
6.10. Transaction Counter Running
6.11. Standalone Transaction Counter
6.12. Transaction Counter Window Resize
6.13. Log Transaction Counter Output
7.1. agent.bat
7.2. Windows agent
7.3. Metrics Options
7.4. Agent Options
7.5. Display
7.6. Agent connected
7.7. Display connected
7.8. Metrics Agent Options
7.9. Metrics Display
7.10. Metrics running
7.11. Large Core count
7.12. Metrics Data in Job Menu
7.13. System report
7.14. Jobs Metrics Data
7.15. Oracle Metrics Options
7.16. Oracle Metrics Display Linux
7.17. Oracle Metrics Display Windows
7.18. Oracle Metrics Event
7.19. Oracle Database CPU Metrics
7.20. PostgreSQL Metrics Options
7.21. PostgreSQL Metrics Display Linux
7.22. PostgreSQL Metrics Display Expanded
7.23. PostgreSQL Metrics Event
7.24. MySQL and MariaDB Metrics Options
8.1. Mode
8.2. Mode Options
8.3. Mode Options Select
8.4. Primary Mode Select
8.5. Mode Confirmation
8.6. Mode Active
8.7. Replica Mode
8.8. Primary Distribution
8.9. Operating in Replica Mode
8.10. Replica Mode terminated
8.11. Primary and Replica Jobs
9.1. hammerdbcli.bat
9.2. CLI Windows
9.3. CLI Python
10.1. Jobs Option
10.2. Jobs and Web Service Configuration
10.3. Web Service Jobs Home Page
10.4. Job Detail
10.5. Benchmark Report Page
10.6. Benchmark Report Save and Share Links
10.7. Benchmark Report Save and Share Links
10.8. Downloaded HammerDB Result Artifact
10.9. Submit HammerDB Result Artifact Page
10.10. Validated HammerDB Result Artifact
10.11. GitHub Result Artifact Editor
10.12. Propose GitHub Changes
10.13. HammerDB Result Artifacts Page
10.14. Published Result Summary
10.15. Published Result Charts
10.16. Benchmark Report Charts
10.17. Performance Profile Page
10.18. Web Service Pipelines Page
11.1. TPROC-H Schema.
11.2. Power Query
11.3. Oracle TPROC-H Options
11.4. Clustered Columnstore
11.5. Db2 Organize By
11.6. PostgreSQL TPROC-H
11.7. MySQL TPROC-H
11.8. MariaDB TPROC-H
11.9. Redshift console
11.10. Create Security Group
12.1. Max Degree of Parallelism
12.2. Benchmark Options
12.3. TPROC-H Schema Build Options
12.4. Oracle TPROC-H Build Connection Options
12.5. Oracle TPROC-H Build Settings Options
12.6. SQL Server TPROC-H Build Connection Options
12.7. SQL Server TPROC-H Settings Options
12.8. Db2 TPROC-H Build Connection Options
12.9. Db2 TPROC-H Build Settings Options
12.10. MySQL TPROC-H Build Connection Options
12.11. MySQL TPROC-H Build Settings Options
12.12. MariaDB TPROC-H Build Connection Options
12.13. MariaDB TPROC-H Settings Connection Options
12.14. PostgreSQL TPROC-H Build Connection Options
12.15. PostgreSQL TPROC-H Build Settings Options
12.16. Build TPROC-H Schema
12.17. Create Schema
12.18. Schema Build Start
12.19. Schema Build Complete
12.20. Backup SQL Server
12.21. Backup successful
12.22. Restore SQL Server
12.23. Restore successful
12.24. Check TPROC-H Schema
12.25. TPROC-H Schema Check Completed
12.26. Driver Script Options
12.27. TPROC-H Driver Settings Options
12.28. Driver Script Loaded
12.29. Virtual User Options
12.30. Virtual User Options
12.31. Run a single Virtual User Test
12.32. Single Virtual User Complete
12.33. Power Test Options
12.34. Power Test
12.35. Power Test Complete
12.36. Throughput Test
12.37. Enable Snapshot Isolation
12.38. Throughput test complete
13.1. Data Directory
13.2. Benchmark Options
13.3. Datagen Options
13.4. Data Generation Options
13.5. Multiple files
13.6. Generate
13.7. Generate Data Confirmation
13.8. Generating Data
13.9. Schema Generated
13.10. Pipe Delimited Data
13.11. SQL Server Create Table
13.12. SQL Server Bulk Insert
13.13. Upload to S3
13.14. Postgres User Access Keys
13.15. S3 Permissions
14.1. Doc 39817.1
14.2. Open File
14.3. Trace Loaded
14.4. Convert Trace
14.5. Trace Converted
14.6. Run Trace
14.7. Multiuser Test

List of Tables

1.1. OS Test Matrix
1.2. Database Test Matrix
1.3. HammerDB CI Commands
1.4. third-party libraries
4.1. Oracle Options
4.2. SQL Server Build Options
4.3. Db2 Build Options
4.4. MySQL Build Options
4.5. MariaDB Build Options
4.6. PostgreSQL Build Options
4.7. Driver Script Options
4.8. Xt Time Profile
4.9. Virtual User Options
5.1. Autopilot Options
9.1. Python version dependency
9.2. CLI commands
9.3. Jobs command
11.1. Query Streams and Scale Factors
12.1. Oracle Build Options
12.2. SQL Server Build Options
12.3. Db2 Build Options
12.4. MySQL Build Options
12.5. MariaDB Build Options
12.6. PostgreSQL Build Options
12.7. Driver Script Options
12.8. Virtual User Options