About


HammerDB is the most trusted Free and open source database benchmarking application to the global database industry hosted by the TPC-Council on GitHub.

Learn why HammerDB is better than other database benchmark tools from the Percona Live '21 presentation by the project lead.

Key Features:


  • Free, open source and fully transparent enterprise grade software with no virtual user restrictions

  • Full support for Oracle Database, SQL Server, IBM Db2, MySQL, MariaDB, PostgreSQL

  • Used by all of the leading technology companies

  • All HammerDB source code included in every download and viewable on Github

  • Industry standard skill for database testers

  • Detailed and extensive documention

  • Expert Level Support

  • Full functionality and extensibility for Linux and Windows

  • Modular architecture for plug-in of new database workloads

  • Highest performance of any benchmarking and load testing tool without bottlenecks

  • Standard performance metrics across databases

  • GUI and command line usage with full automation

  • Complex Transactional and Analytic Workloads based on industry standards

  • Database insight with Metrics and performance reports

  • Bulk data generation and loads for cloud testing

  • Oracle Trace File replay

  • Control of multiple instances under one master for Virtualization and Cluster Testing

  • Wide community of HammerDB users


    Next Steps: Join the HammerDB community and contribute to the HammerDB project hosted on GitHub by the TPC.

    View Benchmarks published by Industry Leaders.

    FAQ

    • What is HammerDB used for?

    HammerDB is a database load testing and benchmarking tool. You use HammerDB to create a test schema, load it with data and simulate the workload of multiple virtual users against the database for both transactional and analytic scenarios. This workload can then be used to derive meaningful information about your environment such as hardware performance comparisons and software configurations. 

    • Who uses HammerDB?

    HammerDB is used by all leading database and technology companies. It has been downloaded hundreds of thousands of times to more than 180 countries in the world. Example usage can be seen in the the Benchmarks section from companies such as Oracle, IBM, Intel, Dell/EMC HPE, Huawei, Lenovo and hundreds more.

    • Where do I start with HammerDB?

    Firstly go to the downloads page to download HammerDB for your favorite database, then follow the installation guide and quick start guide in the documentation.

    • Where do I download HammerDB?

    The binary releases are downloadable from the downloads page on this site. Do not download the binary releases of HammerDB from any third party site or other location, there is no guarantee that HammerDB from any other source has not been modified. The source code can be downloaded from the TPC Council on GitHub

  • Where can I get the checksum for downloaded files?
  • On the HammerDB GitHub Project Releases page. Checksum information such as the following will be shown against which you can validate the file you have downloaded. More information on generating checksums is available in the documentation

    SHA1: 3ac039d7d10d05e7858278033910d162fe25ebfa
    MD5: c0c7896cefb2fe0c67c2a36e102cb4ae

    • Where is the source code for HammerDB?

    All HammerDB source code is included with every download and installation. This source code can be browsed in the src and modules directories. Source code is committed into the TPC HammerDB GIT repository where changes between each release can be viewed. HammerDB is released with pre-compiled database library extensions for Windows and Linux, the source code for these extensions is available from their respective websites.

    • How is HammerDB licensed and copyrighted?

    HammerDB is licensed under the GPL v3, which is included with every release in the file hammerdb.license and copyright notice in the file COPYRIGHT, these files must be included with any redistribution. 

    • Can I use the HammerDB Logo?

    Yes, you can use the HammerDB logo under the following conditions. The HammerDB Logo and HammerDB 'H' Logo are protected under copyright law with all rights reserved. The HammerDB logos may be reproduced in their original color form only. The logo may be reproduced without links however where the logo has a "clickable" link it must lead directly to http://www.hammerdb.com.

    • How do I get help with HammerDB?

    Support is given through the HammerDB GitHub Issues accessed through the Support page. Each support request is alerted to the developers. Assistance is given typically during European daytime hours according to workload. Every support request is answered however as support is not a paid service please allow for the level of resources to focus on support.

    • What other software does HammerDB need?

    HammerDB requires the installation of client libraries provided by the database vendor to enable connection to your database environment. Note that in the case of Oracle, SQL Server and Db2 these libraries are proprietary and not permitted for redistribution, you must therefore download and install them yourself. Client libraries are nearly always included with a full database installation and therefore do not usually require a separate install if the database has been installed on the same system as HammerDB. Only the client libraries for the database you are working with are required however this client library must match exactly the operating system and HammerDB software whether 32 or 64-bit.  You must also correctly specify the PATH environment variable for Windows and LD_LIBRARY_PATH environment variable for Linux for HammerDB to be able to find the correct library. On Windows a reboot may be required between modifying settings for the correct library to be located. If a library error is seen on running HammerDB consult the documentation on how to troubleshoot using the command line tool.

    • Where do I find published benchmarks?

    Known pulbished benchmarks and white papers using HammerDB are referenced in  the Benchmarks section of the HammerDB website. Due to the extensive number of these published benchmarks HammerDB does not approve or validate any publications and these links are shared for the database testing community to share information.

    • Can I publish my own benchmarks?

    Approval is not required for HammerDB benchmarks and no restrictions are placed on publication by HammerDB. Consequently with open source database benchmarks you are free to publish the results of any of your tests as you wish. However commercial databases often contain a clause commonly known as a "De Witt" clause that prevents the external publication of benchmarks against their database, Considerable information is available regarding these clauses and HammerDB does not offer legal guidance on compliance or otherwise.

    • What databases does HammerDB support?

    HammerDB currently supports Oracle, SQL Server, Db2, TimesTen, MySQL, MariaDB, PostgreSQL, Greenplum, Postgres Plus Advanced Server, Amazon Aurora and Redshift. HammerDB also includes deprecated workloads for Redis and Trafodion.

    • Will HammerDB support my database?

    HammerDB receives multiple requests to support additional databases. All of these requests  are considered on merit. In particular whether the client for the database is available for both Windows and Linux (support for both platforms is essential) and whether the software is freely available for download without restriction and cost to ensure that support can be provided. After these requirements have been met the potential size of the userbase is considered. HammerDB uses the db-engines website to assess popularity and it is unlikely that a database lying outside of the top 20 databases will be considered for inclusion in HammerDB.

    • Does HammerDB support NoSQL/Non-relational Databases?

    HammerDB extended support to both Redis and Trafodion SQL on Hadoop to assess the viability of supporting further NoSQL and non-relational databases. As HammerDB focuses upon workloads designed for testing relational databases, support for further NoSQL databases is not planned at the current time.

    • HammerDB is a GUI tool, is there a command-line version?

    Yes, a command-line version was introduced a version 3.0.

    • How do I use HammerDB to do a comparison of cloud database services?

    Oracle have used HammerDB to compare Oracle and Amazon Redshift databases. This functionality is included in HammerDB and available in the section Cloud Analytic Testing in the documentation

    • Why is HammerDB not written in Python?

    Python has a 'feature' called the Global Interpreter Lock or GIL - "the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython's memory management is not thread-safe


    This means that an application simulating multiple virtual users becomes serialized on a single mutex preventing scalability. Consequently Python cannot be used to build a multi-threaded load testing such as HammerDB. Other languages such as Ruby or Perl have similar restrictions with supporting large scale multi-threaded database access whereas Java for example does not support the scripted interface support essential of a testing tool. For these reasons HammerDB is not viable in Python or other languages.


    • What language is HammerDB written in and why?

    HammerDB development is done in the languages  C and TCL . Low level Native database interfaces written in C are used for all databases. TCL and TK are used to build the GUI and enable these database interfaces to be accessed by a scripting language. TCL threads are then used to simulate the virtual users. This results in a lightweight yet highly scalable load testing environment. TCL was chosen as the key language for HammerDB for three key reasons. Firstly it was designed from the ground up to interface well with C enabling native database interfaces to be used. Secondly it is scripted with a scripted interface essential for any load testing tool to allow users to modify tests and finally and it has the most complete and mature multithreading interface of all scripting languages.  In particular TCL's threading model is uniquely suited to simulating virtual users. TCL is incredibly lightweight and therefore each thread or virtual user loads their own exclusive interpreter and database interface making HammerDB non-blocking. This means that HammerDB offers linear scalability from 1 to thousands of threads (note when displaying output Windows and Linux displays are not thread safe and therefore all output is sent to the display by a single thread). At the same time all of HammerDB's interfaces are thread-safe ensuring that HammerDB remains robust and stable even when loading millions of transactions per minute. It is without doubt that the TCL based implementation unperpins HammerDBs ability to scale far beyond the capabilities of other load testing tools. 

    • What platforms does HammerDB support?

    HammerDB is developed on and supported on Linux and Windows x86 and x86-64 platforms. Both Linux and Windows are primary development platforms of equal importance.  Oracle VM VirtualBox is a key development tool used for testing databases on multiple platforms.

    • Is HammerDB different on Windows and Linux?

    No, HammerDB uses almost exactly the same code on both Windows and Linux. The only changes are to implement very minor differences in the GUI to tailor the view to Windows or Linux - however on both systems the code is identical with the differences dynamically chosen at run time. For example you can take the hdb-components directory on Windows or Linux and copy it to the other operating system and HammerDB will run the same. Other minor changes are the addition of bat files for startup on Windows and the interface to capture CPU statistics. Finally the TCL and TK engines and database interfaces use the same source code however have been compiled for the different platforms, therefore building on non Windows or Linux platforms should be possible but has not been tested.

    • Do you support building HammerDB on UNIX or Mainframe?

    HammerDB development does not have access to UNIX or Mainframe systems and therefore the opportunity to build, test and provide ongoing support for these platforms is limited. Nevertheless assistance is provided on a best endeavors basis to anyone trying to build the required packages to run on these systems. Similarly the testing of databases on non Windows or Linux platforms has not been tested but supported on a best endeavours basis. In a scenario where HammerDB does not run against these platforms it is advisable to check to see whether the feature set is different on your testing platform compared to Linux or Windows, for example Db2 for Mainframe is known to have different features to Db2 on LUW. in this case the feature set on LUW has been tested.

    • Does HammerDB implement a real TPC-C or TPC-H benchmark?

    No, this should be absolutely clear from the documentation. From v4.0 the workloads have been renamed TPROC-C and TPROC-H to make the distinction explicit. HammerDB does not implement full TPC-C (OLTP) and TPC-H (Analytics) benchmarks as the opportunity to run full simulations is incredibly limited, in particular due to the data set size required. HammerDB does not use official TPC terminology such as tpmC or QphH@Size and to do so is inaccurate.  Instead the HammerDB methodology recognizes that both TPC-C and TPC-H are incredibly well-designed benchmarks and have demonstrated a level of scalability unparalleled in the industry before or since. As the TPC publish their benchmarks at no cost to the public HammerDB takes the essence of these benchmarks and implements in an intensive way that anyone can run. Time has demonstrated that this methodology has proved remarkably accurate at predicting official TPC results at a fraction of the cost. This methodology has also proved perfectly suited to testing cloud environments.

    • Will HammerDB support TPC-E?

    Yes, HammerDB has planned support for TPC-E once there are official approved TPC-E benchmarks puilshed for the top 3 commercial databases Oracle, SQL Server and Db2. Currently only SQL Server data is available and therefore Oracle and Db2 publications are outstanding. Once these benchmarks are published and reviewed HammerDB will implement the workload. As noted previously HammerDB has proved highly accurate at simulating a methodology to bring TPC-C and TPC-H within the reach of all database users. Without official publications from key database vendors it is difficult to develop a new methodology that provides accurate comparisons. As accurate comparisons are the bedrock of load testing a lack of publications makes TPC-E support difficult. If no publications outside of SQL Server are made TPC-E support may be evaluated however due to the extensive testing and validation there are no plans to do so at the current time. .

    • What is TPM and can I compare TPM between databases?

    TPM stands for Transactions per Minute and cannot be compared between differenet databases for the OLTP test. TPM is the value displayed in the online transaction counter and at the end of a timed test as the TPM value. This value cannot be consistent between databases as different databases report different transaction rate metrics in their own online tools - for example Oracle Enterprise Manager reports user commits + user rollbacks whereas SQL Server reports Batches/sec - for consistency with the database vendors own tools HammerDB reports metrics that are the same, for example in Oracle HammerDB TPM is the same as that shown in an AWR report.  This is at the cost of using a different value that is only consistent within HammerDB. Also note that HammerDB reports all transactions occurring in the database and therefore if other workloads are taking place these will be shown in the TPM figure as well. For consistency across databases see NOPM.

    • What is NOPM and can I compare NOPM between databases?

    NOPM stands for New Orders per Minute and is a database independent value extracted from the schema itself. For this reason NOPM reported at the end of a timed test is the only way to compare OLTP performance across different database platforms.

    • Why is TPM shown in the transaction counter but not NOPM?

    As detailed TPM is extracted from the database vendor's transaction data, however NOPM is extracted from the schema. For this reason TPM can be accessed from in-memory read-only data without impacting any test that is running. NOPM however can only be extracted from the schema and doing so on a regular basis has the potential to impact the tests with different databases responding in different ways with locking etc, for this reason only TPM is reported to minimise the impact that reporting has on testing.

    • My transaction rate in the online transaction counter is not flat why is this?

    The online transaction counter reports the transaction rate extracted from the database. With an optimal configuration and once most of the data is cached in memory the transaction rate will be consistent and the transaction counter flat. If the reported transaction rate is not flat troubleshoot with database diagnostic tools to pinpoint the issue with your configuration.

    • Can HammerDB be used for automated software testing?

    Yes HammerDB includes an Autopilot feature that enables running multiple load tests in sequence with different numbers of virtual users. This feature is fully automated enabling lights-out testing to occur over many hours.

    • How do you contact the project team?

    The HammerDB project team can be contacted using the HammerDB GitHub site.Support requests should be also be directed through this sire. Not only is the project team alerted immediately but other users benefit from being able to see previously raised and resolved support issues reducing the support effort and ensuring more time is spent on development.

    • Are the HammerDB developers available for public speaking engagements?

    Yes, the developers have spoken at numerous technology events worldwide such as Oracle Openworld, Linuxcon, Microsoft SQL Relay and HPE TES. For further information contact the project team through the gitHub site.

    Updated Mar 2023  •