Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Ähnliche Präsentationen


Präsentation zum Thema: "11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte."—  Präsentation transkript:

1 11 Verwaltung von Abhängigkeiten

2 Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte von Änderungen eines DB-Objekts auf gespeicherte Prozeduren und Funktionen Verwaltung prozeduraler Abhängigkeiten Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte von Änderungen eines DB-Objekts auf gespeicherte Prozeduren und Funktionen Verwaltung prozeduraler Abhängigkeiten

3 Verständnis der Abhängigkeiten View Procedure Function Package Specification Package Body Database Trigger View Procedure Function Package Specification Package Body Database Trigger Table View Sequence Synonym Procedure Function Package Specification Table View Sequence Synonym Procedure Function Package Specification Referenzierte Objekte Abhängige Objekte

4 Abhängigkeiten AbhängigesObjekt xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv Prozedur View/Prozedur DirekteAbhängigkeit Abhängiges und referenziertesObjekt ReferenziertesObjekt Tabelle DirekteAbhängigkeit IndirekteAbhängigkeit

5 Lokale Abhängigkeiten xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv ProzedurView INVALIDINVALIDINVALID Lokale Referenz Definition geändert ProzedurTabelle vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv

6 xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv ProzedurView VALIDINVALIDINVALID Fern-Referenz Definition geändert ProzedurTabelle vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv Netzwerk Abhängigkeiten von Ferndatenbanken

7 xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvv vvvvvvxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvv vvvvvvxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv Prozedur ADD_EMP Prozedur QUERY_EMP Tabelle EMP View NEW_EMP EMPNO ENAME 7839 KING 7698 BLAKE 7782 CLARK 7566 JONES EMPNO ENAME HIREDATE JOB 7839 KING17-NOV-81PRESIDENT 7698 BLAKE01-MAY-81MANAGER 7782 CLARK09-JUN-81MANAGER 7566 JONES02-APR-81MANAGER Szenario lokaler Abhängigkeiten

8 SQL> SELECT name, type, referenced_name, referenced_type 2 FROM user_dependencies 3 WHERE referenced_name IN ('EMP', 'NEW_EMP' ); SQL> SELECT name, type, referenced_name, referenced_type 2 FROM user_dependencies 3 WHERE referenced_name IN ('EMP', 'NEW_EMP' ); NAME TYPE REFERENCED_NAME REFERENCED_TYPE --------- ---------- --------------- --------------- QUERY_EMP PROCEDURE EMP TABLE ADD_EMP PROCEDURE NEW_EMP VIEW NEW_EMP VIEW EMP TABLE NAME TYPE REFERENCED_NAME REFERENCED_TYPE --------- ---------- --------------- --------------- QUERY_EMP PROCEDURE EMP TABLE ADD_EMP PROCEDURE NEW_EMP VIEW NEW_EMP VIEW EMP TABLE Anzeige direkter Abhängigkeiten aus USER_DEPENDENCIES

9 SQL> @UTLDTREE Anzeige direkter und indirekter Abhängigkeiten SQL> EXECUTE deptree_fill (‘TABLE’, ‘SCOTT’, ‘EMP’) PL/SQL procedure successfully completed. SQL> EXECUTE deptree_fill (‘TABLE’, ‘SCOTT’, ‘EMP’) PL/SQL procedure successfully completed. 1. Ausführen des Skripts UTLDTREE.SQL 2. Ausführen der Prozedur DEPTREE_FILL

10 SQL> SELECT nested_level, type, name 2 FROM deptree 3 ORDER BY seq#; NESTED_LEVELTYPE NAME --------------------- ---- 0TABLE EMP 1VIEW NEW_EMP 2PROCEDURE ADD_EMP 1PROCEDURE QUERY_EMP SQL> SELECT * 2 FROM ideptree; DEPENDENCIES ---------------------------------------------------- TABLE SCOTT:EMP VIEW SCOTT.NEW_EMP PROCEDURE SCOTT.ADD_EMP PROCEDURE SCOTT.QUERY_EMP SQL> SELECT nested_level, type, name 2 FROM deptree 3 ORDER BY seq#; NESTED_LEVELTYPE NAME --------------------- ---- 0TABLE EMP 1VIEW NEW_EMP 2PROCEDURE ADD_EMP 1PROCEDURE QUERY_EMP SQL> SELECT * 2 FROM ideptree; DEPENDENCIES ---------------------------------------------------- TABLE SCOTT:EMP VIEW SCOTT.NEW_EMP PROCEDURE SCOTT.ADD_EMP PROCEDURE SCOTT.QUERY_EMP Views DEPTREE und IDEPTREE

