16. fejezet - Hatékony PL/SQL programok írása

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.