HammerDB is a graphical open source database load testing and benchmarking tool for Linux and Windows to test databases running on any operating system. HammerDB is automated, multi-threaded and extensible with dynamic scripting support. Learn more by browsing the Frequently asked questions about HammerDB
- What is HammerDB used for?
HammerDB is a database load testing and benchmarking tool. You use HammerDB to create a tsst 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 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?
From the downoads
page on this site or directly from the HammerDB
sourceforge project . Do not download HammerDB from any
third party site or other location, there is no guarantee that
HammerDB from any other source has not been modified.
- it says "Download of Hammerora" - what is Hammerora?
Hammerora is the original project name of HammerDB. HammerDB
started initially supporting Oracle only however by popular
demand additional database support was added. The name HammerDB
was suggested given the wide range of support and this name was
adopted. Consequently the DB suffix does not imply that HammerDB
is a database but is an acknowledgement of the original ORA
extension. Download of Hammerora is what you should see for the
officially sanctioned download.
- Where can I get the checksum for downloaded files?
From the downloads page follow the link Browse for older releases of HammerDB. Navigate to to the file of your choice and click the information icon to the right of the line. Checksum information such as the following will be shown against which you can validate the file you have downloaded.
- 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
hdb-components and hdb-modules directory. Source code is also
committed into the HammerDB
GIT repository to coincide with every release where
changes between each release can be viewed. Development is not
pushed to the public GIT repository between releases. HammerDB
is also 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, 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 logo's 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?
is given through the HammerDB sourceforge project site
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. Support requests
posted on 3rd party or general websites will not receive a
response from the development team.
- 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
- 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?
currently supports Oracle, SQL Server, DB2, TimesTen, MySQL,
MariaDB, PostgreSQL, Greenplum, Postgres Plus Advanced Server,
Redis Amazon Aurora and Redshift and Trafodion SQL on Hadoop.
- Will HammerDB support my database?
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?
The main focus of HammerDB is providing a graphical environment on Windows and Linux for implementing database benchmarks.. Automation is fully supported within this graphical environment. There is currently no support for running HammerDB in an entirely command-line format without a DISPLAY and no immediate plans to do so. Some command-line functionality was provided in an extension called Autohammer with the ability to run HammerDB workloads at the command line based on XML configuration files. The design aim was to bring together HammerDB and Autohammer by generating run files from the GUI to run at the CLI. Although this design remains as a potential development task prioritization means that it is not actively under development but may do so at a future date.
- 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
- Some screenshots show a different window theme for HammerDB than I have, how do I change it?
View the section on Themes in the documentation
- Why is HammerDB not written in 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
- 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.
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 vendors 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.
- The GUI shows a slightly different TPM rate to the one reported in the final output of a timed test, why is this?
The TPM value shown in the online transaction counter is an estimated value extrapolated from the data captured across a particular time interval. By default this value is 10 seconds increasing this value to refresh at 60 seconds will report a value consistent with the reported data. Any time value for refresh of less than 60 seconds will slightly over report the TPM value with less accuracy at smaller intervals. The online transaction counter show be use as a guide to observe transactions and in particular confirm a consistent transaction rate, performance test data should be captured from the output of the timed tests.
- 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 Send
Message facility to the project administrator at the
HammerDB sourceforge project. Support requests should be
directed through the project support page. 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
- Are the
HammerDB developers available for public speaking
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
administrator as detailed above.