Hi all,
I stumble across a performance issue when the sql-driver doesn't support caching of PreparedStatements or doesn't work very well.
When running the 'perf-test' target against maxDB I got the following result:
[ojb] ================================================================
[ojb] OJB PERFORMANCE TEST SUMMARY
[ojb] 12 concurrent threads, handle 500 objects per thread
[ojb] - performance mode - results per thread
[ojb] ================================================================
[ojb] API Period Total Total Insert Fetch Update Delete
[ojb] [sec] [sec] [%] [msec] [msec] [msec] [msec]
[ojb] ----------------------------------------------------------------
[ojb] JDBC 9.927 7.544 100 5392 68 1490 593
[ojb] ODMG 22.958 16.831 223 9595 325 4131 2779
[ojb] PB 22.127 17.16 227 10511 120 3776 2753
[ojb] OTM 40.804 32.639 433 23024 225 5056 4332
[ojb] ================================================================
You can see that all OJB API don't perform very well compared with plain JDBC (PB is 120% slower!!). The problem is that OJB use for each object a new PS instead reusing the old one.
I wrote a StatementCache and run this test again [ojb] ================================================================ [ojb] OJB PERFORMANCE TEST SUMMARY [ojb] 12 concurrent threads, handle 500 objects per thread [ojb] - performance mode - results per thread [ojb] ================================================================ [ojb] API Period Total Total Insert Fetch Update Delete [ojb] [sec] [sec] [%] [msec] [msec] [msec] [msec] [ojb] ---------------------------------------------------------------- [ojb] JDBC 10.083 8.248 100 5517 72 1652 1006 [ojb] ODMG 14.89 11.044 134 6764 366 2318 1595 [ojb] PB 13.948 11.22 136 7305 215 1997 1701 [ojb] OTM 22.872 17.597 213 12787 308 2435 2066 [ojb] ================================================================
Now it's totally different. The PB, ODMG API are only 35% slower than plain JDBC. The statement cache boost performance.
Is it reasonable to include a new configurable feature "statementCaching=on/off" in 1.0.x and 1.x or should always the jdbc-driver or connection-pool do such things?
regards, Armin
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
