(this is an update of the article published in 2011/07)
For our mORMot framework, and in completion to our
SynOleDB unit, we added a new Open Source unit, named
SynDBOracle. It allows direct access to any remote Oracle server,
using the Oracle Call Interface.
Oracle Call Interface (OCI) is the most comprehensive, high
performance, native unmanaged interface to the Oracle Database that exposes the
full power of the Oracle Database. We wrote a direct call of the
oci.dll
library, using our DB abstraction classes introduced for
SynOleDB.
We tried to implement all best-practice patterns detailed in the official
Building High Performance Drivers for Oracle document
Resulting speed is quite impressive: for all requests, SynDBOracle
is 3 to 5 times faster than a SynOleDB connection using the native
OleDB Provider supplied by Oracle. We noted also that our
implementation is 10 times faster than the one provided with ZEOS/ZDBC, which
is far from optimized.
You can use the latest version of the Oracle Instant Client
provided by Oracle - see this
link - which allows you to run your applications without installing
the standard (huge) Oracle client or having an ORACLE_HOME
. Just
deliver the dll
files in the same directory than your application,
and it will work.