A new version of swingbench with a version of the TPC-C benchmark

There’s a new version of swingbench that includes the TPC-C benchmark and a tool to extract benchmark results from the database and export them as text or csv files.

My early career was periodically marked with the hyperbole that came with continuously increasing improvements in the TPC-C workloads before it became too expensive to run the benchmarks and, I would argue no longer reflected reality. Even though TPC-C is rarely used for official benchmarks and hardly anyone uses it as a yard stick on the performance of databases, I keep getting asked when I would add support for TPC-C, well that day has come.

I’ve implemented both the data generator and workload for TPC-C using the tools that most people who use swingbench will immediately feel immediately familiar with. The unit of size, and concurrency, is the number of rows in the Warehousetable. This drives the other tables rows counts i.e. 1 rows in the Warehouse table results in 10 rows in the District table. Based on my calculations about 15 rows in the Warehouse table results in 1GB of data, equivalent to a scale of 1.

The image below shows a dataset of scale 1, roughly 1GB in size.

TPC-C row count

It takes about 1-2 mins per scale unit. i.e. Scale 1 takes about 1 minute to generate. Scale 10 takes about 10 minutes.

I haven’t spent anytime optimizing the code, so there may be a few changes in the coming weeks as people point out changes that might improve the performance. If you see anything don’t hesitate to reach out to me.

I’ve also add a new results2text utility in the bin/winbin directory which will extract results files from the database and write them to stdout and/or csv files. I’ve written another blog about that here.

You can download the latest version of the code in the usual location here

2025

Swingbench 2.8

4 minute read

I’m pleased to announce the release of Swingbench 2.8. It includes A new html front end to run and review benchmark runs New tool to render results with...

results2text: Benchmark Comparisons

2 minute read

I’ve added a new tool (added in September 2025) to enable you to compare benchmark results that are generated and stored in the database (see here). The tool...

Benchmarks results stored to the database

2 minute read

I’ve just added some functionality to Swingbench that I probably should have added a long time ago. Now, every time you run a benchmark using Charbench, Swin...

Back to Top ↑

2024

Back to Top ↑

2023

New functionality for swingbench…

4 minute read

A small but significant set of changes Last weekend I updated swingbench to add a few features that I’ve had frequent requests for. One is the addition of da...

Swingbench 2.7 June 2023 Update

less than 1 minute read

A new build of Swingbench with a whole bunch of small changes mainly related to the benchmarks. Faster build time for the JSON benchmark when creating lar...

Size Makes A Difference

6 minute read

In my previous post “Going Big” I discussed the difference testing a data set of a representative size can make to the usefulness of a benchmark. Running a w...

Going Big

9 minute read

Swingbench makes it simple to generate a dataset that you can simulate transactions against. However one of the problems I commonly see is that the users of ...

Back to Top ↑

2022

Swingbench 2.7

1 minute read

Swingbench 2.7 So I finally found some time to get a new build of swingbench done. The big change is that swingbench now only supports JDK-17 and above. Now,...

A new build of DB Time Monitor

less than 1 minute read

Following quickly on the heels of the update to MonitorDB I’m releasing a new build of DBTimeMonitor. This is a simple update using the latest Oracle jdbc dr...

A new build of MonitorDB

less than 1 minute read

I’ve just updated MonitorDB. It’s never going to replace Grafana but if you need a quick solution to monitor a few values inside of the Oracle Database and y...

Making Colour work on the Command Line for Windows

less than 1 minute read

I’ll make a confession. I don’t own a Microsoft Windows Machine. I never have and probably never will. This means that I generally never get the oppertunity ...

A New Release of Swingbench

2 minute read

A New Release of Swingbench… Along with a new website, I’m rolling out a new build of Swingbench. This release is a little embarrassing for me, as it include...

A New Look

2 minute read

A New Start… Quite a lot has changed since I last posted on this website. I had just left Oracle to join Google… A year and a half later I returned to Oracle...

Back to Top ↑