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...
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 allows you to choose which results to compare and outputs the results in text or csv. This makes it far easier to analyze multiple runs without juggling local XML files.
What this gives you:
Some examples of the types of commands you might want to use
# Compare last 3 runs (default)
./results2text -cs //host/service -u USER -p PASS
# List latest runs (ID, Time, Name)
./results2text -cs //host/service -u USER -p PASS --list
# Compare specific IDs
./results2text -cs //host/service -u USER -p PASS--ids 122,121,102
# Export CSV (overview.csv, dml.csv, transactions.csv, waits.csv)
./results2text -cs //host/service -u USER -p PASS --last 4 --csv-dir out --csv-prefix tpcc_
Tip: Colours are enabled by default; turn them off with --no-color or when piping output to files.
-cs or --connectstring Oracle DSN, e.g. //host:1521/service-u or--user Database username-p or--password Database password-lr or --last N Compare/List last N runs (default: 3)-i or--ids 1,2,3 Compare explicit run IDs (overrides --last)-nl or--name-like TEXT Filter by recording name-l or --list List runs and exit-tw or --top-waits N Number of top wait events shown (default: 10)-tx or --tx "Name1,Name2" Restrict transaction comparison to these names-nc or --no-color Disable terminal colour-cd or -cs or --csv-dir DIR Write CSV outputs to DIR-cp or --csv-prefix PREFIX Optional CSV file prefix (default: results_)-t or --table NAME Results table name (default: BENCHMARK_RESULTS)-o or --owner SCHEMA Optional schema owner prefixThe following shows the output of probably the most common use of the command. By default it will fetch the last 3 results from the database to compare.

Colours help call out “hot” percentages (e.g., red for >= 20%, yellow for >= 5%, green otherwise).
Add --csv-dir out to write four files:
overview.csv – Summary metrics by run.dml.csv – Select/Insert/Update/Delete/Commit/Rollback totals by run.transactions.csv – Per-transaction counts and percentiles across runs.waits.csv – Top-N wait events across runs with “% time / waits / time”.Whilst I haven’t added all of the metrics to the output I have included a python version of this program in the utils directory which can be modified to included any missing metrics you wish to include.
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...