Verschiedene Methoden um Datenbankobjekte in einer Oracle Datenbank zu kompilieren
Die folgende Übersicht zeigt vier verschiedene Methoden um Datenbankobjekte oder gesamte Schemata in einer Oracle Datenbank zu kompilieren.
1. dbms_utility.compile_schema
Es werden alle validen sowie invaliden Datenbankobjekte kompiliert.
Wenn der Parameter COMPILE_ALL auf FALSE gesetzt wird, werden nur die invaliden Objekte kompiliert.
1 2 3 4 5 6 |
BEGIN dbms_utility.compile_schema (schema => 'BESSERDICH' ,compile_all => TRUE ,reuse_settings => FALSE); END; |
2. UTL_RECOMP.recomp_parallel und UTL_RECOMP.recomp_serial
Wenn viele Datenbankobjekte kompiliert werden müssen, z.B. bei einem Rollout / Deployment, ist bei Servern mit mehreren Prozessoren UTL_RECOMP.recomp_parallel empfehlenswert.
Hier werden intern mehrere Prozesse gestartet, sodass der Kompilevorgang erheblich verkürzt werden kann.
Die Prozedur UTL_RECOMP.recomp_serial hingegen arbeitet lediglich mit einem Prozess.
1 2 3 4 5 |
BEGIN sys.UTL_RECOMP.recomp_parallel (threads => 4 ,schema => 'BESSERDICH'); END; |
1 2 3 4 |
BEGIN sys.UTL_RECOMP.recomp_serial (schema => 'BESSERDICH'); END; |
3. DBMS_DDL.alter_compile
Unter Angabe des Datenbanktobjektypen, z.B. Procedure, Package usw., können gezielt einzelne Datenbankobjekte neu kompiliert werden.
1 2 3 4 5 6 |
BEGIN DBMS_DDL.alter_compile (type => 'PACKAGE' ,schema => 'BESSERDICH' ,name => 'pkg_it_consulting'); END; |
4. ALTER Datenbankobjekte
Wer lieber mit Standard SQL arbeiten will, kann jedes Datenbankobjekt mittels ALTER Statement kompilieren.
1 2 |
ALTER PACKAGE pkg_it_consulting COMPILE; ALTER TYPE besserdich_objtype COMPILE; |
SCHREIBEN SIE EINEN KOMMENTAR