<docbook><section><title>BenchTestingJDBCDrivers</title><bridgehead class="http://www.w3.org/1999/xhtml:h3">Bench Testing JDBC Drivers</bridgehead>
<para>JBench is a Java and JDBC based adaptations of the industry standard TPC-A benchmarks.
 This program helps you compare the performance of <ulink url="OpenLink">OpenLink</ulink>&#39;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.</para><para> 1.
 Go to the OpenLink Data Access Drivers &quot;Start Menu&quot; program group and then follow the JDBC Samples--&gt;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.</para><para>Figure: 1   <figure><graphic fileref="BenchTestingJDBCDrivers/JBENCH1.png" /></figure></para><para>2.
 The follow the File--&gt;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.</para><para>Figure: 2   <figure><graphic fileref="BenchTestingJDBCDrivers/JBENCH2.png" /></figure></para><para>3.
 Select the open JDBC connection that you wish to test.</para><para>4.
 Follow the TPC-A--&gt;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&#39;t listed ANSI should suffice (as long as this is an ANSI SQL compliant database).</para><para>Figure: 3   <figure><graphic fileref="BenchTestingJDBCDrivers/JBENCH3.png" /></figure></para><para>5.
 Follow the TPC-A--&gt;Load Procedures menu path to Load the TPC-A stored procedures.</para><para>6.
 Now that all the benchmark data and stored procedures have been loaded into your database, follow the TPC-A--&gt;Run Benchmark menu path and then configure your actual benchmark session parameters:</para><para>The benchmark parameters fall into 4 categories, Bench execution mode, Run Options, SQL Options, and Execution Options.</para><para>Figure: 4   <figure><graphic fileref="BenchTestingJDBCDrivers/JBENCH4.png" /></figure></para><bridgehead class="http://www.w3.org/1999/xhtml:h4">Bench execution mode:</bridgehead>
<para>These setting allow you to configure the threads used for the benchmark.</para><para>Decide on a single or multiple threads test.</para><para>No.
 Threads</para><para>this is the number of concurrent threads to be used during the benchmark.</para><bridgehead class="http://www.w3.org/1999/xhtml:h4">Run Options:</bridgehead>
<para>These setting allow you to configure the duration related aspects of this benchmark program.</para><para><emphasis>No.
 runs</emphasis></para><para>this controls how many iterations of the benchmarks you actually run (the default is 100 benchmark iterations).</para><para><emphasis>Duration (mins.)</emphasis></para><para>this is the duration in minutes of each benchmark run.</para><bridgehead class="http://www.w3.org/1999/xhtml:h4">SQL Options:</bridgehead>
<para>These setting allow you to configure how your benchmark&#39;s SQL instructions are actually handled.</para><para><emphasis>ExecDirect with SQL Text</emphasis></para><para>this means that no form of repetitive SQL execution optimization is being applied (SQL statements are prepared and executed repetitively)</para><para><emphasis>Prepare/Execute Bound Params</emphasis></para><para>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)</para><para><emphasis>Use Stored Procedures</emphasis></para><para>this means that the Stored Procedure SQL optimization is being applied (benchmark instructions are stored within database being benchmarked)</para><para><emphasis>Execution Options:</emphasis></para><para>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)</para><para><emphasis>Use Transactions</emphasis></para><para>make the benchmark use transaction control (instructions are scoped to transaction blocks)</para><para><emphasis>Do 100 row Query</emphasis></para><para>perform a simulation of a 100 record retrieval as part of the benchmark activity.</para><para>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.</para><para>8.
 Follow the TPC-A--&gt;Cleanup menu path to clean up your database so that you can then run other benchmarks.</para></section></docbook>