DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen I Inhaltsverzeichnis DB2-Theorie und Praxis - Band 1 Themenbereiche 1 1 Relationales Modell 3 Grafischer Wegweiser durch den Band 1 Einstiegs-Grafik in die Thematik für Band 1 1 2 1.1 Grafischer Wegweiser durch das Kapitel 1 - Relationales Modell 1.2 Allgemeine Entwicklungsgeschichte 1.2.1 Entwicklung innerhalb IBM 1.2.2 Entwicklung außerhalb IBM 1.2.3 Produkt-Kompatibilität 3 4 4 4 5 Kompatibilität zwischen den IBM-DB2-Produkten Kompatibilität zwischen Fremdhersteller-Produkten und DB2-Produkten 5 5 1.2.4 Entwicklungsgeschichte von DB2 für MVS, OS/390 und z/OS 6 Grober Überblick der DB2-Versions- und Release-Entwicklungen Die wesentlichen Komponenten der Release-Entwicklungen 6 7 Version 2 - Release 1 Version 2 - Release 2 Version 2 - Release 3 Version 3 Version 4 Version 5 - DB2 for OS/390 Version 6 - DB2 Universal Database (UDB) for OS/390 7 7 8 9 10 11 12 Version 6 nach GA - nach der generellen Verfügbarkeit von V6 14 Version 7 - DB2 Universal Database (UDB) for OS/390 and z/OS 15 Version 7 nach GA - nach der generellen Verfügbarkeit 17 Version 8 - DB2 Universal Database (UDB) for z/OS 18 Version 8 nach GA - nach der generellen Verfügbarkeit 22 Version 9 - DB2 Version 9.1 for z/OS 23 Version 9 nach GA - nach der generellen Verfügbarkeit 28 Version 10 - DB2 10 for z/OS 29 Version 10 nach GA - nach der generellen Verfügbarkeit 38 Version 11 - DB2 10 for z/OS 39 1.3 Terminologie 1.3.1 Informationsablage in Tabellenform 44 44 Tabelle (Table, Relation) 44 Spalte/Column (Attribut) 44 Zeile/Row (Tupel) 45 Datenwert/Value45 Primary-Key (PK) 46 Foreign-Key (FK) und referenzielle Integrität (RI) 46 Abbildung der Primary- und Foreign-Key-Beziehungen (Beispiel-Tabellen des Buches und ihre logischen Beziehungen) Informationelle referenzielle Integrität (Informational RI) 47 48 Index49 Daten-Repräsentation und -Ablage 50 1.3.2 Informationsbeziehungen durch Werteinhalte 1.3.3 Relationale Sprachschnittstelle 50 51 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen II SQL53 QUEL54 QBE55 1.4 Charakteristiken eines relationalen DBMS 1.4.1 Anforderungen an ein relationales DBMS 56 56 Codd’sches Anforderungsprofil - RM/V2 56 1.4.2 Zusammenfassung wesentlicher Zielsetzungen, Leistungen und Schwächen des Relationen-Modells Zielsetzungen des Relationen-Modells Standards im Bereich des Relationen-Modells Schwächen des Relationen-Modells 66 66 66 67 1.5 Vergleich der Datenhaltungs- und Bereitstellungs-Konzepte 1.5.1 Gruppierung konventioneller Datenhaltungs- und Bereitstellungs- und DBMS-Typen 1.5.2 Terminologievergleich konventionelle Systeme - RDBMS 1.5.3 Problembereiche konventioneller Datenhaltungs- und DBMS-Typen Strukturierte DBMS 68 68 68 69 69 Lineare DBMS (relational-orientierte Systeme) 70 1.5.4 Komplexe DBMS: Objektorientierte Datenbank-Systeme (OODBMS) 1.6 Speicherung und Verarbeitung von komplexen Objekten (LOBs / Large Objects) 1.6.1 Die Abbildung der Realität in der IT durch strukturierte und unstrukturierte Modelle 1.6.2 Ein komplexes Objekt ist immer zerlegbar (zumindest theoretisch - praktisch manchmal nicht empfehlenswert) Der Einfluss der Zeit auf komplexe Objekte 72 75 75 76 77 1.6.3 Kategorisierung komplexer Objekte 1.6.4 Speicherung komplexer Objekte mit DB2: Large Objects (LOBs) 1.6.5 Problematiken beim Design und der Speicherung komplexer Objekte 1.7 Speicherung und Verarbeitung von XML-Dokumenten 1.7.1 XML-Terminologie 1.7.2 Ein XML-Dokument unterliegt einem strukturierten hierarchischen Modell 1.7.3 Zielsetzung und Aufgabenstellung von XML 1.7.4 Sind die Ziele des Relationen-Modells mit XML vergleichbar? Eine völlig unterschiedliche Herangehensweise Unterschiedliche Eignungen 78 79 80 81 81 83 85 86 86 87 1.8 Fazit 1.9 Standardisierung von Datenbank-Methoden und Techniken 1.9.1 Standardisierungs-Organisationen 1.9.2 Wichtige allgemeine Standards 88 90 90 90 Datenbank-Standards91 ANSI/SPARC Architektur oder auch Drei-Schema-Architektur 92 SQL-Standards93 SQL-Standard: SQL 89 95 SQL-Standard: SQL92 (SQL2) 95 SQL-Standard: 1999/SQL3 (grober Auszug) 97 SQL-Standard: 2003 (relevanter Auszug) 98 SQL-Standard: 2006 (relevanter Auszug) 100 SQL-Standard: 2008 (relevanter Auszug) 101 Die Auswirkungen der bisherigen SQL-Standardisierungsmaßnahmen 102 2 DB2-System-Aufbau 103 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen 2.1 Grafischer Wegweiser durch das Kapitel 2 - DB2-System-Aufbau 2.2 DB2-System-Komponenten und Zusatz-Produkte 2.2.1 DB2-System-Komponenten 2.2.2 DB2-Zusatz-Produkte von IBM III 103 104 104 105 Zusatz-Features105 Objekt- bzw. Daten-Management-Tools 106 2.2.3 Sonstige Tools diverser Software-Hersteller 107 Entwicklungswerkzeuge für die PAEs Verwaltungswerkzeuge für die DBADMs 107 107 2.3 Betriebssystem-Komponenten 2.3.1 System-Schichten von z/OS 2.3.2 DB2-Subsystem (Lokation oder Server) 2.3.3 DB2-Adressraum-Konzept 109 109 110 112 Sonstige Betriebssystem-Komponenten 113 Trägersysteme (Allied Agents) 113 DB2-System-Adressräume114 System-Dienste (System Services - MSTR = Master) Datenbank-Dienste (Database Services - DBM1 = Database Manager) Internal Resource-Lock-Manager (IRLM) Administrativer Task Scheduler (ADMT) Distributed Data Facilities (DDF) 114 114 114 114 115 Adressräume für Routinen (Stored Procedures und/oder User-defined Functions) 116 2.4 Allied Agents: Ankoppelbare Trägersysteme 2.4.1 Attachment-Facility, Connection und Thread 2.4.2 Zugriff auf DB2-Ressourcen aus Anwendungen heraus 117 117 118 Schnittstellen zu den Trägersystem-Typen 118 Batch-Schnittstelle mit CAF (DSNALI) CICS-Schnittstelle (DSNCLI) TSO-Schnittstelle (DSNELI) Recoverable Resource Manager-Schnittstelle (DSNRLI) Universelle Schnittstelle (DSNULI) IMS-Schnittstelle (DFSLI000) 118 118 118 118 118 119 Dateiverarbeitungsmöglichkeiten der Trägersystem-Typen 119 2.5 Verteilung (distributing) und gemeinsame Nutzung (sharing) der DB2-Daten 2.5.1 Verteilung der DB2-Daten (distributed data) Die Client-Server-Architektur (C/S) DRDA - Distributed Relational Database Architecture 120 120 121 122 DRDA - Level Remote-Zugriff über dreiteilige Objekt-Namen/ALIAS oder nach CONNECT DB2-Privat-Protokoll und DRDA-Protokoll Technologische Grenzen der Verteilung von Daten 123 124 125 125 2.5.2 Gemeinsame Nutzung der DB2-Daten (DS - Data Sharing) 126 Betrieb mehrerer z/OS-Systeme Data-Sharing: Group und Member 126 126 Argumente für Data Sharing Grundsätzliche Anforderungen an ein Data-Sharing-Verfahren 127 128 Technische Lösung des DB2 Data Sharings 129 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen IV Data Sharing benötigt einen Parallel Sysplex Aufgaben-Abgrenzung zwischen Membern und dem Coupling Facility 129 130 Speicher-Strukturen einer Data Sharing Group 131 Die Konsistenzbewahrung bei Data Sharing (DS) 132 Sischer is sischer: Struktur-Duplizierung und Duplexed GBP 133 Einflüsse einer Data Sharing Group auf die System-Administration Objekte und Namenskonventionen einer Data Sharing Group 134 135 Gruppen-Objekte und ihre Namen 135 Member-Objekte und ihre Namen 136 2.6 DB2-Ressource-Management durch den DB2 Administrativen Task Scheduler 2.6.1 Aufgabenstellung 2.6.2 Komponenten des Task Schedulers 137 137 137 System-Architektur137 ADMT-DB2-System-Komponenten138 Automatisierung von Utilities im Rahmen der Administrations- Scheduler Tasks (Autonomic Stored Procedures) Planbare Ressourcen Architektur in einer Data Sharing Group 2.7 Synchronisation mehrerer Ressource-Manager: RRS - Resource Recovery Services 2.7.1 RRS-Aufgabenstellung 2.7.2 Programm-Typen für die RRS-Synchronisations-Aufgaben 2.8 DB2-Daten-Objekt-Typen 2.8.1 Meta-Objekt-Typen für die Speicherung von Daten Verwaltung der Meta-Daten 139 140 141 142 142 143 144 144 145 Anlegen, Änderung und Löschung von Meta-Daten 145 CREATE - Anlegen von Meta-Daten 145 ALTER - Änderung von Meta-Daten 146 Online-Schema-Evolution: Realtime-Änderung 146 DROP - Löschung von Meta-Daten 146 Schema, Eigentümer und Ersteller von Daten-Objekt-Typen 147 Autorisierungs-Id, Schema, Ersteller (creator) und Eigentümer (owner) 147 Das Zusammenspiel der Spezialregister 148 Versionsführung für Meta-Objekte (Versionierung) 149 Wie kann man sich eine Versionsführung vorstellen? 149 Wie muss man sich die DB2-Versionsführung vorstellen? 150 Relevante Katalog-Informationen der Versionsführung 151 Test-Beispiele der DB2-Versionsführung 152 Im DB2 existieren vielfältige Versionen und Versionierungen 153 Katalog-Änderungen im Schwebezustand (Pending Changes) 154 Domain-Konzept und Daten-Typen 156 Grundsätzliche Überlegungen und Ausgangssituation Builtin Daten-Typen 156 156 LOB = Large Object 157 XML = XML-Dokument 157 Benutzerdefinierte Daten-Typen (UDT = User-defined Data-Types) 158 Definition der Daten-Typen 159 Array Type 160 Vergleich von Einfachen/Ordinary Arrays und Assoziativen Arrays 161 Überblick der Array-Komponenten 162 Distinct Type 163 Automatisch generierte Cast-Funktionen 163 Nutzungsmöglichkeit der Distinct Data-Types 165 User-defined LOB-Data Types 165 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen User-defined XML-Data Types V 165 Vergleichbarkeit und Konvertierbarkeit der Daten-Typen 166 Konvertierungen zwischen verschiedenen Builtin-Daten-Typen 167 Variablen-Typen168 Lokale Variablen Globale Variablen 169 170 Benutzer-orientierte Daten-Objekt-Typen 170 Tabelle/Table (Base Table) 171 Definition der Tabellen-Spalten 172 Die Rolle des PKs 175 Einrichtung referenzieller Beziehungen (referential constraint) 175 Einrichtung von Check-Constraints 177 Maschinelle Vergabe von Werten durch DB2 178 Nummern-Vergabe: ROWID, IDENTITY, SEQUENCE 178 Verwaltung von technischen Gültigkeitszeiträumen: PERIOD-Klausel für SYSTEM_TIME 178 GENERATED-Klausel für die automatische Generierung von Werten (GENERATED ALWAYS und GENERATED BY DEFAULT) 179 Zuordnung einer Tabelle zu einem Tablespace 182 Definition einer Partitioned Table (table-kontrollierte Partitionierung) 183 Änderung von Tabellen- und Spalten-Charakteristiken 185 Änderung des Daten-Typs einer Spalte 186 SQL-DDL-Unterstützung für die Basis-Tabelle 190 Archiv-Tabelle (Archive Table) 193 Aufgabenstellung und Konzept 193 Vorteile des Konzeptes 194 Nachteile des Konzeptes 194 Funktionsumfang und Steuerung 194 Builtin Globale Variablen SYSIBMADM.GET_ARCHIVE und SYSIBMADM.MOVE_TO_ARCHIVE 194 Manipulations-Wirkungen aufgrund der Globalen Variablen SYSIBMADM.MOVE_TO_ARCHIVE 195 Daten-Bereitstellungs-Wirkungen aufgrund der Globalen Variablen SYSIBMADM.GET_ARCHIVE 195 Dokumentation des Archiv-Konzepts im Katalog 196 Können auch LOB- und XML-Werte archiviert werden? 197 Beispiel-Szenario für die Archivierung 198 Restriktionen des Archiv-Konzeptes 203 Clone Table 204 Aufgabenstellung und Funktionsumfang 204 Metadaten und Daten-Instanzen von Base Table und Clone Table 205 Metadaten von Base Table und Clone Table (Katalog-informationen) 205 Daten-Instanzen von Base Table und Clone Table 206 Daten-Definition von Base Table und Clone Table mittels SQL-DDL 207 Daten-Manipulationen und Utility-Unterstützung einer Clone Table 208 EXCHANGE-Statement: Austausch der Daten-Instanzen zwischen Base Table und Clone Table 209 Löschen der Clone Table 209 Restriktionen der Base Table und der Clone Table 210 Fazit210 Temporal Tables (Tabellen mit Gültigkeitszeiten) 211 Einleitung und Überblick 211 Gültigkeits-Zeitleisten-Behandlung Inklusiv oder Exklusiv: Das ist hier die Frage 211 Unterstützte Datenhaltungs-Konzepte 212 Konzeptioneller Überblick des Modells 213 Fachliche Gültigkeit (BUSINESS_TIME) 213 Manipulations-Regeln für Daten mit fachlichen Zeitleisten 215 Technische Gültigkeit (SYSTEM_TIME) 216 Technische Lösung 218 Technische Komponenten der Datenhaltung 218 Katalog-Metadaten für Temporal Tables 220 Fachliches Zeitkonzept (PERIOD BUSINESS_TIME) 221 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen VI Grundsätzliche Aspekte 221 DDL-Definitionen 222 Meta-Informationen des Katalogs 223 Datenzustände für die Test-Beispiele 224 SQL-Beispiele: Spezialregister CURRENT TEMPORAL BUSINESS_TIME mit NULL-Wert 225 Manipulations-Beispiele225 Beispiele für Informations-Bereitstellungen (SELECT) 227 SQL-Beispiele: Spezialregister CURRENT TEMPORAL BUSINESS_TIME mit konkretem Wert 230 Manipulations-Beispiele230 Der problematische Einsatz des Spezialregisters CURRENT TEMPORAL BUSINESS_TIME (Zusammenfassung) Bi-Temporale Tabellen mit fachlichen Gültigkeiten - PERIOD BUSINESS_TIMES und technischen Gültigkeiten - PERIOD SYSTEM_TIME und Versionierunge (History-Table) 233 238 Grundsätzliche Aspekte 238 DDL-Definitionen 240 Meta-Informationen des Katalogs 242 Datenzustände für die Test-Beispiele 245 SQL-Beispiele: Spezialregister CURRENT TEMPORAL SYSTEM_TIME mit NULL-Wert 247 Manipulations-Beispiele247 Beispiele für Informations-Bereitstellungen (SELECT) 250 SQL-Beispiele: Spezialregister CURRENT TEMPORAL SYSTEM_TIME mit konkretem Wert 251 Manipulations-Beispiele251 DB2-Temporal Tables - Zusammenfassung 254 Grundsätzliche Konzepte und unterstützte Funktionalitäten 254 Zusammenfassende Manipulations-Regeln für temporale SQL-Statements, wenn die temporalen Spezialregister zu berücksichtigen sind 255 Positive Aspekte 256 Negative Aspekte 256 Fazit257 Temporäre Tabelle (Temporary Table) 258 CGTT - Created Global Temporary Table 259 DGTT - Declared Global Temporary Table 260 Temporäre Result Table/Virtual Table 262 Temporäre Result-Table-Typen 262 Positionierung oder Materialisierung einer temporären Result Table 264 DB2-View (Virtual Table) 265 Ist die View-Result-Table read-only oder updateable? 267 View auf View - macht das Sinn? 269 Anwendungs-Unabhängigkeit von physischen Sichten 270 Individuelle Views oder generalisierte Views 271 Besonderheiten bei der Nutzung von Temporalen Tabellen durch DB2-Views 272 Nachteile und Grenzen des View-Konzepts 274 Empfehlungen zum View-Konzept 274 MQT - Materialisierte Query Table (Materialisierter View bzw. Materialisierte Result Table) 275 Komponenten einer materialisierten Query Table (MQT) 276 Definition der MQT 277 System- oder benutzer-kontrollierte MQT 279 Einrichtung einer Hash-Organisation für den Direkt-Zugriff mit Hash-Methode 280 Überblick280 Hash-Space: Aufteilung in Fixed Hash-Space und Overflow-Space 281 Katalog-Metadaten für Hash-Komponenten 283 Definition der Hash-Zugriffs-Methode 285 Neue Tabelle anlegen mit Hash-Organisation 285 Bestehende Tabelle mit Hash-Organisation ausstatten 287 SYNONYM (auslaufend/deprecated)289 ALIAS290 Maschinelle Vergabe einer lfd. Nr. durch DB2: SEQUENCE und IDENTITY 291 SEQUENCE293 Systemorientierte DB2-Objekt-Typen 294 Index294 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen VII Definition der Index-Spalten 295 Wann wird ein Index aufgebaut und wie wird er verwaltet? 295 Index-Typen296 Basis-Index298 Ein stinknormaler Index besteht aus ....... 298 Der Clustering Index organisiert die Datenfolge 299 Partitioning Index und Partitioned Index 301 und nun alle Index-Typen auf einmal 304 DPSI: Data Partitioned Secondary Index 306 Extended Index 309 Scalar Expression Index (Index on Expressions) 310 Interne Organisation eines Indexes 312 Zuordnung eines Indexes zum Indexspace, den Page Sets und Datasets 312 B-Tree-Struktur eines Indexes 313 Änderung von Index-Charakteristiken 315 Löschung eines Indexes 315 Welche Vorteile bietet ein Index, welche Nachteile sind zu beachten? 316 Vorteile eines Indexes 316 Nachteile eines Indexes 317 Empfehlungen zum Index-Einsatz 318 Tablespace319 Aufgabenstellung und relevante Zuordnungen 319 Die Page-Größe und ihre Einflüsse 321 Tablespace-Typen322 Konvertierung eines Tablespace-Typs in einen anderen 325 Vor- und Nachteile der Tablespace-Typen 326 Besonderheiten des Partitioned Tablespaces 328 Physische Charakteristiken pro Partition 328 4096 Partitions und die Konsequenzen 329 Dynamische Partitions: Hinzufügen einer neuen Partition 331 Dynamische Partitions: Rotation 333 Dynamische Partitions: Partition-Werte balancieren 335 Nachträgliche Änderungsmöglichkeiten eines Tablespaces 336 Indexspace337 Aufgabenstellung und relevante Zuordnungen 337 Database339 Storage Group 340 LOB-Objekte: Auxiliary Table, Auxiliary Index, LOB-Tablespace 341 XML-Objekte: XML Table, DocID- und NodeID-Index, XML-Index und XML-Tablespace 343 Unterstützung von Temporal Tables mit XML-Dokumenten 345 XML-Erweiterungen der DB2-Version 10 346 2.8.2 DB2-System-Ressourcen 347 DB2-Directory: Database DSNDB01 DB2-Katalog: Database DSNDB06 Datenspeicherung von System- und Benutzerdaten Zwischenspeicher für Materialisierungen 348 349 349 350 Workfiles: Workfile Database (DSNDB07) 350 Utility-Arbeitsdateien351 DB2-Log-Dateien351 Bootstrap-Dateien (BSDS) 351 DB2-Bibliotheken351 2.9 Routinen: Stored Procedures und User-defined Functions 2.9.1 Grafischer Wegweiser durch das Kapitel 2 - Routinen: Stored Procedures und User-defined Functions und Trigger © Copyright DGD GmbH Germany 65201 Wiesbaden 352 352 DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen VIII 2.9.2 Terminologie und Übersicht 353 Routinen-Typen353 Aufgabenbereiche und Komponenten von Routinen 354 Unterschiede zwischen Externen Routinen und SQL Routinen 355 2.9.3 Kommunikations-Strukturen und Informations-Austausch bei Routinen 356 Überblick356 Vorüberlegungen bei der Nutzung von Ressourcen bei Routinen Von Routinen nutzbare DB2-Ressource-Kategorien 357 357 2.9.4 Identifikation von Stored Procedures und Functions 358 Schema, SQL-Pfad, Specific Name und External Name Function Overloading und Function Resolution 358 358 2.9.5 Bewahrung der Daten-Integrität - Konzept der UOW und UOR bei Einsatz von Routinen Die grundsätzlichen Prinzipien der Daten-Integrität Einsatz von COMMIT und ROLLBACK Autonome UOW/UOR einer Stored Procedure 359 359 361 362 Konzept362 2.9.6 Der Einsatz von Stored Procedures 364 Grobe Zielsetzung einer Stored Procedure 364 Prozedur-Typen365 Entwicklung einer Stored Procedure 366 Definition einer Stored Procedure 368 Namen der Stored Procedure 368 Parameter einer Stored Procedure 368 Übergabe der Parameterwerte 368 Parameter-Typen (Eingabe, Ausgabe oder beides) 370 NULL-Fähigkeit der Parameter 370 PARAMETER STYLE GENERAL, GENERAL WITH NULLS und SQL (Übergabe-Konventionen einer Stored Procedure) 371 Beispiel der Parameterübergabe zwischen PL/I- und COBOL 373 PARAMETER STYLE JAVA 374 Rückgabe einer Ergebnismenge (Query Result Set) 375 CALL-Aufruf-Varianten einer Stored Procedure 376 Statische CALL-Varianten 376 Dynamischer CALL (ODBC bzw. CLI) 376 External Procedure 377 Unterstützte Programmiersprachen 377 Entwicklungsschritte einer External Stored Procedure 377 Aufrufendes und aufgerufenes Modul 377 Compile und Linkage Editor 377 Definition der Stored Procedure im Katalog 378 SQL Procedure 379 Typen und unterstützte Funktionalitäten 379 SQL External Procedure 380 Unterstützte Programmiersprachen und Sprachmittel 380 Entwicklungsschritte einer SQL External Procedure 381 Data Studio oder Development Center 382 IBM-Stored Procedure DSNTPSMP 382 Explizite Definition mit der JCL-Prozedur DSNHSQL 383 Definition der SQL Stored Procedure im Katalog 383 SQL Native Procedure 384 Unterstützte Programmiersprachen und Sprachmittel 384 Versions-Konzept einer SQL External Procedure 385 Entwicklungsschritte einer SQL Native Procedure 386 Definition der SQL Stored Procedure im Katalog 386 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen Ausführung einer Stored Procedure IX 387 Adressraum-Konzept387 Starten und Stoppen von Stored Procedures 387 Aufruf einer remote Stored Procedure und Ablauf 388 Vor- und Nachteile von Stored Procedures Liste der Standard-Stored Procedures (IBM-Supplied Stored Procedures) Relative Performance-Gewichtung von Stored Procedures mit unterschiedlichen Programmiersprachen 2.9.7 Der Einsatz von benutzerdefinierten Funktionen (User-defined Functions) Grobe Zielsetzung einer User-defined Function (UDF) 390 391 397 398 398 Funktions-Aufruf und -Ergebnis 398 Funktions-Typen399 Entwicklung einer User-defined Function 402 Definition einer User-defined Function 404 Namen der User-defined Function 404 Inlined- oder Non-Inlined-Function (Compiled Function) 404 Parameter einer User-defined Function 405 Übergabe der Parameterwerte 405 Parameter-Typen (Eingabe oder Ausgabe) 405 NULL-Fähigkeit der Parameter 405 PARAMETER STYLE SQL oder JAVA (Übergabe-Konventionen für Funktionen) 406 Beispiel der Parameterübergabe zwischen COBOL und PL/I 408 Aufruf-Varianten einer User-defined Function 409 Externe Aufruf-Varianten der Funktion 409 Interne Aufruf-Typen (CALL-Typ bzw. FINAL CALL-Klausel) 409 Scratchpad: Zwischenspeicher für die internen Aufrufe 412 Thread- und TCB-Konzept für Funktions-Aufrufe 413 TCB-Nutzung beim Funktions-Aufruf 413 TCB-Konzept bei Parallel-Abwicklung 414 DETERMINISTIC oder NOT DETERMINISTIC - das ist hier die Frage 415 Sourced Function 416 Unterstützte Programmiersprachen 416 Entwicklungsschritte einer Sourced Function 416 Definition der Sourced Function im Katalog 416 External Function 417 Unterstützte Programmiersprachen 417 Entwicklungsschritte einer External Function 417 Aufrufendes und aufgerufenes Funktions-Modul 417 Compile und Linkage Editor 417 External Scalar Function 418 Definition der Scalar Function im Katalog 418 External Table Function 419 Definition der Table Function im Katalog 419 SQL Function 420 SQL Scalar Function 420 Definition der SQL Scalar Function im Katalog 420 SQL Table Function 421 Definition der SQL Scalar Function im Katalog 421 Ausführung einer User-defined Function 422 Adressraum-Konzept422 Starten und Stoppen von User-defined Functions 422 Vor- und Nachteile von User-defined Functions 423 Vor- und Nachteile von External Scalar Functions Vor- und Nachteile von SQL Scalar Functions 423 423 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen X Vor- und Nachteile von External Table Functions Vor- und Nachteile von SQL Table Functions 424 424 2.9.8 Mögliche Ressource-Nutzung 425 Unterstützte SQL-Funktionalität 425 Zugriff auf DB2-Tabellen 425 Unterstützung von LOB-Spalten und -Werten 425 Unterstützung von XML-Spalten und -Werten 425 Die Nutzung von User-defined Globalen Variablen in Routinen 426 Beispiel mit Nutzung in Stored-Procedure und Client-Anwendung 426 Nutzung von Array-Daten-Typen und Array-Funktionen in Routinen 427 Array-Typen427 Nutzungsmöglichkeit427 Einfaches Beispiel mit ARRAY_AGG-Funktion und UNNEST-Klausel im SELECT 427 Array-Funktionalität428 Überblick der Nutzung 428 Beispiel-Szenario429 Ordinary Array 429 Assoziativer Array 432 Zugriff auf externe Ressourcen 435 Remote DB2-Objekte 435 Andere relationale Datenbanken 435 CICS-Ressourcen435 IMS-Ressourcen436 WebSphere MQ-Ressourcen 436 Sonstige externe Ressourcen 436 2.9.9 Level-Konzept (Nested Routines) 437 Behandlung von Spezialregistern in Routinen Fehlerbehandlung von Routinen 438 439 Auswahl relevanter Fehlercodes 440 2.9.10 Erforderliche Privilegien 2.9.11 Package- und Plan-Behandlung 441 442 Behandlung der externen Module Behandlung von implizit erzeugten Packages Wechsel der Package Nutzung verschiedener Programm-Versionen 442 442 442 442 2.9.12 Testmöglichkeiten von SQL-Routinen 443 Allgemeine Problematik Test-Tools (Debugger) Besonderheiten beim Test Routinen-Versionen einer SQL Procedure 443 443 443 443 2.9.13 Zusammenfassung der relevanten Klauseln für die Definition von Routinen Abwicklungs-Komponenten und Zuordnung der DDL-Parameter-Wirkung Ausführungs-Steuerung (Optionen) von Routinen Übersicht der Options-Argumente und Zuordnungen zu den Routinen-Typen Besonderheiten und Konventionen für Java Applikationen 444 444 445 445 446 2.9.14 z/OS-Ausführungs-Umgebung 447 Überblick der beteiligten z/OS-System-Komponenten RRS - Resource Recovery Services 447 448 Die Rolle im Rahmen von Routinen 448 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen RRSAF-Attachment: Statisches oder dynamisches Laden XI 449 LE - Language Environment 450 LE-Konzept und relevante Komponenten 450 LE-Run-time-Options450 MSGFILE450 RPTOPTS451 RPTSTG452 Optionen zur Kontrolle des Speichers 453 TEST und NOTEST Sonstige LE-Besonderheiten 453 453 Workload-managed Adressräume (WLM-established) 454 WLM-Terminologie454 WLM-Aufgabenstellung454 WLM-Komponenten454 WLM-Subsystem-Typen454 WLM-Service-Definitions 455 WLM-Operations-Modus455 WLM-DB2-Environment456 DB2-Installations-Parameter für WLM 456 Parametrisierung für WLM 456 WLM-JCL-Beispiel456 NUMTCB = Anzahl paralleler Tasks 457 Steuerung des WLM-Adressraums 458 Kontrolle und Abbruch aktiver Routinen 458 Wieviele WLM-Environments sind sinnvoll? 459 Privilegien für die Nutzung des WLM-Environments 459 Modul-Eigenschaften in der WLM-Umgebung 460 Threadsafe Module (reentrant) 460 Residente Module 460 Haupt- oder Unter-Routine 460 Austausch der ausführbaren Version einer Routine 461 Testmöglichkeiten in der WLM-Umgebung 462 Allgemeine Problematik 462 Test-Tools (Debugger) 462 Besonderheiten beim Test 462 Vorteile des WLM-Environments Nachteile des WLM-Environments Performance-Aspekte bei externen Modulen 463 463 464 2.10 Der Einsatz von Triggern 2.10.1 Zielsetzungen eines Triggers 2.10.2 Trigger-Terminologie 465 465 466 Beispiel eines Triggers 466 Trigger-Charakteristiken466 2.10.3 Übersicht der Trigger-Typen und ihre Charakteristiken 468 Komponenten eines Triggers Aktivierungszeit: BEFORE 469 470 Allgemeine Regeln Trigger-Beispiele: Before-Trigger 470 471 Abbildung des Einsatzes 471 Trigger mit Abweisung ungültiger Referenzen (RI-Erweiterung) 472 Trigger zur Einsetzung von Initialwerten bei Einfügungen 473 Trigger mit Übernahme redundanter Daten 473 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XII Trigger mit Aufruf einer Funktion 473 Aktivierungszeit: AFTER 474 Allgemeine Regeln Trigger-Beispiele: After-Trigger 474 475 Abbildung des Einsatzes 475 Verwaltung von Redundanzen 476 Trigger mit Übergabe einer Transition-Table an eine Funktion 477 Trigger mit Übergabe von Transition-Variablen an eine Funktion 477 Aktivierungszeit: INSTEAD OF 478 Allgemeine Regeln Trigger-Beispiele: Instead of-Trigger 478 479 Abbildung des Einsatzes 479 Restriktionen eines Instead of Triggers 481 Empfehlungen für den Einsatz eines Instead of Triggers 482 Ereignis-Typen: INSERT, UPDATE und DELETE Häufigkeit der Funktionsauslösung: ROW oder STATEMENT 483 483 2.10.4 Ablauf der Verarbeitung bei Einsatz eines Triggers 484 Trigger-Aktion485 Trigger-Condition485 Trigger-Body485 Result Table des Triggers 486 Transition-Variablen486 Transition-Tables487 Cascading-Effekte und Trigger-Level bei After Triggern 488 2.10.5 Fehler-Behandlung 489 Fehler-Erkennung und -Signalisierung Fehler bei der Ausführung der Trigger-Statements 489 490 2.10.6 Aufruf von Routinen aus einem Trigger heraus 491 Aufruf-Techniken491 Behandlung von Spezialregistern 492 2.10.7 Nutzung sonstiger DB2-Ressourcen 493 Die Nutzung von User-defined Globalen Variablen in Triggern Die Nutzung von Array-Daten-Typen und Array-Funktionen in Triggern 2.10.8 Trigger-Package 493 493 494 Erzeugen und Löschung einer Trigger-Package REBIND einer Trigger-Package Abhängigkeiten einer Trigger-Package 494 494 494 2.10.9 Trigger-Restriktionen 2.10.10 Vor- und Nachteile von Triggern 495 496 3 Methodische und technische Voraussetzungen für DB2 3.1 Grafischer Wegweiser durch das Kapitel 3 - Methodische und technische Voraussetzungen für DB2 3.2 Allgemeine Voraussetzungen für eine DB2-Einführung 3.2.1 Personelle Voraussetzungen Objekt- (OA) bzw. Daten-Administration (DA) Datenbank-Administration (DBA) 498 498 499 500 500 500 3.2.2 Organisatorische Voraussetzungen 501 Auswirkung auf die Anwendungs-Entwicklung 501 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen 3.2.3 Technische Voraussetzungen für DB2 Version 10 for z/OS XIII 503 Hardware503 Betriebssystem-Software504 Funktionsspezifische Abhängigkeiten 504 Betriebssystemnahe Standard-Software 504 Transaktions-Management505 DRDA-Verbindungsmöglichkeiten505 Web-Verbindungen505 Anwendungs-Entwicklungs-Tools506 Programmiersprachen506 Migrations-Pfad zur Version 11 507 3.2.4 Was ist neu im DB2? 3.2.5 Migration-Strategie ins DB2 3.3 DB2-Systemkonzept 3.3.1 Single-DBMS oder Multi-DBMS? 3.3.2 Abgrenzung Produktionssystem -Testsystem 509 511 512 512 513 System-Kategorien: Test, Übergabe und Produktion 513 System-Kategorie: Test System-Kategorie: Übergabe in die Produktion (System-Test) System-Kategorie: Produktion 514 514 515 Problematiken bei der Übernahme von Test in die Produktion 515 Isolierte Systeme haben trotzdem Kommunikations-Erfordernisse Koordination der Objekte zwischen Systemen 515 516 Management der Versions-Änderungen (Change Management) 516 Spezielle DB2-Übernahme-Kriterien 516 3.3.3 Datenbank-Hierarchie und Nutzungsmöglichkeiten 3.3.4 Informations-Aktualität 3.3.5 Client-Server-Konzept (C/S) 517 518 519 Zentralisierung versus Dezentralisierung 519 C/S sollte in den Köpfen des Managements beginnen ... 519 C/S benötigt klare Konzepte 520 Argumente für eine dezentrale Organisationsform (Verteilung) 521 Argumente für eine zentrale Organisationsform 521 Fazit521 Varianten der C/S-Verarbeitung 522 Verteilungsaspekte523 Lokale Zuordnung der Ressourcen Verfügbarkeit und Nutzbarkeit der Ressourcen 523 523 Konsequenzen einer Verteilung 524 3.4 Methodische Voraussetzungen 3.4.1 Abhängigkeiten zwischen Programmen und Daten 525 525 Probleme beim Einsatz konventioneller Datenbank-Systeme Sind solche Probleme unter DB2 automatisch gelöst? 525 527 Abhängigkeit des SQL-Spracheinsatzes von DB2-Katalog-Informationen Abhängigkeit bei fehlendem Schichten-Konzept Lass die Datenbank loopen! Auswirkung der Daten-Modellierung auf die Programm-Sicht Sicht auf unnormalisierte Daten 527 530 531 532 533 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XIV Definition einzelner Spalten in Wiederhol-Elementen 533 Variable Zeilen mit VARCHAR- oder LOB-Definitionen 534 Speicherung von XML-Dokumenten 535 Sicht auf normalisierte Daten 536 Sicht auf Daten in der ersten Normalform (1 NF) 536 Sicht auf Daten in höheren Normalformen (2 NF, 3NF) 537 3.4.2 Abbau der Abhängigkeiten durch Methodik-Einsatz 538 Ebenen, Modell- und Ergebnis-Typen im Unternehmens-Modell Auswirkungen auf das Anwendungs-Design 538 539 Schichten-Modell für Anwendungs-Programme 539 Separierung der Datenzugriffe von sonstigen Funktionen 540 Objektorientierte Verwaltung der Daten 541 Daten-Verwaltung immer über eine zuständige Funktion/Methode Einsatzmöglichkeit von Standard-Zugriffs-Routinen 542 543 3.4.3 Abbau der Abhängigkeiten durch DB2-Techniken 544 Das Ebenen-Modell von DB2 Katalog-Konzept 544 545 Verlagerung von Programmlogik in den DB2-Katalog 545 Komponenten einer "aktiven Datenbank" 546 Nutzung von Stored Procedures, User-defined Functions und Triggern 547 Integritätsbewahrung als Aufgabenstellung für die Datenbank 547 Verlagerung sämtlicher datennaher Dienste in den DB2-Bereich 548 Argumente für und wider eine "aktive Datenbank" 549 3.4.4 Normungs-Effekte durch internationale Standards 550 Normungs-Effekt durch den SQL-Spracheinsatz Open Database Connectivity (ODBC) und der CLI-Spracheinsatz 550 550 4 DB2-Sprachschnittstellen 4.1 Grafischer Wegweiser durch das Kapitel 4 - DB2-Sprachschnittstellen 4.2 Benutzergruppen und deren Anforderungen 4.3 DB2-Sprachschnittstellen für die Benutzergruppen 4.3.1 TSO-DSN-Commands: Übersicht 4.3.2 SQL-Statements 551 551 552 553 555 556 SQL-Statement- und Benutzer-Kategorien 556 DCL - Data Control Language DDL - Data Definition Language DML - Data Manipulation Language 556 556 557 SQL-Anwendungsformen und Sprach-Schnittstellen 559 Interactive SQL (DB2I) Embedded SQL (EXEC-Level) CALL-Level-Interface für C- und C++-Programme (CLI bzw. ODBC) JDBC-API für Java-Anwendungen SQLJ-API für Java-Anwendungen Static SQL Dynamic SQL 559 559 560 560 560 561 561 Übersicht der SQL-Statements und ihre Einsatzmöglichkeiten 562 4.3.3 DB2-Befehle/DB2-Commands 567 DB2-System-Commands567 Admin-Scheduler-Commands569 CICS-Commands569 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XV IMS-Commands570 IRLM-Commands570 4.3.4 DB2-Hilfsprogramme/DB2-Utilities 571 DB2-Online-Utilities571 Utility-Control-Statements572 4.3.5 Standalone Utilities/Service Aids 4.3.6 TSO-CLISTs und TSO-DSN-Subcommands 4.4 DB2I: Masken der interaktiven DB2-Oberfläche 4.4.1 Einstiegs-Menü (Primary Option Menu) 4.4.2 D - DB2I-Defaults 572 573 574 574 575 Default-Panel 1 Default-Panel 2 575 576 4.4.3 1 - SPUFI: SQL Processor Using File Input 577 SPUFI-Steuerungsmaske577 SPUFI-Defaults579 Default-Panel 1 Default-Panel 2 579 581 SPUFI-Edit-Maske582 SPUFI-Browse-Maske583 4.4.4 2 - DCLGEN: Declarations Generator 584 Eingabemaske584 Maske mit Zusatz-Optionen 585 Beispiele generierter Ausgaben 586 COBOL-Host-Variablen-Struktur586 SEMINAR-Tabelle586 Variante: Default-Struktur- und Spalten-Namen ohne Label 586 Variante: Default-Struktur- und Spalten-Namen mit Label 587 Variante: Individuelle-Struktur- und Spalten-Namen (Table-Name mit Numerierung) 588 Variante: Individuelle-Struktur- und konkreten Spalten-Namen 589 Alle Daten-Typen 590 PL/I--Host-Variablen-Struktur592 SEMINAR-Tabelle592 Variante: Default-Struktur- und Spalten-Namen ohne Label 592 Variante: Default-Struktur- und Spalten-Namen mit Label 593 Variante: Individuelle-Struktur- und Spalten-Namen (Table-Name mit Numerierung) 594 Variante: Individuelle-Struktur- und konkreten Spalten-Namen 595 Alle Daten-Typen 596 C-Programm-Host-Variablen-Struktur598 SEMINAR-Tabelle598 Variante: Default-Struktur- und Spalten-Namen ohne Label 598 Variante: Default-Struktur- und Spalten-Namen mit Label 599 Variante: Individuelle-Struktur- und Spalten-Namen (Table-Name mit Numerierung) 600 Variante: Individuelle-Struktur- und konkreten Spalten-Namen 601 Alle Daten-Typen 602 4.4.5 3 - Program Preparation 604 Steuerungsmaske604 Program Preparation 'Compile, Link and Run Panel' 605 4.4.6 4 - Precompile 4.4.7 5 - BIND / REBIND / FREE 606 607 1 - BIND PLAN 608 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XVI Steuerungsmaske608 Default Panel BIND PLAN 609 Connection Types Panel 610 Package List Panel 611 Ergebnis einer erfolgreichen BIND PLAN-Ausführung 611 2 - REBIND PLAN 612 Steuerungsmaske612 Default-Panel613 3 - FREE PLAN 614 Steuerungsmaske614 4 - BIND PACKAGE 615 Steuerungsmaske615 Default-Panel617 Connection Types Panel 619 Path List Panel 620 Ergebnis einer erfolgreichen BIND PACKAGE-Ausführung 620 5 - REBIND PACKAGE 621 Steuerungsmaske621 Default-Panel623 Ergebnis-Protokollierung REBIND PACKAGE 625 Ergebnis einer nicht erfolgreichen REBIND PACKAGE-Ausführung 625 Ergebnis einer erfolgreichen REBIND PACKAGE-Ausführung 626 6 - REBIND TRIGGER PACKAGE 627 Steuerungsmaske627 7 - FREE PACKAGE 628 Steuerungsmaske628 4.4.8 6 - RUN - Aktivierung einer Programm-Ausführung im Foreground oder Batch Anstoß über Panel JCL-Beispiel eines Batch-Ausführungs-Jobs 629 629 630 4.4.9 7 - DB2 Commands 631 Vorgabe von DB2-Commands Ergebnis einer DB2-Command-Ausführung 631 631 4.4.10 8 - Utilities (Online-Utilities) 632 Steuerungsmaske632 Control Statement Data Set Names 633 Data Set Names 634 Ergebnisse der Job-Generierung 635 Generierungs-Informationen635 Generierter Utility-Job 636 5 SQL-DDL-Data Definition Language 5.1 Grafischer Wegweiser durch das Kapitel 5 - SQL-DDL-Data Definition Language 5.2 Dynamische DB2-Objektverwaltung 5.3 Anlegen DB2-Objekt-Typen: CREATE 5.3.1 Defaults beim Anlagen von Objekten 5.3.2 Beispiele CREATE Systemorientierte Daten-Objekt-Typen 637 637 638 640 640 643 643 STOGROUP, DATABASE und TABLESPACE 643 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XVII INDEX645 Base-Index-Varianten645 Auxiliary-Index, Extended Index und XML-Index 646 Benutzerorientierte Daten-Objekt-Typen 647 Array-Type647 Distinct Type 647 Benutzerdefinierte Globale Variable (User-defined global variable) 647 Base-Table-Varianten648 Basis-Tabelle mit Spalten-Definitionen 648 Basis-Tabelle mit Definition über SELECT-Statement mit Spalten-Kombination aus mehreren Tabellen 648 Basis-Tabelle mit Kopie vorhandener Tabellen-Spalten-Definitionen (LIKE) 649 Basis-Tabelle mit Index-kontrollierter Paritionierung (veraltet) 650 Basis-Tabelle mit Table-kontrollierter Paritionierung 650 Basis-Tabelle mit Hash-Organisation 651 Basis-Tabelle mit LOB-Spalte 651 Auxiliary Table für jede LOB-Spalte einer Basis-Tabelle 652 Basis-Tabelle mit XML-Spalte 653 XML Table Archiv Table 653 654 Definition der Basis-Tabelle (Archive-enabled Table) 654 Clone Table Global Temporary Table MQT - Materialized Query Table Temporal Table und History Table 655 656 657 658 Fachliche Zeitbezüge Temporal Table mit PERIOD BUSINESS_TIME 658 Technische Zeitbezüge Temporal Table mit PERIOD SYSTEM_TIME - ohne Versionierung 658 Technische Zeitbezüge Temporal Table mit PERIOD SYSTEM_TIME - mit Versionierung 659 Bi-Temporale Zeitbezüge Temporal Table und History Table - mit Versionierung 660 VIEW661 ALIAS und SYNONYM (auslaufend) 662 COMMENT und LABEL 663 SEQUENCE664 Funktionsorientierte Objekt-Typen: Routinen 665 UDF - User-defined Function STP - Stored Procedure 665 667 Funktionsorientierte Objekt-Typen: Trigger 669 Trigger für die Manipulation von Tabellen: Before und After Trigger Trigger für die Manipulation von Views: Instead of Trigger 669 670 5.4 Ändern DB2-Objekt-Typen: ALTER und RENAME 5.4.1 Besonderheiten bei Struktur-Veränderungen und Erweiterungen 671 673 Wie verhalten sich die Daten bei Struktur-Veränderungen? Wie verhalten sich die Daten bei Struktur-Erweiterungen? Was tun, wenn kein ALTER existiert? 673 673 674 5.4.2 Beispiele ALTER 675 Systemorientierte Daten-Objekt-Typen 675 STOGROUP, DATABASE und TABLESPACE 675 Konvertierung eines Segmented Tablespaces in einen UTS und setzen Objekt in Pending-Change-Status 676 INDEX677 Base-Index677 Auxiliary-Index, Extended Index und XML-Index 677 Benutzerorientierte Daten-Objekt-Typen 678 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XVIII Array Type 678 Distinct Type 678 Globale Variable 678 Base-Table-Varianten678 Archive Table680 Auxiliary Table 680 Clone Table 681 Global Temporary Table 682 MQT - Materialized Query Table 682 Temporal Table 683 Temporal Table nachträglich auf Basis-Tabelle definieren 683 XML Table 684 VIEW684 ALIAS und SYNONYM 684 COMMENT und LABEL 685 SEQUENCE685 Funktionsorientierte Objekt-Typen: Routinen 686 UDF - User-defined Function STP - Stored Procedure 686 687 Funktionsorientierte Objekt-Typen: Trigger 688 5.4.3 Beispiele RENAME 5.5 Löschen DB2-Objekt-Typen: DROP 5.5.1 Die Auswirkung eines DROP-Kommandos auf andere DB2-Objekte (Abbildung mit referenziellen Effekten) 5.5.2 Beispiele DROP Systemorientierte Daten-Objekt-Typen 688 689 691 692 692 STOGROUP, DATABASE und TABLESPACE 692 INDEX693 Base-Index693 Auxiliary-Index693 Extended Index und XML-Index 693 Benutzerorientierte Daten-Objekt-Typen 694 Array Type 694 Distinct Type 694 Globale Variable 694 Base-Table694 Auxiliary Table 695 Clone Table 695 Global Temporary Table 695 MQT - Materialized Query Table 696 XML Table 696 VIEW697 ALIAS und SYNONYM 697 COMMENT und LABEL 697 SEQUENCE697 Funktionsorientierte Objekt-Typen: Routinen 698 UDF - User-defined Function STP - Stored Procedure 698 698 Funktionsorientierte Objekt-Typen: Trigger Objekt-Typ: Package 699 699 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen 6 SQL-DML-Data Manipulation Language 6.1 Grafischer Wegweiser durch das Kapitel 6 - SQL-DML-Data Manipulation Language 6.2 SQL-DML-Sprachspektrum 6.3 SQL-DML-Anwendungsformen und Sprach-Schnittstellen 6.4 SELECT - Datenabfragen 6.4.1 SELECT-Typen Relevante Komponenten eines SELECT-Statements Result Table eines SELECT-Statements Syntaktische Grundformen des SELECT-Statements Entwicklung und Veränderungen der SELECT-Klauseln in DB2-Version 8 und 9 6.4.2 Syntax des SELECT-Statements XIX 700 700 701 702 703 703 703 703 704 706 707 Grundformat des SELECT-Statements Die logische Abarbeitungsfolge der SELECT-Parameter SELECT-Klausel 707 708 709 Bereitstellung von Daten aus einer einzelnen Tabelle Verdichtung der Result Table (DISTINCT) Bereitstellung von Daten aus mehreren Tabellen (Join) 709 709 709 FROM-Klausel710 Bereitstellung von Daten aus Basis-Tabellen bzw. Views Inner und Outer Join Nested Table Expression 710 710 710 WHERE-Klausel711 Einfache Vergleichsoperatoren 711 Subquery711 Row Expression (Row-Value-Expression) 712 ORDER BY-Klausel GROUP BY-Klausel 712 712 6.4.3 Tabelleninhalte der Beispieltabellen 6.4.4 Einfache SELECT-Abfragebeispiele aus einer Tabelle 713 715 Einfache Spaltenauswahl (PROJECT) Konstante und arithmetisch errechnete Werte Vergabe von Namen für Spalten der Result Table Auswahl bestimmter Zeilen mit WHERE Variable Auswahl bestimmter Zeilen mit WHERE und CASE 715 715 716 716 718 6.4.5 Boolsche Verknüpfungen und Prädikate 719 AND-Verknüpfung719 OR-Verknüpfung719 NOT-Verknüpfung720 BETWEEN-Prädikat720 IN-Prädikat720 LIKE-Prädikat720 NULL-Prädikat722 DISTINCT-Prädikat722 Mix von Prädikaten und Klammerung 723 6.4.6 Funktion (Builtin-Function) 724 Aggregate Function 724 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XX Scalar Function 727 Konvertierungs-Funktion727 DateTime-Function728 VARCHAR_FORMAT-Funktion zur Aufbereitung von Timestamp- und numerischen Werten 730 Sonstige Funktionen 731 Verschachtelung von Aggregate Functions und Scalar Functions 732 6.4.7 Sortierung - ORDER BY 733 Auf- und absteigende Sortierung Sortierung von abgeleiteten Spalten Sortierung der Result Table eines Sub-Selects und der endgültigen Result Table Variable Sortierung der Result Table aufgrund konkreter Inhalte mittels CASE 6.4.8 Gruppierung/ GROUP BY 733 734 735 736 737 HAVING739 Grouping Sets, Cube und Rollup (ab DB2-V11) 742 Lösung mit Grouping Sets, Cube und Rollup 742 6.4.9 Moving Aggregates (Scalar Aggregate Functions) 6.4.10 Set-Operatoren 744 747 UNION und UNION ALL EXCEPT und EXCEPT ALL INTERSECT und INTERSECT ALL 749 752 753 6.4.11 JOIN Selektion aus mehreren Tabellen 754 Join-Verarbeitungs-Regeln754 Kartesisches Produkt 756 Equi-Join757 Join einer Tabelle mit sich selbst 758 Inner Join und Outer Join 759 Übersicht der Ergebnis-Typen Inner Join Left Outer Join Right Outer Join Full Outer Join Die Wirkung der ON-Klausel Verknüpfung mehrerer Join-Typen 759 761 761 762 763 764 766 Kombination von Join und Table Expression 768 6.4.12 Scalar Full-Select 769 Möglichkeiten und Risiken Scalar Full-Select in der WHERE-Bedingung Scalar Full-Selects und Joins Scalar Full-Select in der CASE-Expression 769 770 771 772 6.4.13 Table Expression 773 Nested Table Expression 773 Einfaches Beispiel Nested Table Expression mit Outer Join Nested Table Expression mit CASE (Statistik-Funktion) 773 775 776 Common Table Expression 777 Einsatzgebiet777 Einfaches Beispiel 777 Einsatz mehrerer Common Table Expressions 778 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXI Rekursives SQL Die typische Hierarchie-Abbildung 781 781 Aufbau von Test- oder Hilfsdaten 785 Kalender mit Tagen, Wochen und Wochen-Tag 785 Kalender mit Jahr, Woche und Tag nach ISO (wann beginnt die erste Woche im Jahr?) 786 Common Table Expression und INSERT 787 6.4.14 Subquery (Sub-Query) 788 Allgemeine Syntax Non-correlated Subquery 788 790 Subquery direkt nach einem Vergleichsoperator Subquery nach IN Subquery nach EXISTS Subquery nach ANY bzw. SOME und ALL 790 791 792 793 Correlated Subquery 794 Verarbeitungsunterschiede zu non-correlated Subquery direkt nach einem Vergleichsoperator Subquery nach EXISTS 794 795 795 6.4.15 SELECT-Unterstützung für Temporal Tables 796 Perioden-Spezifikation der FROM-Klausel SELECT mit der FOR BUSINESS-Klausel 796 797 Zugriff auf eine einzelne Tabelle Zugriff auf mehrere Tabellen (Join) 797 798 SELECT mit der FOR SYSTEM-Klausel 800 Zugriff auf eine einzelne Tabelle Zugriff auf mehrere Tabellen (Join) 800 803 6.5 SQL-Manipulations-Statements 6.5.1 Was versteht man unter Manipulations-Statements? 6.5.2 Temporal Tables fordern eine Abkopplung der fachlichen Änderung von der technischen Manipulations-Vorgabe Fachlich-Funktionale Konsequenzen für Daten mit Zeitbezug 807 807 808 808 Manipulations-Typen808 Fachliche Manipulations-Festlegungen hinsichtlich der Gültigkeitszeitleisten 809 DB2-Temporal-Table-spezifische Manipulations-Festlegungen 811 DELETE- und UPDATE-Regeln einer DB2-Temporal-Table 813 BUSINESS_PERIOD-Beispiele: UPDATE mit DATE-Charakteristiken 814 BUSINESS_PERIOD-Beispiele: DELETE mit DATE-Charakteristiken 815 SYSTEM_PERIOD-Beispiele: UPDATE 816 BUSINESS_PERIOD-Beispiele: DELETE 818 6.5.3 Übersicht der SQL-Manipulations-Statement-Typen 6.5.4 SELECT-Statement mit SQL Data Change Statement 6.5.5 INSERT - Daten-Einfügung 820 821 822 Der INSERT fordert eine updateable Result Table 822 INSERT-Formate823 Verhalten bei Spalten mit Default-Maßnahmen 824 Beispiele für SQL-Dateneinfügungen 825 INSERT einer einzelnen Zeile INSERT einer Zeilen-Gruppe (im Anwendungsprogramm) INSERT mehrerer Zeilen mit SELECT 825 825 826 SELECT mit SQL Data Change Statement (hier: SELECT mit INSERT) FINAL TABLE mit einer Zeile 828 829 Beispiel: SELECT FROM FINAL TABLE (INSERT ... mit INCLUDE) 830 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXII FINAL TABLE mit mehr als einer Zeile 832 6.5.6 UPDATE - Daten-Veränderung 834 Der UPDATE fordert eine updateable Result Table 834 UPDATE-Formate835 Beispiele für SQL-Datenveränderungen 836 Searched Update Positioned Update 836 837 SELECT mit SQL Data Change Statement (hier: SELECT mit UPDATE) 6.5.7 DELETE - Daten-Löschung 838 839 Der DELETE fordert eine updateable Result Table 839 DELETE-Formate840 Beispiele für SQL-Datenlöschungen 841 Searched Delete Positioned Delete 841 842 SELECT mit SQL Data Change Statement (hier: SELECT mit DELETE) 6.5.8 MERGE - Daten einmischen 843 844 Der MERGE fordert eine updateable Result Table 844 MERGE-Formate845 Beispiele für SQL-Daten-Mischvorgänge 846 Einfügung einer Zeile Änderung einer Zeile Änderung mehrerer Zeilen SELECT mit SQL Data Change Statement (hier: SELECT mit MERGE) 846 847 848 849 SELECT mit MERGE in einem Cursor 852 7 SQL-DCL-Data Control Language 7.1 Grafischer Wegweiser durch das Kapitel 7 - SQL-DCL-Data Control Language 7.2 DB2-Zugriffsschutzkonzept 7.2.1 Überblick 853 853 854 854 Vorüberlegungen854 Welche Ressourcen können von DB2 geschützt werden? 855 Konsequenzen bei einer vollständigen Auslagerung auf einen ESM 857 Aufteilung der Sicherheitsfunktionen zwischen DB2 und einem ESM 858 Besonderheiten der Autorisierungs-Prüfungen, wenn RACF als ESM wirkt 859 7.2.2 DB2-Privilegien-Konzept 7.2.3 DB2-Autorisierungs-Konzept 860 861 Übergabe der Autorisierungs-Identifikatoren Primär-, Sekundär- und Current-Autorisierungs-Id Zeitpunkt der Autorisierungsprüfung 862 863 864 Autorisierungsprüfung zur Bind-Zeit Autorisierungsprüfung zur Ausführungs-Zeit 864 865 Verhaltensweisen bei Dynamic SQL (Statement Behavior) 866 Wirkung der DYNAMICRULES-Optionen BIND, DEFINEBIND, INVOKEBIND, RUN, DEFINERUN und INVOKERUN Zusammenfassung der Verhaltensweisen (Statement-Behavior) und Konsequenzen der Autorisierungsprüfungen 7.2.4 Privilegien-Konzept 866 867 868 Privilegien-Struktur868 Explizite Privilegien 869 Grant-Typen und Privilegienbereiche 870 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen DB2-Ressource-Typen und ihre Zuordnung der Einzel-Privilegien XXIII 871 Implizite Privilegien 874 Owner eines Objekts 874 Administrations-Gruppen876 Hierarchie der ADM-Privilegien 879 Explizit zuordenbare ADM-Gruppen 879 Implizit wirkende Einzel-Privilegien ADM-Gruppen 880 7.2.5 Welche Privilegien werden wann benötigt? 881 Erforderliche Privilegien zur Verwaltung der DB2-Objekte Die erforderlichen Privilegien eines Anwendungsentwicklers Zusammenspiel von Autorisierungs-Id-Typen und Privilegien 881 883 884 Ausführung von Dynamic SQL-Statements und die erforderlichen Privilegien Plan- und Package-Aktivitäten 7.3 GRANT - Erteilen DB2-Privilegien 7.3.1 Privilegien-Kategorien und GRANT-Varianten 7.3.2 Hierarchisches GRANT-Konzept 7.3.3 GRANT-Besonderheiten 7.3.4 Beispiele GRANT 884 885 886 886 887 888 889 GRANT-Szenario889 7.4 REVOKE - Aufheben DB2-Privilegien 7.4.1 REVOKE-Varianten 7.4.2 REVOKE und die Cascading Effekte 7.4.3 REVOKE-Besonderheiten 7.4.4 Beispiele REVOKE 891 891 892 895 896 REVOKE-Szenario896 7.5 DB2-Datenzugriffs-Kontrolle (ACCESS CONTROL) 7.5.1 Column Access Control (Column-Mask) und Row Access Control (Row-Permission) 897 897 Überblick897 Komponenten zur Einrichtung "geschützter" Objekte 898 Column Access Control (Column-Mask) - Maskierung von Ergebniswerten 900 Row Access Control (Row-Permission) - Filterung der Datenzeilen 901 7.6 Trusted Context und Rollen 7.6.1 Trusted Connection 902 902 Komponenten der Definition eines Trusted Contextes 903 Name des Trusted Contextes 903 System-Autorisierungs-Id903 Default-Rolle und ROLE AS OBJECT OWNER 903 ENABLE oder DISABLE 903 Default-Security-Label903 ATTRIBUTES903 WITH USE FOR 904 7.6.2 Die Rolle (ROLE) im Rahmen eines Trusted Contextes 7.6.3 Aktivitäten eines anderen Benutzers mit dessen Objekt-Privilegien durchführen 7.6.4 SQL-Statements und Katalog-Informationen für Trusted Context und Rollen-Konzept 7.7 VIEW - Inhaltsbezogener Datenschutz 7.7.1 Besonderheiten bei der Anwendung in Programmen 7.8 MLS - Multi-Level Security © Copyright DGD GmbH Germany 65201 Wiesbaden 905 906 907 908 909 910 DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXIV 7.8.1 Probleme bisheriger Zugriffsschutz-Verfahren 7.8.2 MLS-Konzept und relevante Komponenten 910 911 Security Kategorie, Security Level und Security Label 912 7.8.3 MAC - Mandatory Access Control / Mandatory Access Checking 913 Dominanz (Dominate/Dominance) Äquivalenz (Equivalent) Nicht verarbeitbar Inkompatibilität (disjoint oder disjunkt) Write-down Control 913 913 913 913 913 7.8.4 MLS-Implementierungs-Varianten im DB2 914 MLS und MAC auf Objekt-Ebene MLS auf Zeilen-Ebene (Row-Level Granularity) 914 915 Write-down Control bei Row-Level Granularity Behandlung der betroffenen SQL-Statements 915 915 CREATE TABLE/ALTER TABLE 915 DROP TABLE 915 SELECT915 INSERT915 UPDATE916 DELETE916 Behandlung der betroffenen Utilities 917 LOAD917 UNLOAD917 REORG TABLESPACE 917 Behandlung in Triggern Sonstige Besonderheiten 917 917 7.8.5 Zusammenfassung und Konsequenzen des MLS-Konzepts 918 Beispielhafte Ressource- und Benutzer-Definitionen 918 Security-Kategorien918 Security-Level918 Security-Label918 Fazit919 7.8.6 Vor- und Nachteile des MLS-Konzepts 920 Vorteile des MLS-Konzepts Nachteile des MLS-Konzepts 920 920 7.9 Verschlüsselung von Daten (Encryption) 7.9.1 Komponenten für die Verschlüsselung 7.9.2 Welche Daten eignen sich für DB2-Verschlüsselungs-Techniken? 7.9.3 Definition der Meta-Daten für die Verschlüsselung 7.9.4 Die Rolle des Encryption Passwords und Password Hints 7.9.5 Verschlüsselungs-Konzepte 921 921 921 922 922 923 Verschlüsselung auf Spalten-Ebene Verschlüsselung auf Daten-Wert-Ebene 923 923 7.9.6 Effekte der Verschlüsselung 924 Behandlung der Prädikate bei Vergleichen 924 Performance-Aspekte924 Kann man auch PKs und FKs verschlüsseln? 925 Wie behandeln Utilities verschlüsselte Daten? 925 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen 8 DB2-Katalog 8.1 Grafischer Wegweiser durch das Kapitel 8 - DB2-Katalog 8.2 Aufbau und Inhalte 8.2.1 Liste der Katalog-Tabellen 8.2.2 Zuordnung der Objekte zu Katalog-Tabellen 8.2.3 Referenzielle Beziehungen der wichtigsten Katalog-Tabellen 8.2.4 Katalog-Informationen zur Unterstützung der Objekt-Administration Katalog-Spalten mit Informationen zur Speicherorganisation Katalog-Spalten mit Informationen zur Zugriffspfad-Analyse durch den Optimizer 8.2.5 Statistiken und ihre Nutzungsmöglichkeit XXV 926 926 927 929 935 936 938 938 940 948 Überblick948 Was ist der Zweck der Statistiken? Übersicht der relevanten Statistik-Informationen (Generelle Statistik-Kategorien) DB2-Statistik-Kategorien und relevante Komponenten Speicherung der relevanten Index-Statistik-Informationen 948 949 950 952 Bedeutung von LEAFDIST 953 Bedeutung von LEAFNEAR und LEAFFAR 954 Speicherung der relevanten Daten-Statistik-Informationen 955 Bedeutung von NEAROFFPOSF und FAROFFPOSF 956 Bedeutung von CLUSTERRATIOF 957 Bedeutung von DATAREPEATFACTORF (DRF) 958 Bedeutung von NEARINDREF und FARINDREF 959 Speicherung der relevanten Hash-Statistik-Informationen 960 Kontrolle der Speicher-Organisation 960 Bewertung der Nutzung der Hash-Organisation 964 Speicherung der relevanten LOB-Statistik-Informationen 966 Bedeutung von ORGRATIO 967 Aktuelle Statistiken: RTS - Realtime-Statistiken 968 Überblick968 RTS-Komponenten969 Sammeln und Aktualisieren der Statistikdaten 970 Ausschreiben der Statistiken in die RTS-Tabellen (Externalisierung) 971 Analyse der Statistiken 971 Stored Procedure: DSNACCOX (vor DB2-Version 9 DSNACCOR) - Analyse Realtime Statistiken 971 Welche RTS-Tatbestände führen zu einer Utility-Aktivierungs-Empfehlung? 972 Welche generellen Katalog-Tatbestände führen zu einer Utility-Aktivierungs-Empfehlung? 973 8.3 Katalog-Abfragen 8.3.1 Katalog-Abfragen der Katalogbeschreibungen (Metadaten) 974 974 Objekt-Abfragen für Anwendungs-Entwickler 976 8.3.2 Katalog-Abfragen zur Überwachung der optimalen Speicherorganisation Prüfung, ob RUNSTATS überhaupt noch nicht oder seit längerer Zeit nicht aktiviert wurde 8.3.3 Abfrage auf Reorganisations-Erfordernis 8.3.4 Nutzung von Tabellen und Indizes durch Packages 8.3.5 Katalog-Queries über referenzielle Beziehungen 8.3.6 Katalog-Queries zur Unterstützung und Kontrolle des Datenschutzes 8.4 Katalog-Veränderungen 9 Utilities 980 980 981 984 985 987 988 989 9.1 Grafischer Wegweiser durch das Kapitel 9 - DB2-Utilities 9.2 Überblick und relevante Komponenten 989 990 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXVI 9.2.1 Abgrenzung IBM-DB2-Tools - DB2-Utilities 9.2.2 DB2-Online-Utilities und Standalone-Utilities 9.2.3 DB2-Online-Utilities: Überblick 990 992 993 Komponenten eines Utilities Aktivierungs-Varianten für Utilities Die Phasen eines Utilities Ergebnis- und Status-Kontrolle eines Utility-Laufs 993 994 995 996 Status-Kontrolle während der Aktivierungs-Zeit eines Utility-Laufs 996 Ergebnis-Kontrolle nach dem Abschluss eines Utility-Laufs 996 RESTART (CURRENT) und RESTART (PHASE) 997 Utility-Datasets999 Vorgabe von Utility-Control-Statements 999 CCSID-Behandlung von Utility-Control Statements 999 Spezielle Utility-Control-Statements (SYSIN-DD-Statement) 999 Dataset-Charakteristiken1000 Übersicht der Datasets für Online-Utilities 1001 Dataset-Dispositionen1002 Dataset-Größen1003 Vorgehensweisen, wenn Datasets zu klein sind 1003 Unterstützung von FlashCopy 1004 FlashCopy-Datasets1006 Generelle und spezielle Utility-Control Statements 1007 Utility-Control Statement: EXEC SQL 1008 Utility-Control Statement: LISTDEF 1010 Utility-Control Statement: TEMPLATE 1014 Utility-Control Statement: OPTIONS 1015 Die Auswirkungen der Objekt-Versionierung für Utilities 1017 Wie behandeln Utilities verschlüsselte Daten? 1018 Wie behandeln Utilities MLS-geschützte Daten 1018 Inline-Utility-Ausführungen1019 Besonderheiten der Inline-Kopien für Utilities 1019 Inline-Kopien mit dem LOAD-Utility 1020 Inline-Kopien mit dem REORG-Utility 1024 LOAD- und REORG-Besonderheiten für Inline-Kopien bei LOB- und XML-Objekten 1024 Inline-Statistiken mit dem LOAD-, REORG- oder REBUILD-Utility 1025 Sperren von Utilities und Kompatibilität zu anderen Utilities 1026 Claims und Drains 1026 Restriktiver Space-Status von Utilities 1026 Kompatibilität der Utilities untereinander 1027 Standalone-Utilities1028 9.2.4 Stored Procedures im Utility-Umfeld 9.3 DB2 Online Utilities 9.3.1 Übersicht der Kategorien und Utilities 9.3.2 Utilities zum Laden, Entladen und Reorganisieren von Daten und Indizes 1028 1029 1029 1030 LOAD-Utility1031 Überblick1031 Vorbereitungs-Aktivitäten1033 LOAD: Erforderliche Datasets und Objekte 1034 LOAD: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1035 LOAD: Utility-Ausführungs-Phasen 1036 Besonderheiten von Daten-Typen- und -Charakteristiken 1037 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen Besonderheiten beim Laden von Daten mit GENERATED ALWAYS-Spalten Komprimierung der Daten Performance-Faktoren beim Laden Offline-Load XXVII 1038 1039 1039 1040 Überblick über die Komponenten und relevante Klauseln 1040 Ein- und Ausgabe-Datasets 1040 SHRLEVEL NONE oder CHANGE 1042 REPLACE oder RESUME - Besonderheiten 1043 Laden der Daten von Partitioned Tablespaces 1044 Laden von Daten für Universal Tablespaces Partition-by-growth (UTS-PBG) 1045 Laden von LOB-Daten 1045 Laden von XML-Daten 1045 LOAD-Parallelverarbeitung1046 Paralleler-Verarbeitungs-Varianten1046 Paralleler Aufbau der Indizes beim LOAD 1048 Abbruch und Restart des LOAD-Utilities 1050 Online-Load1051 Überblick über die Komponenten und relevante Klauseln 1051 Ein- und Ausgabe-Datasets 1051 Unterscheidungsmerkmale von Offline- und Online-Load 1052 Konsequenzen bei Einsatz des Online-Load-Utilities 1052 Test-Ergebnisse Vergleich Offline-Online-Load 1053 Empfehlungen1054 Nachbereitungs-Aktivitäten1055 Test-Beispiele1056 Laden 1 Mio Zeilen in einen UTS-PBR 1056 Erläuterung des Test-Beispiels 1056 Utility-Aktivierung ohne Paralell-Verarbeitung (PARALLEL(1) als Default) 1056 Job-Control und Utility-Control-Statements ohne Paralell-Verarbeitung 1056 Ausführungs-Protokolle1056 Utility-Aktivierung mit Paralell-Verarbeitung (PARALLEL) 1058 Job-Control und Utility-Control-Statements mit Paralell-Verarbeitung 1058 Ausführungs-Protokolle1058 Laden von 6 Tabellen in einen Segmented Tablespace 1060 Erläuterung des Test-Beispiels 1060 Job-Control und Utility-Control-Statements 1060 Ausführungs-Protokolle1061 Test-Beispiel: LOAD von XML-Daten einer Temporal Table mit SPANNED YES Job-Control und Utility-Control-Statements 1062 1062 Ausführungs-Protokolle1063 REBUILD INDEX-Utility 1064 Überblick über die Komponenten und relevante Klauseln 1064 Online-Rebuild (SHRLEVEL CHANGE) 1066 Ein- und Ausgabe-Datasets 1067 Vorbereitungs-Aktivitäten1067 REBUILD INDEX: Erforderliche Datasets und Objekte 1068 REBUILD INDEX: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1069 REBUILD INDEX: Utility-Ausführungs-Phasen 1069 Paralleler Aufbau der Indizes beim REBUILD INDEX 1070 Abbruch und Restart des REBUILD INDEX-Utilities 1070 Wann ist REBUILD INDEX zweckmäßig oder erforderlich? 1071 Test-Beispiele1072 Job-Control1072 Utility-Control-Statements1072 Auszüge der Ausführungs-Protokolle 1072 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXVIII REORG INDEX-Utility 1073 Überblick1073 Reorganisations-Methoden1073 Überblick über die Komponenten und relevante Klauseln 1074 Ein- und Ausgabe-Datasets 1074 Abbruch parallel laufender Prozesse mittel FORCE-Klausel bei Verhinderung des REORG-Abschlusses 1075 Vorbereitungs-Aktivitäten1076 REORG INDEX: Erforderliche Datasets und Objekte 1077 REORG INDEX: Utility-Sperren und Abhängigketen zu anderen Utilities 1078 REORG INDEX: Utility-Ausführungs-Phasen 1078 Paralleler Aufbau der Indizes beim REORG INDEX 1079 Abbruch und Restart des REORG INDEX-Utilities 1079 Wann ist ein REORG INDEX zweckmäßig oder erforderlich? 1080 Test-Beispiele1081 Job-Control1081 Utility-Control-Statements1081 Auszüge der Ausführungs-Protokolle 1081 REORG TABLESPACE-Utility 1082 Überblick1082 Reorganisations-Methoden1082 Erweiterungen ab DB2-Version 9 Erweiterungen ab DB2-Version 10 Erweiterungen ab DB2-Version 11 Besonderheiten bei einer Reorganisation mit der Materialisierung von Pending-Objekt-Änderungen Strategien beim Entladen der Daten: Clustering Index-Folge oder Sortierung (SORTDATA) Reorganisation der verschiedenen Tablespace-Typen 1083 1083 1084 1085 1086 1087 Reorganisation eines Segmented Tablespaces 1087 Reorganisation eines Partitioned Tablespaces 1087 Parallele Reorganisation bei Partitioned Tablespaces 1087 SORTNPSI - Sollen NPI-Index-Daten komplett entladen werden oder nicht? 1088 Reorganisation von UTS-PBG-Tablespaces (Partition-by-Growth) 1090 Reorganisation von XML-Tablespaces 1090 Reorganisation von LOB-Tablespaces 1091 Logging eines LOB-Tablespaces 1092 Reorganisation von Katalog- und Directory-Tablespaces 1092 Überblick über die Komponenten und relevante Klauseln 1093 Ein- und Ausgabe-Datasets 1093 Performance-Faktoren bei der Reorganisation 1095 Parallele Verarbeitungsmöglichkeiten durch andere Prozesse 1096 SHRLEVEL NONE - keine Parallelverarbeitung ab RELOAD erlaubt 1096 SHRLEVEL REFERENCE - lesende Parallel-Verarbeitung erlaubt 1097 SHRLEVEL CHANGE - Parallel-Verarbeitung erlaubt (Online-Reorg) 1098 Rolle der Mapping Table 1099 Nicht-Verfügbarkeitszeiten der Objekte für Parallel-Anwendungen 1099 Abbruch parallel laufender Prozesse mittel FORCE-Klausel bei Verhinderung des REORG-Abschlusses 1100 Konsequenzen bei Einsatz des Online-Reorg-Utilities 1100 REBALANCE - Re-Balancieren ungleich großer Partitions 1101 Beispiel einer Online-Rebalance-Maßnahme 1102 Erläuterung des Beispiel 1102 Utility-Control-Statements1102 Ausführungs-Protokolle1102 Vorbereitungs-Aktivitäten1104 REORG TABLESPACE: Erforderliche Datasets und Objekte 1106 REORG TABLESPACE: Utility-Ausführungs-Phasen 1108 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen REORG TABLESPACE: Utility-Sperren und Abhängigkeiten zu anderen Utilities Abbruch und Restart des REORG TABLESPACE-Utilities REORG TABLESPACE-Utility: Abbruch in Phasen und Pending-Status XXIX 1109 1110 1110 Wann ist REORG TABLESPACE zweckmäßig oder erforderlich? 1111 Nachbereitungs-Aktivitäten1112 Test-Beispiele1113 Job-Control mit Direkt-Vorgabe eines Tablespace-Namens 1113 Utility-Control-Statements1113 Auszüge der Ausführungs-Protokolle 1114 Job-Control mit Vorgabe von Objekt-Listen und Templates 1115 Auszüge der Ausführungs-Protokolle 1115 Beispiel der Reorganisation von LOB-Tablespaces mit SHRLEVEL CHANGE 1118 Utility-Control1118 Ausführungs-Protokollierung1118 Beispiel der Reorganisation eines Tablespaces mit Objekt-Änderungen im Schwebezustand (Pending Changes) 1119 Utility-Control1119 Ausführungs-Protokollierung (relevanter Auszug) 1119 UNLOAD-Utility1120 Überblick1120 Besonderheiten beim Entladen der Daten 1122 Entladen von Tablespaces, Tables und Image-Copies 1122 Beeinflussung der Spalten- und Datenauswahl 1123 Konvertierung der Daten 1123 Vorbereitungs-Aktivitäten1123 UNLOAD: Erforderliche Datasets und Objekte 1124 UNLOAD: Utility-Ausführungs-Phasen 1124 UNLOAD: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1124 Abbruch und Restart des UNLOAD-Utilities 1125 Test-Beispiele1125 Test-Beispiel: Entladen Daten eines Partitioned Tablespaces 1125 Job-Control1125 Utility-Control-Statements1125 Auszüge des Ausführungs-Protokolls 1125 Test-Beispiel: Entladen Daten DELIMITED 1126 EBCDIC-Daten1126 Test-Beispiel: Entladen Daten mit der WHEN-Klausel und mit TEMPLATE in SYSTEMPL 1127 Job-Control1127 Auszüge des Ausführungs-Protokolls 1127 Ausdruck der Daten 1128 Test-Beispiele: Entladen Daten mit CCSID EBCDIC und UNICODE 1129 Test-Basis1129 Entladen beide mit Default-CCSID 1129 Entlade-Bestände1130 Entladen beide mit CCSID EBCDIC 1131 Entlade-Bestände1132 Entladen beide mit CCSID UNICODE 1133 Entlade-Bestände1134 Entladen beide mit CCSID UNICODE DELIMITED 1135 Entlade-Bestände1136 Test-Beispiel: Entladen LOB-Daten mit externer File Referenz und TEMPLATE 1137 Test-Basis1137 UNLOAD-Job1137 UNLOAD-Ausführungs-Protokoll1138 Test-Beispiel: UN LOAD von XML-Daten einer Temporal Table mit SPANNED YES Test-Basis und UNLOAD-Utility-Control 1139 1139 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXX 9.3.3 Utilities zum Erzeugen von Statistik-Informationen aus Daten und Indizes 1140 RUNSTATS-Utility1141 Überblick1141 Aktualisierung der Katalog-Statistiken 1145 Welche Tabellen und Spalten aktualisiert RUNSTATS? 1145 RUNSTATS: Wirkung der Parameter UPDATE und HISTORY 1146 Woran erkennt man die Aktualität der Statistiken? 1148 Darstellung der Statistikwerte im Katalog 1148 Manuelle Veränderung der Statistikwerte im Katalog 1149 Exaktheit der Statistikwerte 1149 Ungleichförmige Verteilung von Datenwerten 1150 Statische Erfassung von Einzelwerten (KEYCARD und FREQUVAL) und Spalten-Gruppen (COLGROUP) Statische Erfassung der Verteilung von Spaltenwerten oder Wertegruppen (HISTOGRAM) Zurücksetzen der Katalog-Statistiken für die Zugriffspfad-Analyse (RESET ACCESSPATH) Beispiel eines RUNSTATS-Laufs mit Zurücksetzen des kompletten Statistik-Stands auf den Initialisierungszustand (RESET ACCESSPATH) 1150 1151 1153 1154 Nutzung von Tabellen-Profilen zur Vereinheitlichung der RUNSTATS-Ausführungen (PROFILES) 1155 Vorbereitungs-Aktivitäten1156 RUNSTATS TABLESPACE: Erforderliche Datasets und Objekte 1156 RUNSTATS TABLESPACE: Utility-Ausführungs-Phasen 1156 RUNSTATS TABLESPACE: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1157 Abbruch und Restart des RUNSTATS-Utilities 1157 Test-Beispiele1158 RUNSTATS TABLESPACE TABLE ALL und INDEX ALL 1158 Utility-Control-Statements1158 Auszüge der Ausführungs-Protokolle 1158 STOSPACE-Utility1161 Überblick1161 Vorbereitungs-Aktivitäten1162 STOSPACE: Erforderliche Datasets und Objekte 1162 STOSPACE: Utility-Ausführungs-Phasen 1162 STOSPACE: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1162 Abbruch und Restart des STOSPACE-Utilities 1162 Test-Beispiele1163 Job-Control1163 Utility-Control-Statements1163 Ausführungs-Protokoll1163 Katalog-Statistiken1163 9.3.4 Utilities zum Prüfen der Konsistenz von Daten und Indizes 1164 Überblick und Abgrenzung der Aufgaben 1164 Bereinigung erkannter Ferhler-Situationen 1166 Löschen fehlerhafter Basis-Datenzeilen mittels DELETE YES 1166 LOB- oder XML-Fehler-Typen: Orphan-, Missing-, Out-of-Synch- und Invalid-Werte 1167 Entdeckung der Fehlerzustände und mögliche Ursachen 1167 Bereinigungs-Möglichkeiten der Fehlerzustände 1168 CHECK DATA-Utility 1169 Überblick1169 Was wird denn nun wie und warum gesteuert? 1172 Behandlung des CHKP-Check-Pending Status ab DB2-Version 10 1172 Objekt-Auswahl: SCOPE-Klausel 1173 XML-Tablespace-Prüfungen1174 xxxERROR-Klausel1175 Vorbereitungs-Aktivitäten1176 CHECK DATA: Erforderliche Datasets und Objekte 1176 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXXI CHECK DATA: Utility-Ausführungs-Phasen 1177 CHECK DATA: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1177 Abbruch und Restart des CHECK DATA-Utilities 1178 Nachbereitungs-Aktivitäten1178 Test-Beispiele1179 Löschen fehlerhafter referenzieller Zeilen 1179 Job-Control1179 Utility-Control-Statements1179 Auszüge der Ausführungs-Protokolle 1179 LOB-Daten aufgrund eines PIT-Recoveries auf ungültig setzen 1180 Utility-Control-Statements1180 Ausführungs-Protokoll1180 CHECK INDEX-Utility 1181 Überblick1181 Vorbereitungs-Aktivitäten1182 CHECK INDEX: Erforderliche Datasets und Objekte 1183 CHECK INDEX: Utility-Ausführungs-Phasen 1183 CHECK INDEX: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1183 Abbruch und Restart des CHECK DATA-Utilities 1183 Nachbereitungs-Aktivitäten1184 Test-Beispiele1185 Job-Control1185 Utility-Control-Statements1185 Auszüge der Ausführungs-Protokolle 1185 CHECK LOB-Utility 1186 Überblick1186 Behandlung des CHKP-Check-Pending Status ab DB2-Version 10 1188 Vorbereitungs-Aktivitäten1188 CHECK LOB: Erforderliche Datasets und Objekte 1189 CHECK LOB: Utility-Ausführungs-Phasen 1189 CHECK LOB: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1190 Abbruch und Restart des CHECK LOB-Utilities 1190 Nachbereitungs-Aktivitäten1190 Test-Beispiele1191 Job-Control1191 Utility-Control-Statements1191 Auszüge der Ausführungs-Protokolle 1191 9.3.5 Utilities zum Sichern und Wiederherstellen von Daten und Indizes 1192 BACKUP SYSTEM-Utility 1193 Überblick1193 Vorbereitungs-Aktivitäten1195 BACKUP SYSTEM: Erforderliche Datasets und Objekte 1195 BACKUP SYSTEM: Utility-Ausführungs-Phasen 1195 BACKUP SYSTEM: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1195 Abbruch und Restart des BACKUP SYSTEM-Utilities 1196 Nachbereitungs-Aktivitäten1196 Test-Beispiele1196 Job-Control1196 COPY-Utility1197 Überblick1197 Copy-Typen1199 Full Image Copy 1199 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXXII Incremental Image Copy 1199 Primär und Backup-Kopie 1200 Kopien für das lokale und das Recovery-System 1200 FlashCopy Kopien 1200 DFSMS Concurrent Copy 1201 Parallele Ausführungsmöglichkeiten des Utilities 1202 Parallele Sicherung von Objekten in einem Job 1202 Parallele Sicherung von Objekten in mehreren Jobs 1202 Erzeugen von Kopien für mehrere Objekte 1202 Vorgabe einer Liste in einer Copy-Anweisung eines Jobs 1202 Vorgabe mehrerer Copy-Anweisungen in einem Job 1202 Wie kann die Konsistenz der Objekte sichergestellt werden? 1203 Bei bestimmten 'Restriktiven Pending-Status' kann bzw. sollte keine Image Copy erzeugt werden 1203 Vom Einsatz von -TERM UTIL wird beim COPY abgeraten 1204 Vorbereitungs-Aktivitäten1204 COPY: Erforderliche Datasets und Objekte 1204 COPY: Utility-Ausführungs-Phasen 1205 COPY: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1205 Abbruch und Restart des COPY-Utilities 1206 Nachbereitungs-Aktivitäten1206 Test-Beispiele1207 Job-Control1207 Utility-Control-Statements1207 Auszüge der Ausführungs-Protokolle 1207 COPYTOCOPY-Utility1210 Überblick1210 Vorbereitungs-Aktivitäten1212 COPYTOCOPY: Erforderliche Datasets und Objekte 1212 COPYTOCOPY: Utility-Ausführungs-Phasen 1212 COPYTOCOPY: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1212 Abbruch und Restart des COPYTOCOPY-Utilities 1213 Nachbereitungs-Aktivitäten1213 Test-Beispiele1214 Job-Control1214 Utility-Control-Statements1214 Auszüge der Ausführungs-Protokolle 1214 MERGECOPY-Utility1215 Überblick1215 Vorbereitungs-Aktivitäten1216 MERGECOPY: Erforderliche Datasets und Objekte 1216 MERGECOPY: Utility-Ausführungs-Phasen 1217 MERGECOPY: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1217 Abbruch und Restart des MERGECOPY-Utilities 1217 Nachbereitungs-Aktivitäten1217 Test-Beispiele1218 Job-Control1218 Utility-Control-Statements1218 Auszüge der Ausführungs-Protokolle 1218 QUIESCE-Utility1219 Überblick1219 Vorbereitungs-Aktivitäten1221 QUIESCE: Erforderliche Datasets und Objekte 1221 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXXIII QUIESCE: Utility-Ausführungs-Phasen 1221 QUIESCE: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1221 Abbruch und Restart des QUIESCE-Utilities 1222 Nachbereitungs-Aktivitäten1222 Test-Beispiele1222 Job-Control1222 Utility-Control-Statements1222 Auszüge der Ausführungs-Protokolle 1222 RECOVER-Utility1224 Überblick1224 Zurücksetzen von Datenzuständen 1229 Vorwärts- und Rückwärts-Recovery (forward/backward und BACKOUT YES) 1230 Zurücksetzen auf den aktuellen Status 1231 Zurücksetzen auf einen früheren Zeitpunkt 1231 Copy-Typen1232 RECOVER-Szenario eines Partitioned Tablespaces 1233 COPY- und RECOVER-Klauseln für die verschiedenen Recover- und Objekt-Typen eines Partitioned Tablespaces 1234 PIT-RECOVER-Beispiele 1235 COPY und PIT-RECOVER kompletter Partitioned Tablespaces 1235 COPY und RECOVER aller oder einzelner Partitions eines Partitioned Tablespaces 1236 RECOVER von Tablespaces mit verknüpften Objekten (Indizes, RI-Constraints, LOB- oder XML-Tablespaces sowie deren Indizes) 1238 Pending Status 1238 Ungültigkeits-Markierung (invalid) von LOB- oder XML-Werten 1238 Wiederherstellen von Base-Tablespaces 1238 Wiederherstellen von LOB- oder XML-Tablespaces 1238 Wiederherstellen von Indexspaces 1238 RECOVER von Tablespaces, die mit NOT LOGGED definiert sind RECOVER von Katalog- und Directory-Objekten 1239 1239 Objekt-Hierarchie1239 Vorbereitungs-Aktivitäten1240 RECOVER: Erforderliche Datasets und Objekte 1240 RECOVER: Utility-Ausführungs-Phasen 1241 RECOVER: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1242 Abbruch und Restart des RECOVER-Utilities 1242 Nachbereitungs-Aktivitäten1242 Test-Beispiele1243 Job-Control1243 Utility-Control-Statements1243 Auszüge der Ausführungs-Protokolle 1243 RESTORE SYSTEM-Utility 1245 Überblick1245 Vorbereitungs-Aktivitäten1246 RESTORE SYSTEM: Erforderliche Datasets und Objekte 1247 RESTORE SYSTEM: Utility-Ausführungs-Phasen 1247 RESTORE SYSTEM: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1247 Abbruch und Restart des RESTORE SYSTEM-Utilities 1248 Nachbereitungs-Aktivitäten1248 Test-Beispiele1248 Job-Control1248 9.3.6 Utilities zum Löschen nicht mehr benötigter System-Informationen MODIFY RECOVERY-Utility 1249 1250 Überblick1250 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXXIV Vorbereitungs-Aktivitäten1251 MODIFY RECOVERY: Erforderliche Datasets und Objekte 1252 MODIFY RECOVERY: Utility-Ausführungs-Phasen 1252 MODIFY RECOVERY: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1252 Abbruch und Restart des MODIFY RECOVERY-Utilities 1252 Nachbereitungs-Aktivitäten1252 Test-Beispiele1253 Job-Control1253 Utility-Control-Statements1253 Auszüge der Ausführungs-Protokolle 1253 Szenario der Löschung aller Image Copies, außer der letzten Full Image Copy und ggf. nachfolgender Incremental Image Copies 1254 Auszug aus SYSIBM.SYSCOPY vor MODIFY RECOVERY 1254 MODIFY RECOVERY-Protokoll 1254 Auszug aus SYSIBM.SYSCOPY nach MODIFY RECOVERY 1255 MODIFY STATISTICS-Utility 1256 Überblick1256 Vorbereitungs-Aktivitäten1257 MODIFY STATISTICS: Erforderliche Datasets und Objekte 1257 MODIFY STATISTICS: Utility-Ausführungs-Phasen 1257 MODIFY STATISTICS: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1257 Abbruch und Restart des MODIFY STATISTICS-Utilities 1257 Nachbereitungs-Aktivitäten1257 Test-Beispiele1258 Job-Control1258 Utility-Control-Statements1258 Auszüge der Ausführungs-Protokolle 1258 9.3.7 Utilities für Objekt-Informationen und zur Fehler-Analyse und Fehler-Bereinigung 1259 DIAGNOSE-Utility1260 Überblick1260 Vorbereitungs-Aktivitäten1261 DIAGNOSE: Erforderliche Datasets und Objekte 1261 DIAGNOSE: Utility-Ausführungs-Phasen 1261 DIAGNOSE: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1261 Abbruch und Restart des DIAGNOSE-Utilities 1261 Nachbereitungs-Aktivitäten1261 Test-Beispiele1262 Job-Control1262 Utility-Control-Statements1262 Auszüge der Ausführungs-Protokolle 1262 REPAIR-Utility1263 Überblick1263 Vorbereitungs-Aktivitäten1265 REPAIR: Erforderliche Datasets und Objekte 1265 REPAIR: Utility-Ausführungs-Phasen 1265 REPAIR: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1266 Abbruch und Restart des REPAIR-Utilities 1266 Nachbereitungs-Aktivitäten1266 Test-Beispiele1267 Job-Control1267 Utility-Control-Statements1267 Auszüge der Ausführungs-Protokolle 1267 REPORT-Utility1268 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXXV Überblick1268 Vorbereitungs-Aktivitäten1269 REPORT: Erforderliche Datasets und Objekte 1269 REPORT: Utility-Ausführungs-Phasen 1269 REPORT: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1270 Abbruch und Restart des REPORT-Utilities 1270 Nachbereitungs-Aktivitäten1270 Test-Beispiele1271 Job-Control1271 Utility-Control-Statements1271 Auszüge der Ausführungs-Protokolle 1271 9.4 Standalone-Utilities 9.4.1 Übersicht 9.4.2 DSNJCNVB - Konvertieren BSDS Log-Datasets 1278 1278 1280 Überblick1280 Vorbereitungs-Aktivitäten1280 DSNJCNVB: Erforderliche Datasets und Objekte 1281 Nachbereitungs-Aktivitäten1281 Test-Beispiele1281 Job-Control1281 Auszüge der Ausführungs-Protokolle 1281 9.4.3 DSNJCNVT - Konvertieren BSDS auf das 10-Byte-Extended RBA/LRSN-Format 1282 Überblick1282 Vorbereitungs-Aktivitäten1283 DSNJCNVB: Erforderliche Datasets und Objekte 1284 Nachbereitungs-Aktivitäten1284 Test-Beispiele1284 Job-Control1284 Auszüge der Ausführungs-Protokolle 1284 9.4.4 DSNJLOGF (Preformat Active Log) 1285 Überblick1285 Vorbereitungs-Aktivitäten1285 DSNJLOGF: Erforderliche Datasets und Objekte 1286 Nachbereitungs-Aktivitäten1286 Test-Beispiele1286 Job-Control1286 Auszüge der Ausführungs-Protokolle 1286 9.4.5 DSNJU003 (Change Log Inventory) 1287 Überblick1287 Vorbereitungs-Aktivitäten1289 DSNJU003: Erforderliche Datasets und Objekte 1289 Nachbereitungs-Aktivitäten1289 Test-Beispiele1290 Job-Control1290 Auszüge der Ausführungs-Protokolle 1290 9.4.6 DSNJU004 (Print Log Map) 1291 Überblick1291 Vorbereitungs-Aktivitäten1292 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXXVI DSNJU004: Erforderliche Datasets und Objekte 1292 Nachbereitungs-Aktivitäten1292 Test-Beispiele1292 Job-Control1292 Auszüge der Ausführungs-Protokolle (aufbereitete Form mit Erläuterungen) 1293 9.4.7 DSN1CHKR 1296 Überblick1296 Vorbereitungs-Aktivitäten1297 DSN1CHKR: Erforderliche Datasets und Objekte 1297 Nachbereitungs-Aktivitäten1297 Test-Beispiele1297 Job-Control1297 9.4.8 DSN1COMP 1298 Überblick1298 Vorbereitungs-Aktivitäten1299 DSN1COMP: Erforderliche Datasets und Objekte 1299 Nachbereitungs-Aktivitäten1299 Test-Beispiele1299 Job-Control1299 Auszüge der Ausführungs-Protokolle 1300 9.4.9 DSN1COPY 1301 Überblick1301 DSN1COPY: Erweiterte Konsistenzprüfungen ab DB2-Version 11 1303 Vorbereitungs-Aktivitäten1304 DSN1COPY: Erforderliche Datasets und Objekte 1304 Test-Beispiele1305 Job-Control1305 Auszüge der Ausführungs-Protokolle 1306 9.4.10 DSN1LOGP 1307 Überblick1307 Vorbereitungsaktivitäten1308 DSN1LOGP: Erforderliche Datasets und Objekte 1308 Nachbereitungs-Aktivitäten1308 Test-Beispiele1309 Job-Control1309 Auszüge der Ausführungs-Protokolle 1309 9.4.11 DSN1PRNT 1310 Überblick1310 Vorbereitungs-Aktivitäten1311 DSN1PRNT: Erforderliche Datasets und Objekte 1311 Nachbereitungs-Aktivitäten1311 Test-Beispiele1312 Job-Control1312 Ausführungs-Protokolle1312 9.4.12 DSN1SDMP 1316 Überblick1316 Vorbereitungs-Aktivitäten1317 DSN1SDMP: Erforderliche Datasets und Objekte 1317 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXXVII Nachbereitungs-Aktivitäten1317 Test-Beispiele1317 Job-Control1317 9.5 Automatisierung des Anstoßes von Utility-Läufen durch Statistik-Analyse (Autonomic Maintenance) 9.5.1 Relevante, automatisierbare Utilities Autonomic Statistics: Automatisierung von RUNSTATS 1318 1319 1320 9.6 Pending Status (Advisory und Restricted Status) 1321 10 Datenentwurf unter DB2 1325 10.1 Grafischer Wegweiser durch das Kapitel 10 - Datenentwurf 10.2 Rolle des ANSI-SPARC-Drei-Schemata-Ansatzes 10.3 Vorgehens-Modell 10.3.1 Entwicklungsgeschichte der relevanten Daten-Modelle 10.3.2 ERM - Entity-Relationship-Modell 10.3.3 Relationen-Modell (RM) 10.3.4 Gemeinsamkeiten von ERM und RM 10.4 Logisches Design 10.4.1 Normalisierung 1325 1326 1328 1330 1331 1333 1335 1339 1340 Unnormalisierte Daten 1NF - Atomic Attribute ohne Wiederhol-Elemente 2NF - Volle funktionale Abhängigkeit zu allen PK-Bestandteilen 3NF - Keine transitiven Abhängigkeiten der Nicht-PK-Attribute 1341 1343 1345 1347 Kritische Analyse der erreichten 3NF - Struktur-Qualität 1348 BCNF - Volle Abhängigkeit zum Candidate Key 4NF - Keine paarweisen mehrwertigen Abhängigkeiten 5NF - Ultimative Normal Form - Project-Join-Normalform (PJ/NF) Abschlussüberlegungen zur Normalisierung 1349 1350 1352 1355 10.4.2 Dokumentation der Daten-Design-Ergebnisse 1356 Bubbles/Blasendiagramme1356 Relationale Notation 1357 Dependency Diagram 1358 Netzwerk Diagramm 1359 Objektorientiertes State Transition Diagram 1360 DB2-Unterstützungstools1361 10.4.3 Festlegung der referenziellen Verarbeitungs-Regeln 1362 Darstellung der referenziellen Verarbeitungs-Maßnahmen (RI) 1364 10.4.4 Festlegung der Geschäfts-Regeln (Business-Rules) 1366 Zusammenfassende Definition der Business-Rules Festlegung der logischen Trigger für die Business-Rules 1367 1368 10.4.5 Übersicht der kompletten Integritäts-Regeln und -Maßnahmen 1370 Strukturierung der Geschäfts-Regeln und -Aktionen Umsetzung der Geschäfts-Regeln und -Aktionen in SQL-Funktionen 1372 1373 10.4.6 Konzeptionelle Modelle für Spezial-Konstrukte 1374 Einleitung1374 Daten unter Zeitbezug - Temporal Tables und Relationen-Modell 1375 Fachliche Zeitaspekte 1375 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XXXVIII Einleitung, Terminologie 1375 Komponenten eines Modells für Daten mit Zeitbezug 1376 Auswirkung auf fachliche Informationen und Informations-Zusammenhänge 1378 Aufnahme von Zeit-Attributen und Konsequenzen 1379 Fachliche Funktionsauswirkungen der Zeitunterstützung 1381 Manipulation und Wirkung 1381 Entwicklung der Beispiel-Daten unter Zeitaspekten 1382 Konsequenzen der Zeitunterstützung für Fachbereichs-Benutzer 1383 Konzeptionelle Umsetzung für Zeitaspekte 1384 PK-Festlegung: Objekt-Identifikator plus Zeit- bzw. Versions-Bezug 1384 FK-Festlegung: Objekt-Identifikator mit oder ohne Zeit- bzw. Versions-Bezug 1385 Unser konzeptionelles Modell steckt voller Redundanzen: Wie sieht ein redundanzfreies Modell aus? 1387 Zeit-Leiste für jeden Attribut-Zustand 1387 Datenhaltung für jede Daten-Version bei veränderten Attribut-Zuständen 1389 Funktionale Konsequenzen für Daten mit Zeitbezug 1390 Manipulations-Typen1390 Manipulations-Festlegungen hinsichtlich der Gültigkeitszeitleisten 1391 Referenzielle Regeln für Daten mit Zeitbezug (RI-Bedingungen) 1393 Informations-Bereitstellungs-Typen1395 10.4.7 Festlegung der konzeptionellen Views 1396 Bilden von Schemata für spezielle Daten-Sichten 1396 OLAP1397 Data Warehouse: Cubes und Dimensionen 1398 Fakten (Facts) 1398 Maßeinheiten (Measures) 1398 Dimensionen (Dimensions) 1399 OLAP-Meta-Modell: Objekt-Typen 1403 10.4.8 Checkliste für das logische Daten-Design 1404 Fachliches Daten-Modell Konzeptionelles Daten-Modell 1404 1405 10.5 Physisches Design 10.5.1 Aufgabenstellungen 10.5.2 Ableiten der physischen Benutzerobjekte aus logischen Relationen Zielsetzungen eines physischen Daten-Modells Kandidaten für die physische Implementierung 1407 1407 1408 1408 1409 10.5.3 Bewertung der Auswirkungen logisch definierter Zugriffspfade 1409 Aufwand bei der Datenbeschaffung Individuelle Performance-Relevanz Auswirkungen der Sperr-Maßnahmen 1411 1414 1415 10.5.4 De-Normalisierungs-Maßnahmen 1416 Daten-Zusammenführung1416 Trennung der Daten (Verteilung) 1418 Trennung der Daten zwischen Base- und History-Table bei Daten-Versionierung von Temporal Tables Bilden zusätzlicher Redundanzen Bilden von Schemata für spezielle Datenhaltungs-Konzepte 1419 1421 1423 Data Warehouse 1423 Terminologie und Komponenten 1423 MOLAP, ROLAP und HOLAP 1425 Star-Schema1427 Snowflake-Schema 1428 Struktur-Besonderheiten beim Einsatz von MQTs 1429 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen Konsequenzen der De-Normalisierung XXXIX 1430 10.5.5 Indizes 10.5.6 Unterstützung der referenziellen Integrität (RI) durch DB2 1431 1432 Terminologie und Einrichtung unter DB2 Definierbare Strukturen 1432 1434 Zulässige Einzel-Struktur-Beziehungen Umsetzung der M : N - Struktur-Beziehungen Logische referenzielle Struktur Physische referenzielle Struktur (Tablespace-Set) 1434 1435 1436 1442 Gesamt-Überblick über die DB2-RI-Unterstützung Anforderungen an PK und FK 1444 1446 DB2-Primary-Key (PK) und Parent Key 1446 DB2-Foreign-Key (FK) Verwaltung der RI-Definitionen im Katalog 1447 1448 Katalog-Informationen für RI 1448 RI-DDL-Beispiele1449 Argumente für und wider den Einsatz von DB2-RI 1451 10.5.7 Unterstützung der Business Rules mit Funktionen und Triggern 1452 De-Normalisierungs-Auswirkungen1452 Zuordnung der Regeln und Maßnahmen zu den physischen Strukturen 1452 Funktionale Konsequenzen bei Nicht-Nutzung von DB2-RI 1454 Funktionale Konsequenzen bei Struktur-De-Normalisierungen 1455 10.5.8 Festlegung der sonstigen DB2-Objekte mit ihren Ausprägungen 10.5.9 Festlegung der sonstigen physischen Ressourcen 10.5.10 DB2-Unterstützungstools 10.5.11 Checkliste für das physische DB2-Design 1457 1457 1457 1458 11 Datenspeicherung intern und extern 11.1 Grafischer Wegweiser durch das Kapitel 11 11.2 Übersicht der Speicherungsformen 11.3 Space-Management 11.3.1 Verwaltung und Adressierung der Daten innerhalb des Page Sets 11.3.2 Page Sets Linear Page Sets Partitioned Page Sets Universal Page Sets LOB Page Sets XML Page Sets 1460 1460 1461 1463 1463 1465 1465 1466 1467 1468 1469 11.3.3 Page Typen des File Page Sets 1470 Header Page und System Pages 1471 Kontrolle der Umstellung des RBA/LRSN-Formats von Basic auf Extended in einer Header-Page Space Map Pages Daten Pages 1472 1473 1474 Satzformat: Basic-Record-Format (BRF) oder Reordered-Row-Format (RRF) Indikatoren für LOB- und XML-Werte in der Basis-Datenzeile Adressierung der Daten-Zeilen Speicherung und Adressierung bei Hash-organisierten Tabellen 1475 1476 1476 1477 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XL Insert-Strategie innerhalb der Daten-Pages Update-Strategie bei variablen Zeilen Delete-Strategie innerhalb der Daten-Pages Freespace-Verwaltung der Daten-Pages 1479 1480 1480 1481 FREEPAGE und PCTFREE 1481 PCTFREE FOR UPDATE 1482 MAXROWS1482 Plattenplatz-Bedarfs-Ermittlung1483 Plattenplatz-Bedarfs-Ermittlung für LOB-Werte 1485 Besonderheiten bei Inline-LOBs 1486 PRIQTY1487 SECQTY1487 Kompression der Daten 1488 11.3.4 Page Typen des Index Page Sets 1490 Header Page und System Pages Space Map Pages Index Pages 1490 1490 1490 Non-Leaf Pages Leaf Pages Insert-Strategie innerhalb der Index-Pages Update-Strategie innerhalb der Index-Pages Delete-Strategie innerhalb der Index-Pages Freespace-Verwaltung der Index-Pages Verteilung der Non-Partitioned-Index Daten mit Hilfe von PIECESIZE Plattenplatz-Bedarfs-Ermittlung für Indizes 1491 1492 1493 1494 1494 1494 1494 1495 Unterstützung von Page-Größen > 4-KB im Index 1497 Index-Komprimierung1498 DSN1COMP-Protokoll1499 11.4 Nutzung des virtuellen Adressraums 11.4.1 Nutzung der z/OS-Architektur 1500 1500 Erweiterte Nutzung der 64-Bit-Architektur 1501 11.4.2 Datenpool-Konzept 1503 RID-Pool1504 Sort-Pool1505 EDM-Speicherbereiche1506 Compressions-Dictionary1507 Materialisierung von LOB-Werten 1507 IRLM-Locks1507 LE-Tokens1507 11.4.3 Bufferpool-Konzept 1508 Group Bufferpools (GBP) Virtuelles Bufferkonzept 1510 1510 Zuordnung der Bufferpools zu Tablespaces und Indexspaces Unterstützung verschiedener Page-Größen Bufferpool-Page-Größe und VSAM-CI-Größe Fixierung von Buffern im Realspeicher Einbindung der Bufferpools in die System-Schichten 1510 1511 1511 1511 1512 Lese-Anforderungen1513 Direktes Einlesen (Synchronous Read) 1513 Sequential Prefetch 1513 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XLI Dynamic Prefetch (Sequential Detection) 1514 Sequential Detection 1515 List Prefetch (List Sequential Prefetch) 1516 Schreib-Anforderungen1517 Zustandsformen der Bufferpool-Page-Typen 1518 Bufferpool-Thresholds1519 Threshold-Parametrisierungs-Empfehlungen für LOB- und XML-Werte Mögliche Strategien der Bufferpool-Einrichtung Bufferpool-Hit Ratio und MUPA 1520 1521 1522 Bufferpool-Besonderheiten für LOB- und XML-Werte 1523 11.5 VSAM-Datasets 11.5.1 Nutzung von DFSMS (Storage Management Subsystem) 1524 1526 12 DB2-Datensicherheitseinrichtungen 12.1 Grafischer Wegweiser durch das Kapitel 12 - Datensicherheitseinrichtungen 12.2 DB2-Sicherheitsinstrumentarium 12.3 Transaktionsabwicklung 12.3.1 Terminologie und Transaktions-Definition 12.3.2 Konsistenz-Koordination bei Einsatz mehrerer Ressource-Manager 12.4 LUW-, UOW- und UOR-Konzept 12.4.1 Vorgangsabwicklung unter TSO oder einem Client ohne UOW-Konzept 12.4.2 Vorgangsabwicklung unter CICS oder IMS mit UOW-Konzept 12.4.3 Die Wirkung von SAVEPOINT und ROLLBACK TO SAVEPOINT 12.4.4 Commit-Konzepte Überblick über Read-only-, Single-Phase- und Two-Phase-Commit Two-Phase-Commit (2-Phasen-Commit) 1527 1527 1528 1530 1530 1532 1534 1536 1537 1538 1539 1539 1540 UOR-Status nach einem Fehler 1541 12.5 Probleme und Lösungswege der Konkurrenzverarbeitung 12.5.1 Verlorener Update 12.5.2 Zugriff zu Daten, deren UOW noch nicht abgeschlossen ist 12.5.3 Wiederholtes Einlesen von Daten innerhalb einer UOW 12.5.4 Lösungswege zum Abbau der Konkurrenz-Problematiken 12.5.5 Deadlock 1542 1543 1544 1545 1546 1548 Vermeidung von Deadlocks Erkennung von Timeouts und Deadlocks 1549 1551 12.6 DB2-Sperrverfahren 12.6.1 Überblick 12.6.2 Transaction Lock 1552 1552 1553 Lock-Charakteristiken1553 Lock-Objekt1555 Implizite Lock-Auswirkungen auf die DB2-Systemressourcen 1555 Lock-Dauer1557 Lock-Niveau1559 Lock Eskalation 1561 SQL-Statement: LOCK TABLE 1561 Lock-Modus1562 Lock-Modus auf Lock-Niveau: Tablespace, Table bzw. Partition 1562 Lock-Modus auf Lock-Niveau: Page bzw. Row 1564 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XLII Zusammenfassung: Aktivierung von Lock-Niveau und Lock-Modus 1565 Lock Promotion 1566 DB2-Lock-Modus-Entscheidungen1566 Isolation-Level1568 RR - Repeatable Read 1568 RS - Read Stability 1569 CS - Cursor Stability 1569 UR - Uncommitted Read 1570 Vorgabemöglichkeiten des Isolation-Levels und Wechselwirkung in Package und Plan 1571 Zugriff auf aktuelle Daten trotz Parallel-Manipulation ("currently committed") oder auch CONCURRENT ACCESS RESOLUTION Unterschiede zwischen Latch und Lock Lock Avoidance Lock-Besonderheiten beim Cursor-Einsatz Optimistic Concurrency Control (Optimistic Locking) 1572 1574 1574 1576 1576 LOCK-Besonderheiten bei LOB- und XML-Daten 1577 12.6.3 Drain Lock, Drains und Claims 12.6.4 IRLM - Internal Resource Lock Manager 12.6.5 Data Sharing (DS) 1578 1579 1580 Lock-Typen bei Data Sharing Speicher-Strukturen einer Data Sharing Group 1580 1581 Überblick1581 Inter-DB2-Interesse im Data Sharing 1583 Übersicht der memberübergreifenden Entscheidungs-Maßnahmen IRLM-Lock-Konzept im Data Sharing 1583 1584 L-Locks und P-Locks 1584 Parent und Child-Locks und das Zusammenspiel der L-Locks und P-Locks 1585 Lock-Optimierungen bei Data Sharing 1586 12.6.6 Zusammenfassung der DB2-Lock-Mechanismen 1587 Welche relevanten Parameter steuern die Lock-Mechanismen? Checkliste für den Einsatz der DB2-Lock-Mechanismen Übersicht: Sperrniveau und Lock-Maßnahmen 1587 1588 1590 12.7 Konsequenzen der DB2-Sperrverfahren auf die Anwendungs-Entwicklung 12.7.1 Zusammenspiel von Isolation-Level, Lock-Modus und -Dauer 12.7.2 Verhinderung eines Parallel-Updates Einsatz des Cursor-Konzeptes 1591 1591 1592 1592 Cursor-Konzept oder SELECT WITH RR bzw. RS? 1593 Optimistic Locking Strategie 1594 12.7.3 Parallelverarbeitung von Online- und Batch-Anwendungen 12.8 Logging-Einrichtungen 12.8.1 Steuerungsfunktionen für die Logging-Abwicklung 1595 1596 1598 Logging-Philosophie1598 Logging-Hierarchie1599 12.8.2 Führen und Ausschreiben von LOG-Informationen 1601 Maßnahmen zur Reduzierung des LOG-Aufwands 1602 12.8.3 Konsistenzsicherung innerhalb des DB2-Subsystems (REDO, UNDO) Manuelle, nicht durch DB2 überwachte Konsistenz-Maßnahmen 1603 1604 12.8.4 Konsistenzsicherung mit Allied Agents 12.8.5 Konsistenzsicherung bei DB2 Data Sharing (DS) 1604 1605 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen 12.9 Storage Server 12.9.1 ESS - Enterprise Storage Server 12.9.2 AUDIT TRACE XLIII 1606 1606 1607 Regelbasierte Protokollierung sicherheitsrelevanter Ereignisse (Policy-based Audit Capability) 1608 Übersicht der Komponenten 1608 Audit-Kategorien1609 12.10 Problembereiche der Datensicherheitseinrichtungen 1611 13 Anwendungsprogrammierung unter DB2 13.1 Grafischer Wegweiser durch das Kapitel 13 - Anwendungsprogrammierung 13.2 Anwendungsprogrammierung: Relevante Komponenten im Überblick 13.3 Einsatzspektrum von DB2 13.3.1 Die verschiedenen Programm-Typen Abgrenzung Dialog-, Online-, Batch- und Client/Server-Verarbeitung 1613 1613 1614 1615 1616 1616 Was versteht man unter Batch-Verarbeitung? 1617 Brauchen wir noch die Batch-Verarbeitung? 1618 Abgrenzung der Online- und Batch-Charakteristiken 1620 Client/Server-Charakteristiken1621 13.3.2 Wahl des geeigneten Trägersystems 1622 Dialog-Verarbeitung1622 Foreground-Verarbeitung1622 Background-Verarbeitung1623 Batch-Verarbeitung1624 Permanent laufende Anwendungen, Started Tasks (STC) und Message-Konzept 1625 13.3.3 Die verschiedenen Betriebsformen 1626 Normale Betriebszeiten Erweiterte Betriebszeiten (erweiterte Verfügbarkeit) 24-Stunden-Betrieb (permanente Verfügbarkeit) 1626 1626 1627 Zielsetzungen eines Multi-User-Betriebs Ein Wort zur 'Permanenz' 1628 1628 13.3.4 Programm-Design-Überlegungen 1629 Programmübergreifende Maßnahmen Der Einsatz von SQL: Möglichkeiten und Restriktionen 1629 1631 13.4 Programmentwicklung unter DB2 13.4.1 Unterstützte Programmiersprachen 1633 1633 Embedded SQL Call Level Interface für C- und C++-Programme (CLI bzw. ODBC) Java-Sprachschnittstellen (JDBC und SQLJ) 1633 1633 1634 JDBC-API für Java-Anwendungen SQLJ-API für Java-Anwendungen pureQuery für Java-Anwendungen 1634 1634 1634 13.4.2 Entwicklung einer DB2-Anwendung 1635 Überblick der relevanten Entwicklungs-Komponenten Entwicklungs-Komponenten für Embedded SQL 1635 1636 DB2I: DCLGEN-Generierung 1637 SQL-Preprozessor (SQL Statement-Coprozessor bzw. DB2-Coprozesor) 1638 DB2-Precompiler1639 Aufgaben des Precompilers 1639 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XLIV Precompiler bzw. Coprocessor-Optionen (Processing Options) 1640 Standard-SQL1643 Modifikationen der Programm-Source durch den Precompiler 1645 Entwicklungs-Komponenten für Java-Anwendungen 1647 JDBC-API1647 SQLJ-API1647 Entwicklungs-Komponenten für CLI/ODBC-Anwendungen 1648 BIND-Prozess1649 Aufgaben des BIND-Prozesses Objekte des Bind-Prozesses 1649 1650 DBRM: Database Request Module 1650 Package1650 Package-Zuordnung zu mehreren Collections 1652 Was ist eine invalidated Package? 1653 Plan1654 Package-Liste im Plan: PKLIST 1656 Nutzung von remote Packages 1658 Packages von Routinen 1658 Die Zuordnung eines Plans zu einem Programm 1659 Dynamische Plan-Zuordnung im CICS 1660 Was ist ein invalidated Plan? 1660 Die verschiedenen BIND- und REBIND-Typen 1661 STATIC BIND: BIND PACKAGE, BIND PLAN 1661 REBIND PACKAGE, REBIND PLAN 1662 FREE PACKAGE, FREE PLAN, DROP PACKAGE 1662 DYNAMIC BIND 1662 AUTOMATIC REBIND 1663 INCREMENTAL BIND 1663 DEFERRED BIND 1663 Relevante Katalog-Tabellen 1664 Konvertierung der in Plänen eingebundenen DBRMs in Packages PLAN Management (müsste eigentlich Package Management heißen) 1664 1665 Binder (Linkage Editor) 1666 Aktivieren der Attachment-Facility-Schnittstellen 1666 13.4.3 Beispiel- und Hilfs-Programme: DSNTIAD, DSNTEP2/4 und DSNTIAUL 1667 Übersicht1667 DSNTIAUL1668 DSNTIAUL-Return-Codes1669 DSNTIAUL-Beispiel1669 DSNTEP2/DSNTEP41671 Datasets für DSNTEP2/DSNTEP4 1671 DSNTEP2/DSNTEP4-Return-Codes1671 Eingabe-Parameter für DSNTEP2 bzw. DSNTEP4 1672 DSNTEP2/DSNTEP4-Beispiel1673 13.5 SQL-Spracheinsatz in Anwendungsprogrammen 13.5.1 Übersicht der Sprachschnittstellen 1674 1674 Interactive SQL, Embedded SQL, CLI, Static SQL und Dynamic SQL 1674 EXEC-Level-API: Embedded SQL 1675 Behandlung von Datenmengen 1677 CLI: Call-Level-Interface bzw. ODBC-Schnittstelle 1678 Java-Schnittstellen1680 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen JDBC - Java Database Connectivity SQLJ - SQL for Java XLV 1682 1683 REXX-Schnittstellen1686 13.5.2 Grundstruktur eines DB2-Programmes im EXEC-Level 1687 Relevante Komponenten Basis-Codier-Regeln für SQL-Statements 1687 1688 Allgemeine Regeln 1688 Assembler-Besonderheiten1689 C-Besonderheiten1689 COBOL-Besonderheiten1690 PL/I-Besonderheiten1693 13.5.3 Definition der Variablen und Daten-Strukturen 1694 Definition der SQLCA (SQL Communication Area) 1695 Beschreibung der SQLCA-Struktur-Komponenten SQLCA-Definitions-Struktur: Beispiele COBOL und PL/I 1695 1698 Tabellen- und View-Deklarationen Host-Variablen und NULL-Indikatoren 1699 1701 Typen: Host-Variablen und Host-Strukturen Einlesen von NULL-Values (NULL-Markierungen) Setzen von NULL-Werten (NULL-Markierungen) Einsatzspektrum von Host-Variablen und Indikatoren Erweiterte NULL-Indikator-Variablen (Extended Indicator Variables) 1701 1703 1705 1707 1708 Host-Variablen-Arrays1710 Unterstützte Daten-Typen (mit SQLTYPE) 1711 Konvertierungsregeln zwischen DB2-Spalten und Host-Variablen 1713 Fehlerbehandlung1716 Überblick1716 Returncode-Analyse 1717 SQLCA - SQL Communication Area 1717 Auszug einiger relevanter SQLCODEs und SQLSTATEs 1718 WHENEVER1719 DSNTIAR, DSNTIAC 1719 GET DIAGNOSTICS-Statement Behandlung schwerer Fehler 1720 1722 13.5.4 Cursor-Konzept 1723 Übersicht der Sprachmittel Überblick über die Cursor-Typen 1723 1726 Ist die Result Table des Cursors read-only oder updateable? 1727 Non-Scrollable Cursor 1729 Deklaration des Cursors: DECLARE CURSOR Eröffnen des Cursors: OPEN Bereitstellen einzelner Zeilen der Result Table: FETCH Positioned Update und Delete: WHERE CURRENT OF Schließen des Cursors: CLOSE 1729 1731 1731 1732 1733 Explizites Schließen des Cursors 1733 Implizites Schließen des Cursors 1733 Statische und dynamische Result Table und ableitbare Integritäts- und Performance-Probleme beim Cursor-Konzept Mengenverarbeitung auf Realtime-Daten: das ewige Rätsel 1734 1736 Scrollable Cursor 1738 Positionierungs-Möglichkeiten in der Result Table 1738 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XLVI Cursor- und FETCH-Typen und ihre Sichten auf die Daten der Result Table Statischer Scrollable Cursor (Statisches Cursor-Modell) 1739 1740 Deklaration des Cursors: DECLARE CURSOR .. SCROLL .. 1740 Informationsbereitstellung eines Static Scrollable Cursors 1741 Manipulationen über die Result Table eines Static Scrollable Cursors 1743 Dynamischer Scrollable Cursor (Dynamisches Cursor-Modell) 1744 Deklaration des Cursors 1744 Verarbeitung einer Zeilen-Gruppe (Rowset) 1745 Einlesen eines Rowsets: FETCH FOR n ROWS COBOL-Programm-Beispiel eines Rowset-Cursors mit GET DIAGNOSTICS Scrollable Cursor: Positionierung mit Rowsets 1745 1746 1750 Einfügen eines Rowsets: INSERT .. FOR n ROWS Analyse der Rowset-Verarbeitungs-Ergebnisse mit GET DIAGNOSTICS Einfluss des UOW/UOR-Konzepts auf die Cursor-Verarbeitung Zusammenfassung der relevanten Cursor-Typen und der zu definierenden Klauseln 13.6 Besondere Programmier-Techniken unter DB2 13.6.1 Effiziente Bereitstellung einer Result Table 1751 1751 1752 1754 1755 1755 Relevante WHERE- und ORDER BY-Komponenten Aufsetzen auf einen Composite Key Regeln für das Aufsetzen 1756 1757 1758 13.6.2 Online-Anwendungen 1759 Online-Parallel-Update1759 Online-Browsing/Blättern 1762 13.6.3 Batch- und Multi-User-Anwendungen 1763 Langlaufende oder ressourceintensive Anwendungen UOW und UOR 1763 1764 Die Lebensdauer einer UOW Wirkungen beim Abschluss einer UOR Einsatz von COMMIT (explizit oder implizit) 1764 1764 1765 Probleme, wenn kein COMMIT eingesetzt wird 1765 Was sind Kandidaten für die COMMIT-Schreibung? 1766 Konsequenzen des COMMIT-Einsatzes 1767 Unterstützung von Rollback und Restart der Batch-Programme 1768 Empfehlungen zum Design von Batch-Langläufern 1769 13.6.4 Anwendungen in verteilten Datenbankumgebungen 1770 Zugriffstypen und Protokolle 1770 DB2-Privat-Protokoll-Zugriff und DRDA-Zugriff Two-Phase-Commit (2-Phasen) in einer verteilten Datenbank-Umgebung Syntax-Anforderungen unterschiedlicher Systeme Programmvorbereitungen, Pläne und Packages SQL-Statement-Einsatz in Programmen Vorteile und Beschränkungen der Nutzung von dreiteiligen Objektnamen Behandlung von LOB- und XML-Werten bei remote Zugriffen Performance- und Integritäts-Aspekte 1770 1771 1771 1772 1773 1775 1775 1776 Block-Fetch1777 Limited und Continuous Block-Fetch 1778 Überblick1778 13.6.5 Behandlung von LOB- und XML-Werten 1780 Grundsätzliche Verarbeitungsmöglichkeiten für LOB-Werte 1780 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XLVII LOB-Daten-Typen und ihre Host-Variablen-Repräsentation 1782 LOB-Materialisierung1784 LOB-Referenzierung mittels LOB-Locator 1785 LOB-Verarbeitung mittels File-Referenz-Struktur 1786 Grundsätzliche Verarbeitungsmöglichkeiten für XML-Werte 1787 XML-Funktionen1788 Bereitstellungs-Techniken für XML-Daten SQL-XML-Funktionen: Beispiele für Komposition und De-Komposition 1789 1790 XML-Daten-Typen und ihre Host-Variablen-Repräsentation 1791 13.6.6 Entwicklung und Einsatz von Stored Procedures 1793 Programmtechnische Umsetzung Aufruf-Varianten einer Stored Procedure Parameter der Stored Procedure Codier-Beispiele: Aufruf und Parameterübergabe 1793 1793 1793 1794 Stored Procedure ohne Result Sets 1794 13.6.7 Entwicklung und Einsatz von User-defined Functions 1796 Überblick der Nutzungsmöglichkeiten Aufruf-Varianten einer externen Funktion Programmtechnische Besonderheiten 1796 1797 1798 Scratchpad-Bereich1798 Parallellauf-Besonderheiten1798 Parameter der User-defined Function Codier-Beispiele: Aufruf und Parameterübergabe 1798 1799 External Scalar Function External Table Function 1799 1801 13.6.8 Entwicklung und Einsatz von Triggern 1803 Codier-Beispiele: Aufruf mit Übergabe einer Transition-Table 1803 13.6.9 MQ-Series-Funktionen 13.6.10 Nutzung von Globalen Variablen 1804 1807 Session-Variablen und Scalar-Funktion GETVARIABLE 1807 13.6.11 Behandlung unterschiedlicher Codier-Sets für Host-Variablen 13.7 CAF - Call Attachment Facility 13.7.1 Vorteile der CAF-Nutzung 13.7.2 Entwicklung eines CAF-Programms 13.7.3 Nutzbare CAF-Funktionen 1809 1810 1810 1810 1811 Implizite Connection Explizite Connection Generelle Ausprägungen einer CAF-Connection 1812 1812 1812 13.8 RRSAF - Recoverable Resource Manager Services Attachment Facility 13.8.1 Vorteile der RRSAF-Nutzung 13.8.2 Entwicklung eines RRSAF-Programms 13.8.3 Nutzbare RRSAF-Funktionen Abschluss einer UOW 1813 1813 1813 1814 1815 13.9 Universal Language Interface - Universelle Schnittstelle (DSNULI) 13.10 Dynamic SQL 13.10.1 Abgrenzung zu Static SQL 1816 1817 1817 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen XLVIII 13.10.2 Verhalten von Dynamic SQL-Statements (Statement Behavior) 13.10.3 Funktionsspektrum von Dynamic SQL 1818 1819 Manipulationen und Informationsanforderungen Parameter Markers (?) SQLDA - SQL Descriptor Area Struktur-Komponenten der SQLDA Beispiele der vom Precompiler/Preprozessor generierten SQLDA-Host-Variablen-Strukturen 13.10.4 Manipulationen (Non-SELECT) 1819 1820 1821 1822 1823 1824 Feste Parameter Variable Parameter 1824 1826 13.10.5 Informations-Anforderungen (SELECT) 1827 Feste Parameter: Fixed-List-SELECT Variable Parameter: Varying-List-SELECT 1827 1827 13.10.6 Statement Caching 1830 Prepare-Typen und -Ausführungsarten Ersetzen von Literalen durch generische &-Variablen (Literal-Replacement) Sperr-Dauer bei dynamischen SQL-Statements 13.10.7 Resource Limit Facility (RLF) - DB2 Governor 13.10.8 Vor- und Nachteile von Dynamic SQL 13.11 Programmier-Empfehlungen 1831 1832 1832 1833 1834 1835 14 SQL-Performance 1838 14.1 Grafischer Wegweiser durch das Kapitel 14 - SQL-Performance 14.2 Grundlagen der SQL-Performance 14.2.1 Einleitung, Ansätze der Optimierung 1838 1839 1839 Leistungsbeeinflussende Faktoren Optimierungs-Möglichkeiten und -Maßnahmen 1839 1840 14.2.2 Komponten der Datenbeschaffung (Stages) 1842 Aufgabenteilung von RDS, DM und BM 1842 14.2.3 DB2-Tools zur Unterstützung von Performance-Maßnahmen 1844 Übersicht1844 DB2-Trace1846 Leitlinien für Traces 1846 Trace-Typ1847 14.2.4 Thread-Management 1849 Installations-Parameter für das Thread-Management Die Rolle von Prozess, Enklave, Transaktion, Thread, TCB und SRB Allied Thread 1849 1850 1851 Thread-Lebenszyklus1851 Thread-Wiedernutzung (reuse) 1852 DBAT - Database Access Thread 1852 14.2.5 Die relevanten Zeiten einer Statement-Abwicklung 1854 DB2-Accounting-Zeiten1854 14.2.6 Parallel-Verarbeitung 1856 Parallel-Verarbeitungs-Typen1856 Kandidaten für Parallel-Verarbeitung 1856 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen Query-Typ: CPU bound oder I/O bound Effekte der Parallel-Verarbeitung Aktivierung der Parallel-Verarbeitung Voraussetzungen für die Parallel-Verarbeitung Restriktionen bei der Nutzung der Parallel-Verarbeitung Technische Abwicklungs-Modelle XLIX 1858 1858 1858 1859 1859 1860 Dynamic Record-Range-Partitioning anstelle Static Keyrange-Partitioning Straw-Modell für eine effiziente Workload-Verteilung 14.2.7 Bedeutung der Statistiken für Optimizer und Zugriffspfad-Analyse Überblick der DB2-Statistik-Komponenten Woher bezieht der Optimizer seine Informationen zur Zugriffspfad-Bestimmung? Statistik-Feedback: Dokumentieren und Ausschreiben fehlender oder kritischer Statistiken durch den Optimizer 14.3 Zugriffspfad-Analyse des DB2-Optimizers 14.3.1 Aufgaben des Optimizers 14.3.2 Parsing und Parse Tree 1860 1861 1862 1862 1864 1865 1867 1867 1867 Praktisches Beispiel der Optimizer-Maßnahmen im Rahmen des Parsings 14.3.3 Entscheidungs-Faktoren des Optimizers und Zugriffspfad-Varianten 14.3.4 Optimization Bedingte Verarbeitungsanweisung (Prädikat) 1868 1869 1870 1870 Erläuterung1870 Prädikat-Typen1871 Prädikat-Kategorien1871 Einsatz von Literalen (Konstanten) oder Variablen (Input-Variablen) 1872 Filterung1874 Inhaltliche Verteilung von Datenwerten Filter-Faktor (FF) 1875 1875 Aufgabenstellung und Wirkung 1875 Filter-Faktor-Typen1876 Filter-Faktor für gleichmäßige Streuung: Einfache/Simple Prädikate 1877 Filter-Faktor für gleichmäßige Streuung: Interpolations-Formeln für Range-Prädikate 1877 Filter-Faktor für gleichmäßige Streuung: Default-Filter-Faktoren für Interpolation-Formeln (Input-Variablen) 1878 Filter-Faktor für ungleichmäßige Verteilung: Frequenz- (FREQVAL) und Werteverteilungs-Statistiken (KEYCARD) für Spalten oder Spalten-Gruppen 1879 Filter-Faktor für ungleichmäßige Verteilung: Häufigkeitsverteilung (HISTOGRAM) für Spalten oder Spalten-Gruppen 1879 Manuelle Ermittlung des Filter-Faktors 1880 Index-Probing (Safe Query Optimization Technik) STAGE1, STAGE2 und INDEXABLE 1881 1882 Indexable Prädikate 1885 Komplexe Prädikatvorgaben 1886 Column-Correlation1887 Reihenfolge der Prädikat-Bewertung 1888 Aufwands-Kalkulation der SQL-Anforderung 1889 Prozess-Kostenschätzung1889 Auswahl des Zugriffspfades 1889 IO-Kostenermittlung1890 Timeron1891 14.4 DB2-Zugriffspfade auf die Daten 14.4.1 Analysemöglichkeit der Zugriffspfade 1892 1892 Rahmenbedingungen1892 Komponenten der Zugriffspfad-Analyse und EXPLAIN_Tables 1893 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen L EXPLAIN und EXPLAIN_TABLES 1894 EXPLAIN_Tables: Überblick 1894 EXPLAIN1895 Einsatz von Input-Variablen beim EXPLAIN 1896 Beeinflussung der Optimizer-Entscheidungen durch OPTHINT oder Überschreibung von Selektivitäts-Statistiken 1896 EXPLAIN-Statement Beispiele 1897 EXPLAIN eines einfachen SQL-Statements mit Analyse der PLAN_TABLE 1897 DSN_STATEMNT_TABLE: Analyse-Möglichkeit 1898 DSN_STATEMENT_CACHE_TABL: Analyse von dynamischen SQL-Statements aus dem Dynamic Statement Cache 1899 EXPLAIN einer Package ohne REBIND 1901 DSN_PREDICATE_TABLE und DSN_PREDICATE_SELECTIVITY und DSN_STAT_FEEDBACK-Tabellen: Beispiel-Szenario 1902 Beispielhaftes Statement als Vorgabe mit EXPLAIN-Statement 1902 Inhalte der Tabelle DSN_PREDICAT_TABLE 1902 Inhalte der Tabelle DSN_FILTER_TABLE 1903 Inhalte der Tabelle DSN_PREDICATE_SELECTIVITY 1904 Inhalte der Tabelle DSN_STAT_FEEDBACK 1904 14.4.2 I/O-Zugriffs-Typ 1905 Direktes Einlesen (Synchronous Read) Sequential Prefetch und Dynamic Prefetch 1905 1906 Dynamic Prefetch 1907 List Prefetch 1907 Nutzung dieser Technik List-Prefetch im Index List-Prefetch auf Daten-Pages Der Ausweis des List-Pretches in der PLAN_TABLE Vor- und Nachteile des List-Prefetch-Verfahrens 1907 1907 1908 1909 1910 14.4.3 Einfache Zugriffspfade 1911 Tablespace Scan (File Page Set Scan) 1913 Index-Zugriffe1914 Matching Index Scan Non-Matching Index Scan Equal Unique Index Access IN-List Index Scan 1914 1916 1917 1918 Einzelne IN-Liste 1918 Mehrere IN-Listen 1919 One-Fetch Access Index-Only Access Range-List-Access (Aufsetzlogik, Inclusion-Methode, Blätter-Funktionalität, Pagination) Multiple Index Access Multiple DocID Index Access über XML-Indizes Direkt-Zugriff auf die Daten unter Umgehung von Indizes 1920 1921 1922 1923 1924 1926 Einleitung und unterstützte Direkt-Zugriffs-Typen Direkter Zeilenzugriff über einen Unique Hash-Key Direkter Zeilen-Zugriff über die ROWID Direkter Zeilen-Zugriff über die RID-Funktion 1926 1927 1929 1930 14.4.4 Komplexe Zugriffspfade 1931 Übersicht1931 Join1932 Composite Table und New Table, Outer Table und Inner Table Ausweis von Joins in der PLAN_TABLE 1932 1933 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen LI Join-Typ1934 Inner Join 1934 Outer Join 1935 Historische Entwicklung der Outer Joins 1937 Joins im Bereich des Data Warehouses: Star Join oder Paarweiser Join für Star-Schema und Snowflake-Schema 1939 Wann wird der Star Join genutzt? 1941 Ausweis eines Star Joins in der PLAN_TABLE 1942 Wann wird der Paarweise Join genutzt? 1943 Ausweis eines Paarweisen Joins in der PLAN_TABLE 1944 Klassische Join-Methoden 1945 Nested Loop Join 1945 Materialisierung/Sortierung bei einem Nested Loop Join 1948 Merge Scan Join 1949 Hybrid Join 1951 Beeinflussung der Outer-Table-Auswahl und der Join-Methode 1953 Komplexe Query-Typen 1954 Correlated und Non-Correlated Query-Typen 1954 Query-Block1955 Der Nummerierungs-Wahnsinn der QBLOCKNO 1955 Subquery1956 Non-correlated Subquery 1957 Correlated Subquery 1959 Table Expression 1961 Common Table Expression 1961 Rekursives SQL 1962 Nested Table Expression 1963 Scalar Full-Select SELECT FROM FINAL/OLD TABLE mit Data-Change-Statement 1964 1965 Set-Operator1967 Trigger-Package1968 Sortierung1969 Einige Worte zum Scrollable Cursor 1970 Parallel-Verarbeitung1971 Materialisierung1972 14.4.5 Spezielle Zugriffspfade 1973 IBM Smart Analytics Optimizer (Accelerator Server) 1973 Überblick1973 Technisches Konzept 1974 Integration ins DB2 z/OS 1975 AQR - Automatic Query Rewrite bei Einsatz von MQTs (Materialisierte Query Tables) 1976 Überblick1976 Nutzungs-Potential von MQT und AQR 1980 Temporal Tables 1981 Einleitung1981 Bi-Temporal Table 1982 DDL-Beispiele für SEMTYP, REFERENT und SEMINAR (als Auszug aus dem Seminar-Daten-Modell) 1982 Explain-Analysen1985 Einfache SELECT-Statements 1985 Komplexe SELECT-Statements (Join) 1987 BUSINESS_TIME1987 SYSTEM_TIME1988 Manipulations-Statements1991 14.5 Beeinflussung der Zugriffspfad-Entscheidungen 1992 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen LII 14.5.1 Statement-Modifikationen durch den Optimizer 1993 Prädikat-Modifikationen und Einfügungen Modifikationen der Join-Verarbeitung 1993 1994 Konvertierung von Subqueries in Joins Transformation von Non-Correlated Subqueries in Correlated und umgekehrt (De-Correlation) 1995 1995 Materialisierungs-Entscheidung1995 Prädikate, die bei der Evaluierung immer 'wahr' oder immer 'falsch' ergeben 1996 OR 0 = 1 OR 0 <> 0 1996 1996 14.5.2 Möglichkeiten für Anwendungsentwickler bei der Beeinflussung des Zugriffspfads Veränderung von Objekt-Strukturen Manipulation der Statistiken Umschreiben von SQL-Statements OPTIMIZE FOR n ROWS BIND-Parameter REOPT und seine Auswirkungen 1997 1997 2000 2001 2003 2004 14.5.3 Extended Optimization: Beeinflussung der Zugriffspfad-Optimierung durch Vorgabe von Performance-Einfluss-Faktoren Überblick der Komponenten Selektivitäts-Statistiken: Überschreibung der vom Optimizer herangezogenen Statistikwerte (Statement-level selectivity overrides) Überblick der relevanten Komponenten Szenario zur Vorgabe der Statistik-Vorgaben 2005 2005 2007 2007 2008 DSN_USERQUERY_TABLE: Beispiel Selektivitäts-Statistiken 2009 DSN_PREDICATE_SELECTIVITY : Beispiel Selektivitäts-Statistiken 2010 BIND/REBIND mit Ergebnis-Protokollierung 2010 OPTHINT: Beeinflussung der Entscheidung des Optimizers mittels Optimization-Hints 2011 Komponenten2011 Voraussetzungen zur Nutzung 2013 Prioritäten der Berücksichtigung von Optimization Hints 2013 Statement-Level Optimization Hint - Nutzung des Zugriffspfad-Repositories (Access Path Repository) 2014 Statement-Level Optimization Hint: Parameter-Spezifikationen (Parameter Hints) 2015 Statement-Level Optimization Hint: Zugriffspfad-Empfehlungen (Access Path Hints) 2017 BIND/REBIND mit Ergebnis-Protokollierung 2018 User-Level Optimization Hint: Vorgabe von Zugriffspfad-Empfehlungen für den Optimizer über die PLAN_TABLE (OPTHINT - Optimization Hints) 14.6 Stabilität von Zugriffspfaden und Zugriffspfad-Repository (Access-Path-Repository) 14.6.1 Komponenten des Zugriffspfad-Repositories (Access-Path-Repository) 14.6.2 Zugriffspfad-Stabilität: Bewahrung bzw. Kontrolle vorhandener Zugriffspfade Komponenten der Zugriffspfad-Stabilität Kontrolle der Zugriffspfad-Stabilität Was tun bei Änderung des Zugriffspfads 2019 2022 2023 2024 2024 2025 2026 14.7 Zusammenfassung der relevanten Performance-Komponenten 14.7.1 DB2-interne Automatismen 2027 2027 Zugriffspfad-Effizienz Mögliche Zugriffspfade 2027 2030 14.7.2 Systemgenerierungs- und Installations-Optionen 14.7.3 Objekt-Definitionen 14.7.4 Anwendungs-Design und -Programmierung 2031 2033 2035 SQL-Query-Empfehlungen2036 Was tun bei langlaufenden Statements? 2037 Zusammenfassende Empfehlungen für Anwendungs-Entwickler 2038 © Copyright DGD GmbH Germany 65201 Wiesbaden DB2DB2-Theorie Theorieund undPraxis Praxis::Inhaltsverzeichnis Lizenz-Variablen 14.8 Testdaten für die Performance-Tests 14.8.1 Physisches Daten-Modell für Performance-Tests 14.8.2 Metadaten-Übersicht der Test-Objekte 14.8.3 DDL für die Performance-Tests 14.8.4 Beispiel-SQL-Statements zur Einfügung der Daten 14.8.5 Beispiel-Ausdrucke der Tabellen 14.8.6 Beispiel-SQL-Statement zur Analyse der PLAN_TABLE für die Performance-Tests © Copyright DGD GmbH Germany 65201 Wiesbaden LIII 2039 2039 2039 2041 2044 2045 2047