11 Tabelle EMP Prozedur REDUCE_SAL Prozedur RAISE_SAL Ein weiteres Szenario lokaler Abhängigkeiten EMPNO ENAME HIREDATE JOB 7839 KING 07-NOV-81 PRESIDENT 7698 BLAKE01-MAY-81MANAGER 7782 CLARK 09-JUN-81MANAGER 7566 JONES02-APR-81MANAGER xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvv vvvvvvxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvv vvvvvvxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv

12 Tabelle EMP Prozedur QUERY_EMP Public Synonym EMP X Ein Szenario lokaler Namensabhängigkeiten EMPNO ENAME HIREDATE JOB 7839 KING 17-NOV-81 PRESIDENT 7698 BLAKE 01-MAY-81 MANAGER 7782 CLARK 09-JUN-81 MANAGER 7566 JONES 02-APR-81 MANAGER EMPNO ENAME HIREDATE JOB 7839 KING 17-NOV-81 PRESIDENT 7698 BLAKE 01-MAY-81 MANAGER 7782 CLARK 09-JUN-81 MANAGER 7566 JONES 02-APR-81 MANAGER xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvv vvvvvvxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv

13 Abhängigkeiten von Ferndatenbanken Definition geändert Netzwerk xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv ProzedurView VALIDINVALIDINVALID Fern-Referenz ProzedurTabelle xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv

14 Konzepte der Abhängigkeiten von Ferndatenbanken Fern-Abhängigkeiten werden durch den vom Benutzer gewählten Modus geregelt: TIMESTAMP-Prüfungoder SIGNATURE-Prüfung Fern-Abhängigkeiten werden durch den vom Benutzer gewählten Modus geregelt: TIMESTAMP-Prüfungoder SIGNATURE-Prüfung

15 Parameter für den Modus der Abhängigkeiten von Ferndatenbanken Als init.ora-Parameter REMOTE_DEPENDENCIES_MODE = wert Auf Systemebene ALTER SYSTEM SET REMOTE_DEPENDENCIES_MODE = wert Auf Sitzungsebene ALTER SESSION SET REMOTE_DEPENDENCIES_MODE = wert Als init.ora-Parameter REMOTE_DEPENDENCIES_MODE = wert Auf Systemebene ALTER SYSTEM SET REMOTE_DEPENDENCIES_MODE = wert Auf Sitzungsebene ALTER SESSION SET REMOTE_DEPENDENCIES_MODE = wert

16 xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv ProzedurView VALIDINVALIDINVALID Definition geändert ProzedurTabelle vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv Netzwerk 1 2 Abhängigkeiten von Ferndatenbanken und Timestamp-Modus: Szenario

17 Fern-Prozedur B kompiliert um 8:00 VALID Fern-Prozedur B kompiliert

18 Lokale Prozedur A kompiliert um 9:00 Lokale Prozedur A VALID Fern-Prozedur B kompiliert VALID A kompiliert B kompiliert

19 Prozedur A wird aufgerufen um 10:00 ( Prozedur B wurde nicht rekompiliert seit 8:00) Lokale Prozedur A VALID Fern-Prozedur B kompiliert VALID A kompiliert B kompiliert Zeitstempel-vergleich

20 Lokale Prozedur A VALID Fern-Prozedur B kompiliert INVALID zur Startzeit A kompiliert B kompiliert...paßt nicht Zeitstempel-vergleich... Prozedur A wird aufgerufen um 12:00 (Prozedur B wurde rekompiliert um 11:00 (Lokalzeit) ) 

21 Signature Modus Die Signatur einer Prozedur beinhaltet: den Namen der Prozedur die Datentypen der Parameter die Modi der Parameter Die Signatur einer Prozedur beinhaltet: den Namen der Prozedur die Datentypen der Parameter die Modi der Parameter

