Just recently, I had been asked to compare the performance of Oracle 10g and Oracle TimesTen In-Memory database. We wanted to evaluate to what extent the performance of a mission critical system could be increased by using an in-memory database like Oracle TimesTen compared to a “regular” RDBMS like Oracle 10g.
I used a sample application generated from OLIVANOVA in order to compare these different scenarios. The application is based upon a three-tier architecture with a JSF client, J2EE business logic and a RDBMS. The JSF client as well as the business logic have been deployed on a JBoss application server.
The sample application uses the JSF client in order to create 10.000 records in a table for each test run.
The results for Oracle 10g Express were:
The same tests with Oracle TimesTen resulted in the following:
So, basically, this tells me that TimesTen was able to finish the same task in 1/3 of the time.
Are these figures representative for TimesTen? Probably not! IMHO, most of the time necessary to create one record is spent on client/server communication. If this is the case (and I haven’t verified this yet), then the net performance increase should be even better. Let’s do some math. For Oracle 10g in average one record was created in 21.12 ms. With TimesTen the service was executed in an average of 7.49 ms. If I suppose that the client/server communication consumes maybe 5 ms, then the net increase is almost 1/6. Assuming a client/server consumption of 6 ms results in 1/10 net performance increase. I guess, this pretty much brings us closer to the origin of its product name 😉