Native and interpreted compilation techniques
In basic terms, a language compiler converts the program code (in high level language) to a machine code (also known as M code or byte code), which can be understood by the machine runtime engine. Once the database is installed and ready for use, code compilation turns out to be a transparent activity to the users.
Until the release of Oracle9i, Oracle relied on an interpretable method of compilation of its database program units. A compiler in interpreted mode converts a PL/SQL program into machine code, stores in the database, and interprets upon its invocation. Oracle9i brought the revolutionary change in the compilation philosophy by introducing native compilation. But a question popped up amongst the DBAs and developers, "Is native compilation really more effective than an interpreted compilation?" An interpreted mode of compilation was not supported by RAC and backups.
It was the time when Oracle identified code compilation technique as a...