Ebben a fejezetben az Oracle10g PL/SQL fordítójával és a kód hatékonyságával kapcsolatos kérdéseket tárgyaljuk. Áttekintjük a fordító optimalizációs beállításait, a feltételes fordítást, a fordító figyelmeztetéseit és a natív nyelvű fordítást. A fejezet végén néhány teljesítményhangolási tanácsot adunk.
A fordító viselkedését több inicializációs paraméter szabályozza. Ezek legfeljebb 3 különböző szinten állíthatók be. A legkülső szint az Oracle-példány szintjén történő beállítás (ALTER SYSTEM SET …), ezt felüldefiniálja a munkamenet szintű beállítás (ALTER SESSION SET …). Néhány paraméter kivételével használható a legerősebb mód, amikor a paramétereket az egyes programegységek fordításakor adjuk meg az ALTER … COMPILE utasításban.
Ily módon beállíthatók a következő paraméterek: PLSQL_OPTIMIZE_LEVEL, PLSQL_CODE_TYPE, PLSQL_DEBUG, PLSQL_WARNINGS, PLSQL_CCFLAGS, NLS_LENGTH_SEMANTICS. A már lefordított programegységek esetén érvényben levő beállításokról a metaadatbázis tartalmaz információkat a {DBA|ALL|USER}_PLSQL_OBJECT_SETTINGS adatszótárnézetek megegyező nevű oszlopaiban. Egy újrafordítás során a korábbi beállítások megtarthatók az aktuális munkamenet és példány szintű beállításoktól függetlenül az ALTER … COMPILE utasítás REUSE
SETTINGS utasításrészének használatával.
Példa a PROC nevű eljárás optimalizálás és nyomkövetési információ nélküli újrafordítására úgy, hogy a többi beállítás a korábbi fordításnál használtakkal egyezik meg:
ALTER PROCEDURE proc
COMPILE
PLSQL_OPTIMIZE_LEVEL=0
PLSQL_DEBUG=FALSE
REUSE SETTINGS;
Az ALTER … COMPILE utasítás DEBUG utasításrészének hatása megegyezik a PLSQL_DEBUG=TRUE beállításéval.