Bench Testing JDBC Drivers

JBench is a Java and JDBC based adaptations of the industry standard TPC-A benchmarks. This program helps you compare the performance of OpenLink?'s Virtuoso against other backend database engines, it also helps you to compare the performance of various JDBC Drivers connecting to any JDBC compliant backend database.


1. Go to the OpenLink Data Access Drivers "Start Menu" program group and then follow the JDBC Samples-->Jbench (for JDK1.1 1.2 or 1.3) menu path, depending on the JVM you have installed. This will execute a DOS batch program that initializes the JBench application.

Figure: 1


2. The follow the File-->Connect menu path to make your initial connection. You will need to identify your JDBC Driver (by providing appropriate Driver Name values in the JDBC Driver field) and then provide a valid JDBC URL for your specific JDBC Driver.

Figure: 2


3. Select the open JDBC connection that you wish to test.

4. Follow the TPC-A-->Load Tables menu path to prepare your database for the TPC-A benchmark, select a database schema type that matches the database engine that you are benchmarking. If your database isn't listed ANSI should suffice (as long as this is an ANSI SQL compliant database).

Figure: 3


5. Follow the TPC-A-->Load Procedures menu path to Load the TPC-A stored procedures.

6. Now that all the benchmark data and stored procedures have been loaded into your database, follow the TPC-A-->Run Benchmark menu path and then configure your actual benchmark session parameters:

The benchmark parameters fall into 4 categories, Bench execution mode, Run Options, SQL Options, and Execution Options.

Figure: 4


Bench execution mode:

These setting allow you to configure the threads used for the benchmark.

Decide on a single or multiple threads test.

No. Threads

this is the number of concurrent threads to be used during the benchmark.

Run Options:

These setting allow you to configure the duration related aspects of this benchmark program.

No. runs

this controls how many iterations of the benchmarks you actually run (the default is 100 benchmark iterations).

Duration (mins.)

this is the duration in minutes of each benchmark run.

SQL Options:

These setting allow you to configure how your benchmark's SQL instructions are actually handled.

ExecDirect with SQL Text

this means that no form of repetitive SQL execution optimization is being applied (SQL statements are prepared and executed repetitively)

Prepare/Execute Bound Params

this means that the Parameter Binding SQL execution optimization is being applied (SQL is prepared once but executed many times without the overhead of re-preparing statements prior to execution)

Use Stored Procedures

this means that the Stored Procedure SQL optimization is being applied (benchmark instructions are stored within database being benchmarked)

Execution Options:

These setting allow you to configure the tone of your benchmark, for instance it could have Transaction scoping and a mix of record retrieval queries, or it could simply be input and update intensive with a minimal amount of record retrieval queries (the case when the 100 row query checkbox is unchecked a typical OLTP scenario)

Use Transactions

make the benchmark use transaction control (instructions are scoped to transaction blocks)

Do 100 row Query

perform a simulation of a 100 record retrieval as part of the benchmark activity.

7. Press Run or Run All to start your TPC-A benchmark. The Run All will sequence through all SQL and Execution combinations, so it will take much longer.

8. Follow the TPC-A-->Cleanup menu path to clean up your database so that you can then run other benchmarks.