22 Rekompilieren einer PL/SQL-Programmeinheit Implizit durch automatische Rekompilierung zur Laufzeit Explizit durch Rekompilierung mit der Anweisung ALTER Implizit durch automatische Rekompilierung zur Laufzeit Explizit durch Rekompilierung mit der Anweisung ALTER ALTER PROCEDURE [SCHEMA.] prozedur_name COMPILE ALTER FUNCTION [SCHEMA.] funktions_name COMPILE ALTER PROCEDURE [SCHEMA.] prozedur_name COMPILE ALTER FUNCTION [SCHEMA.] funktions_name COMPILE ALTER PACKAGE [SCHEMA.] package_name COMPILE [PACKAGE] ALTER PACKAGE [SCHEMA.] package_name COMPILE SPECIFICATION ALTER PACKAGE [SCHEMA.] package_name COMPILE BODY ALTER PACKAGE [SCHEMA.] package_name COMPILE [PACKAGE] ALTER PACKAGE [SCHEMA.] package_name COMPILE SPECIFICATION ALTER PACKAGE [SCHEMA.] package_name COMPILE BODY ALTER TRIGGER trigger_name [ENABLE|DISABLE|COMPILE]

23 Rekompilieren von Prozeduren rozeduren und Funktionen wird erfolglos sein, wenn: Rekompilierung abhängiger Prozeduren und Funktionen wird erfolglos sein, wenn: Das referenzierte Objekt gelöscht oder umbenannt wurde Der Datentyp der referenzierten Spalte geändert wurde Die referenzierte Spalte gelöscht wurde Ein referenzierter View durch einen mit unterschiedlichen Spalten ersetzt wurde Die Parameterliste einer referenzierten Prozedur modifiziert wurde rozeduren und Funktionen wird erfolglos sein, wenn: Rekompilierung abhängiger Prozeduren und Funktionen wird erfolglos sein, wenn: Das referenzierte Objekt gelöscht oder umbenannt wurde Der Datentyp der referenzierten Spalte geändert wurde Die referenzierte Spalte gelöscht wurde Ein referenzierter View durch einen mit unterschiedlichen Spalten ersetzt wurde Die Parameterliste einer referenzierten Prozedur modifiziert wurde

24 Rekompilieren von Prozeduren rozeduren und Funktionen wird erfolgreich sein, wenn: Rekompilierung abhängiger Prozeduren und Funktionen wird erfolgreich sein, wenn: Die referenzierte Tabelle neue Spalten hat Der Datentyp referenzierter Spalten nicht geändert wurde Der PL/SQL-Body einer referenzierten Prozedur modifiziert und erfolgreich rekompiliert wurde rozeduren und Funktionen wird erfolgreich sein, wenn: Rekompilierung abhängiger Prozeduren und Funktionen wird erfolgreich sein, wenn: Die referenzierte Tabelle neue Spalten hat Der Datentyp referenzierter Spalten nicht geändert wurde Der PL/SQL-Body einer referenzierten Prozedur modifiziert und erfolgreich rekompiliert wurde

25 Rekompilieren von Prozeduren Minimieren von Abhängigkeitsfehlern durch: Record-Deklaration mit dem Attribut %ROWTYPE Variablen-Deklaration mit dem Attribut %TYPE Abfragen mit der Notation SELECT * Verwendung einer Spaltenliste bei INSERT-Anweisungen Minimieren von Abhängigkeitsfehlern durch: Record-Deklaration mit dem Attribut %ROWTYPE Variablen-Deklaration mit dem Attribut %TYPE Abfragen mit der Notation SELECT * Verwendung einer Spaltenliste bei INSERT-Anweisungen

26 Packages und Abhängigkeiten Prozedur A deklaration Package-Spezifikation Package-Body Prozedur A definition Standalone-Prozedur VALID Definition geändert

27 Packages und Abhängigkeiten Prozedur A deklaration Package-Spezifikation Package-Body Prozedur A definition Standalone-Prozedur INVALID VALID Definitiongeändert

28 Zusammenfassung Vermeidung von Produktionsstörungen durch: Überblick über prozedurale Abhängigkeiten Manuelle Rekompilierung, sobald die Definition von Datenbankobjekten geändert wurde Vermeidung von Produktionsstörungen durch: Überblick über prozedurale Abhängigkeiten Manuelle Rekompilierung, sobald die Definition von Datenbankobjekten geändert wurde

29 Übungsüberblick Verwaltung von Objektabhängigkeiten

30


Herunterladen ppt "11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte."

Ähnliche Präsentationen


Google-Anzeigen