X

TimesTen In-Memory Database
for Extreme Performance

How compatible is TimesTen In-Memory Database with the Oracle Database?

Doug Hood
TimesTen Cloud Product Manager

Customers often ask me how compatible is TimesTen In-Memory Database with the Oracle Database.  The answer, like most things is life is that it depends.

If you are doing OLTP workloads using JDBC, OCI, ODP.NET, Pro*C or PLSQL with compatible data types then TimesTen is highly compatible.

 

 

plsqlJDBC.java
Tptbm.java

addemp.c
plsqlOCI.c
tptbmOCI.c

DemoODP.cs

addempPROC.pc
cursorPROC.pc
plsqlPROC.pc

case_procedures.sql
cursor_update_logic.sql
inner_loop_block.sql
select_exception.sql

The TimesTen Quickstart Guide provides the instructions to build and run these samples programs.

The Oracle 11.2.0.4 PLSQL language was ported to the TimesTen In-Memory Database.

Since Oracle 11.2.0.4, the same Oracle Instant Client is used for both the Oracle Database and the TimesTen In-Memory Database.  

The Oracle Instant Client routes connections to either the Oracle Database or TimesTen In-Memory Database depending on attributes in the tnsnames.ora file or via the easy connect string

The Oracle 11.2.0.4 OCI Library was ported to the TimesTen In-Memory Database and is part of the Oracle Instant Client.

Oracle SQL APIs such as Pro*C and ODP.NET that are dependent on OCI work with TimesTen as TimesTen supports OCI.

Open Source SQL APIs based on OCI such as Node.js, Ruby-OCI8, Python cx_Oracle 5.3 and ROracle, while currently not supported by Oracle TimesTen, they do appear to work:

Working but un-supported SQL APIs

This means that for latency critical OLTP applications, that familiar SQL APIs can be used with TimesTen In-Memory Database or TimesTen Application Tier Database Cache.

TimesTen uses the following data types which are compatible with the Oracle Database

  • BINARY_DOUBLE
  • BINARY_FLOAT
  • BLOB
  • CHAR[ACTER][(n[BYTE|CHAR])]
  • CHARACTER VARYING(n[BYTE|CHAR])
  • CHAR VARYING(n[BYTE|CHAR])
  • CLOB
  • DATE
  • DEC[IMAL][(p[,s])]
  • DOUBLE [PRECISION]
  • FLOAT[(b)]
  • INT[EGER]
  • NATIONAL CHARACTER(n)
  • NATIONAL CHAR(n)
  • NATIONAL CHARACTER VARYING(n)
  • NATIONAL CHAR VARYING(n)
  • NCHAR VARYING(n)
  • NUMERIC[(p[,s])]
  • NCHAR[(n)]
  • NCLOB
  • NUMBER[(p [,s])]
  • NVARCHAR2(n)
  • REAL
  • ROWID
  • SMALLINT
  • TIME
  • TIMESTAMP
  • VARCHAR[2](n[BYTE|CHAR])

The following Oracle Data Types are NOT currently supported

  • Bfile, Long, Long Raw, Raw, Urowid
  • Any-types, Xmltypes, Spatial types, Media types
  • TIMESTAMP WITH TIME ZONE
  • TIMESTAMP WITH LOCAL TIME ZONE
  • User defined types

Although TimesTen is primarily an OLTP RDBMS, it can also do some analytic processing.  TimesTen supports the following analytic SQL:

So depending on the SQL API, data types and SQL operations, TimesTen In-Memory Database can be very compatible with the Oracle Database.

Download TimesTen In-Memory Database and give it a try today.

Disclaimer: these are my personal thoughts and do not represent Oracle's official viewpoint in any way, shape, or form.

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.