Swingbench 2.8
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...
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.

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
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...
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...
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 cs...
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...
I know it’s been a while since we’ve had a swingbench update. Thats mainly because of work commitments and “life”. Thats not to say there hasn’t been work go...
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...
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...
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...
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 ...
To celebrate the new release of “Oracle Database Free 23c : Developer Release” I’m releasing a new build of swingbench. This build includes a new “Movie Stre...
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,...
Hybrid Partitioned tables continues to be one of my favorite features of Oracle Database 19c and they’ve gotten better over time as we’ve introduced new feat...
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...
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...
This short blog isn’t about best practices when conducting benchmarks. I think there are plenty of formal papers on the subject available with just a quick G...
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… 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 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...