JDBC 2.0 Benchmark for Oracle Server JDBC drivers

In order to judge the overall results of JDBC drivers performance is just one criterion. Likewise important are factors like stability, reliability and a complete implementation of the JDBC 2 specifications (including the so called optional package - e.g., distributed transactions with two-phase commits) are particularly important for superior performance under real life conditions.

The following test demonstrates very clearly why thousands of clients and more than 500 OEMs in more than 70 countries rely on JDBC drivers from i-net software. After examining the drivers from our competitors we are sure that we offer the best value available on the market. In addition, we offer professional and responsive support for our JDBC drivers. If you have any questions please contact our support team.

In order to provide you with a meaningful test, all data types for Oracle were used in the test table resulting in some severe problems for some drivers.

Results

Since other vendors' license agreements do not allow us to publish benchmarks you'll have to do them by yourself. We provide everything for a meaningful testing on our web-site. If you have any questions please do not hesitate to contact us.

file date SEROPTO 1.15 27. Apr 02
1 classicStdInsert() 246,755 ms
2 getAll() 16,544 ms
3 preparedInsert() 250,140 ms
4 getNumbers() 2,934 ms
5 getReals() 2,894 ms
6 getDates() 3,335 ms
7 getText() 3,185 ms
8 getBinaries() 2,864 ms
9 getNumbersFromScroll() 17,765 ms
10 getRealsFromScroll() 16,584 ms
11 getDatesFromScroll() 17,956 ms
12 getTextFromScroll() 19,800 ms
13 getBinariesFromScroll() 18,977 ms
14 lobInsert() 4,156 ms
15 getBlobs() 480 ms
16 getClobs() 501 ms
17 getBlobsFromScroll() 781 ms
18 getClobsFromScroll() 521 ms

Please note: The comma in the numbers represents a thousands delimiter, i.e., 90,900 ms is ninety thousand, nine hundred ms.

Tests

  1. Insert 100000 records in the database with a classic statement.
  2. Select all records from the database. Each column via getObject(). Result type FORWARD_ONLY.
  3. Insert 100000 records in the database with a prepared statement.
  4. Get all numbers without fraction from the database. Result type FORWARD_ONLY.
  5. Get all numbers with fraction from the database. Result type FORWARD_ONLY.
  6. Get all dates from the database. Result type FORWARD_ONLY.
  7. Get all character data from the database. Result type FORWARD_ONLY.
  8. Get all binary data from the database. Result type FORWARD_ONLY.
  9. Get all numbers without fraction from the database. Result type SCROLLABLE.
  10. Get all numbers with fraction from the database. Result type SCROLLABLE.
  11. Get all dates from the database. Result type SCROLLABLE.
  12. Get all character data from the database. Result type SCROLLABLE.
  13. Get all binary data from the database. Result type SCROLLABLE.
  14. Insert 10 records of BLOB and CLOB data. Each 65 KB.
  15. Get all blob objects from the database. Result type FORWARD_ONLY.
  16. Get all clob objects from the database. Result type FORWARD_ONLY.
  17. Get all blob objects from the database. Result type SCROLLABLE.
  18. Get all blob objects from the database. Result type SCROLLABLE.

Test Conditions

Server Client
Windows NT Server 4.0 SP6
Oracle 9i, charset WE8ISO8859P1
512 MB RAM
PIII 866
100 MBit
Window 2000 Server SP2
JDK 1.3.1
128 MB RAM
PII 333
100 MBit

FAQ

Why were the tests applied in one setting? Because if the tests are applied separately, then they are much faster (up to 50%). Why is this so?

Answer: The largest performance problem in a java application is the Garbage Collector (GC). If you execute every test separately like other benchmark tests then you would ignore this important factor. If you execute all tests together in one context, then and only then a real application has been simulated. That is to say that the interpretation of a performance of a single test does not make sense since it is misleading, i.e., all tests interact with each other.

Download Test

You can download the sources, classes and batch files to verify the results. The driver you need has to be downloaded from the vendor's sites.

 

© Copyright 1996 - 2014, i-net software; All Rights Reserved.