Theorie und Praxis

Werbung
© 2008 AGI-Information Management Consultants
May be used for personal purporses only or by
libraries associated to dandelon.com network.
NORBERT DENNE
Theorie und Praxis
DGD-Edition
DB2 - Theorie und Praxis
Inhaltsverzeichnis
Inhaltsverzeichnis
Relationales Modell
1.1
1.2.
1.3
1
Entwicklungsgeschichte
'
1.1.1
Entwicklung innerhalb IBM
1.1.2
Entwicklung außerhalb IBM
.
1.1.3
Kompatibilität zu DB2/MVS bzw. DB2 for OS/390
1.1.3.1
Kompatibilität zwischen den IBM-DB2-Produkten
1.1.3.1.1 DB2-UDB - Universal Database V5
1.1.3.2
Kompatibilität zwischen Fremdhersteller-Produkten und DB2-Produkten "
1.1.4
Standardisierung von Datenbank-Methoden und Techniken
1.1.4.1
Standardisierungs-Organisationen
1.1.4.2
Wichtige allgemeine Standards
1.1.4.3
Datenbank-Standards
1.1.4.3.1
SQL-Standards
1.1.4.3.2 ANSI/SPARC 3-Schemata-Modeli
1.1.5
Entwicklungsgeschichte von DB2-MVS bzw. DB2 for OS/390
1.1.5.1
Grober Überblick
1.1.5.2
Die wesentlichen Funktionen der Release-Entwicklungen
1.1.5.2.1 Version 2 - Release 1
•
. 1.1.5.2.2 Version 2 - Release 2
1.1.5.2.3 Version 2 - Release 3
.
1.1.5.2.4 Version 3
,
'
1.1.5.2.5 Version 4
1.1.5.2.6 Version 5 - DB2 for OS/390
1.1.5.2.7 ... und was kommt nach Version 5?
Terminologie
'
1.2.1
Informationsablage in Tabellenform
1.2.1.1
Tabelle (Table, Relation)
1.2.1.2
Spalte (Attribut)
1.2.1.3
Zeile (Tupel)
1.2.1.4
Datenwert (Value)
1.2.1.5
Primary-Key (PK)
1.2.1.6
Foreign-Key (FK)
1.2.1.7
Index
1.2.1.8
Daten-Repräsentation und -Ablage
1.2.2
Informationsbeziehungen
1.2.3
Relationale Sprachschnittstelle
1.2.3.1
SQL
. 1.2.3.3
QBE
1.2.3.2
QUEL
1.2.4
Terminologievergleich konventionelle Systeme - RDBMS
1.2.5
Schwächen des Relationen-Modells
1.2.6
Die Auswirkungen der bisherigen Standardisierungsmaßnahmen
Anforderungen an ein relationales DBMS
1.3.1
Codd'sches Anforderungsprofil - RM/V2
1.3.2
Problemzonen konventioneller DBMS-Typen
1.3.2.1
Strukturierte DBMS
1.3.2.2
Lineare DBMS
1.3.2.3
Komplexe DBMS (OODBMS)
1.3.2.4
Fazit
1.3.3
Standard-SQL
DB2-System-Aufbau
2.1
DB2-System-Komponenten und Zusatz-Produkte
2.1.1
DB2-System-Komponenten
2.1.2
DB2-Zusatz-Produkte von IBM
2.1.2.1
MVS- bzw. OS/390-Plattform
2.1.2.1
Workstation-Plattform
2.1.3
Sonstige Tools von IBM
2.1.4
Sonstige Tools diverser Software-Hersteller
2.1.4.1
Entwicklungswerkzeuge für die PAEs
2.1.4.2
Verwaltungswerkzeuge für die DBADMs
_
.*
1
1
1
2
2
2
4
4
4
5
5
6
7
8
8
9
9
10
11
13
15
18
23
25
25
25
25
26
26
27
27
30
31
31
32
35
36
36
37
37
38
39
39
51
51
52
54
57
58
61
61
61
61
61
62
62
63
63
63
DB2 - Theorie und Praxis
Inhaltsverzeichnis
2.2
Betriebssystem-Komponenten
2.2.1
MVS-System-Schichten
2.2.2
DB2-Subsystem (Lokation oder Server)
2.2.3
DB2-Adreßraum-Konzept
2.2.3.1
2.2.3.2
2.2.3.3
2.2.3.4
2.2.3.5
2.3
65
65
66
68
Trägersysteme (Allied Agents)
System-Dienste (System Services)
Datenbank-Dienste (Database Services)
Internal Resource-Lock-Manager (IRLM)
Distributed Data Facilities (DDF)
69
69
69
70
70
Anwendungs-Kommunikations-Komponenten
2.3.1
Attach-Facility, Connection und Thread
2.3.2
Zugriff auf DB2-Ressourcen aus Anwendungen heraus
71
71
71
2.3.2.1
2.4
2.5
Schnittstellen zu den Trägersystem-Typen
2.3.2.1.1 TSO-Schnittstelle (DSNELI)
2.3.2.1.2 CICS-Schnittstelle (DSNCLI)
2.3.2.1.3 IMS-Schnittstelle (DFSLI000)
2.3.2.1.4 Batch-Schnittstelle mit CAF (DSNALI)
2.3.2.1.5 Recoverable Resource Manager-Schnittstelle (DSNRLI)
2.3.2.2
Dateiverarbeitungsmöglichkeiten der Trägersystem-Typen
2.3.3
Der Einsatz von Stored Procedures
2.3.3.1
System-Konzept
2.3.3.2
Vorteile und Nachteile von Stored Procedures
Daten-Kommunikations-Komponenten
2.4.1
Verteilung der DB2-Daten (distributed data)
2.4.1.'1
Die Client-Server-Architektur (C/S)
2.4.1.2
DRDA - Distributed Relational Database Architecture
2.4.1.2.1 Systemgesteuerter Zugriff
2.4.1.2.2 Anwendungsgesteuerter Zugriff
v
2.4.1.3
Technologische Grenzen der Verteilung von Daten
2.4.2
Gemeinsame Nutzung der DB2-Daten (shared data)
2.4.2.1
DB2 Data Sharing (DS)
2.4.2.1.1 Argumente für Data Sharing
2.4.2.1.2 Data Sharing im MVS-Sysplex
2.4.3
DPROP - Data Propagator (IMS-DB2, DB2-IMS)
DB2-Objekte, DB2-System-Ressourcen einer Lokation
2.5.1
DB2-Objekt-Typen
2.5.1.1
Benutzerorientierte DB2-Objekt-Typen
2.5.1.1.1 Tabelle/Table (Base Table)
2.5.1.1.2 Temporäre Tabelle/Table (Global Temporary Table)
2.5.1.1.3 DB2-View (Virtual Table)
2.5.1.1.4 Synonym
2.5.1.1.5 Alias
'
2.5.1.2
Systemorientierte DB2-Objekt-Typen
2.5.1.2.1 Index
2.5.1.2.2 Tablespace
2.5.1.2.3 Indexspace
2.5.1.2.4 DB2-Database
2.5.1.2.5 Storage Group
2.5.2
DB2-System-Ressourcen
•
2.5.2.1
DB2-Directory - Database DSNDB01
2.5.2.2
DB2-Katalog-Database DSNDB06
2.5.2.3
Workfiles - Database DSNDB07
2.5.2.4
Datenspeicherung von System-und Benutzerdaten
2.5.2.5
Utility-Arbeitsdateien
2.5.2.6
Log-Dateien
•
2.5.2.7
Bootstrap-Dateien
2.5.2.8
DB2-Bibliotheken
,
Voraussetzungen für eine DB2-Einführung
3.1
110
Allgemeine Voraussetzungen
3.1.1
Personelle Voraussetzungen
3.1.2
3.1.1.1
Daten-Administration (DA)
3.1.1.2
Datenbank-Administration (DBA)
Organisatorische Voraussetzungen
3.1.2.1
Auswirkung auf die Anwendungs-Entwicklung
71
71
72
72
72
73
73
74
74
75
76
76
77
78
81
82
84
85
86
86
87
89
91
91
92
92
95
96
98
99
100
100
103
104
104
105
106
106
107
107
108
108
108
109
109
110
111
*
A
111
111
112
112
DB2 - Theorie und Praxis
Inhaltsverzeichnis
3.1.3
3.2
3.3
3.4
3.5
3.6
4
DB2-Sprachschnittstellen
,|
Ü
4.1
4.2
i
I
4
:
i
!
.
4.3
t
!
j
!
.
:
i
|
I
:
:
j
|
\
I
'
l
|
Technische Voraussetzungen für DB2 Version 5 for OS/390
3.1.3.1
Hardware
3.1.3.2
Betriebssystem-Software
'
3.1.3.3
Betriebssystemnahe Standard-Software
3.1.3.4
Programmiersprachen
3.1.3.5
TP-Monitore u'nd-Query-Manager
3.1.3.6
Anwendungsentwicklungs-Tools
3.1.4
Weitere Voraussetzungen für DB2
3.1.4.1
Integritätssicherung
3.1.4.2
Namenskonventionen
3.1.4.2.1 Lokale DB2-Objekte
3.1.4.2.2 Verteilte DB2-Objekte (remote)
3.1.4.2.3 Sprechende Objektnamen versus nichtsprechende Namen
Abgrenzung Produktionssystem-Testsystem
Datenbank-Hierarchie
Informations-Aktualität
Was ist neu im DB2?
Migration ins DB2
.
Benutzergruppen und deren Anforderungen
DB2-Sprachschnittstellen für die Benutzergruppen
4.2.1
Übersicht der TSO-DSN-Commands
4.2.2
Übersicht der SQL-Statements
4.2.3
DB2-Befehle/DB2-Commands
4.2.4
DB2-Hilfsprogramme/DB2-Utilities
4.2.5
Standalone Utilities/Service Aids
4.2.6
IMS-Commands
v
4.2.7
CICS-Commands
4.2.8
MVS-Commands
4.2.9
TSO-CLISTs
DB2I: Masken der interaktiven DB2-Oberfläche
4.3.1
Einstiegs-Menü (Primary Option Menü)
4.3.2
D - DB2I-Defaults
4.3.2.1
Cobol-Defaults
4.3.3
1 - SPUFI: SQL Processor Using File Input
4.3.3.1
SPUFI-Steuerungsmaske
4.3.3.2
SPUFI-Defaults
4.3.3.3
SPUFI-Edit-Maske
4.3.3.4
SPUFI-Browse-Maske
4.3.4
2 - DCLGEN: Declarations Generator
4.3.4.1
Eingabemaske
4.3.4.2
Beispiel einer generierten Ausgabe
4.3.5
3 - Program Preparation
4.3.5.1
Steuerungsrriaske
4.3.5.2
Program Preparation'Compile, Link and Run Panel.'
4.3.5.3
Include des Attachment-Facilities von SYSLIB
4.3.5.4
Beispiel einer generierten Umwandlungs-Prozedur
4.3.6
4-Precompile
4.3.7
5- BIND /REBIND / FREE
4.3.7.1
BINDPACKAGE
4.3.7.1.1 Steuerungsmaske
4.3.7.1.2 Default Panel BIND PACKAGE
4.3.7.1.3- System Connection Type Panel
4.3.7.1.4 Connection Names Panel
4.3.7.2
BIND PLAN
4.3.7.2.1 Steuerungsmaske
4.3.7.2.2 Default Panel BIND PLAN
4.3.7.2.3 Package List Panel
4.3.8
6-Run
4.3.8.1
Anstoß über Panel
"
4.3.8.2
JCL-Beispiel eines Batch-Ausführungs-Jobs
4.3.9
7 - DB2-Commands
114
114
115
115
116
117
117
118
119
120
122
123
124
126
128
129
130
132
134
_
134
135
137
138
145
148
150
151
152
153
154
155
155
156
156
157
157
159
160
161
162
162
164
165
165
166
167
167
168
169
169
169
170
171
171
172
172
173
173
174
174
174
175
DB2 - Theorie und Praxis
Inhaltsverzeichnis
4.3.10
5
i '
[
!
|
|*
176
177
178
178
178
179
Steuerungsmaske
Panel für Dataset Names
Beispiel für generierte Utility-Macros
Beispiel eines LOAD-Eingabebestandes
Beispiel von LOAD-Utility-Steuerkarten
Beispiel des generierten LOAD-Utility-Jobs
SQL-DDL-Data Definition Language
180
180
182
185
188
190
191
192
195
5.3
5.4
1
j
176
4.3.10.1
4.3.10.2
4.3.10.3
4.3.10.4
4.3.10.5
4.3.10.6
5.1
5.2
.
6
8 - DB2-Utilities
Dynamische DB2-Objektverwaltung
Anlegen DB2-Objekte: CREATE
5.2.1
Beispiele CREATE
Ändern DB2-Objekte: ALTER und RENAME
5.3.1
Beispiele ALTER
5.3.2
Beispiel RENAME
.
Löschen DB2-Objekte: DROP
5.4.1
Beispiele DROP
SQL-DML-Data Manipulation Language
196
6.1
6.2
196
197
197
199
SQL-DML-Anwendungsformen
SELECT - Datenabfragen
6.2.1
SELECT-Typen
6.2.2
Syntax des SELECT-Statements
;.
|
6.2.2.1
6.2.2.2
6.2.2.3
;
<
.
''
I
:
!
6.2.3
6.2.4
I
6.2.5
6.2.6
i
6.2.7
Grundformat des SELECT-Statements
Die logische Abarbeitungsfolge der SELECT-Parameter
SELECT-Klausel
6.2.2.3.1 Bereitstellung von Daten aus einer einzelnen Tabelle
6.2.2.3.2 Bereitstellung von Daten aus mehreren Tabellen (Join)
6.2.2.3.3 Verdichtung der Result Table (DISTINCT)
6.2.2.4
FROM-Klausel
6.2.2.4.1 Bereitstellung von Daten aus Basis-Tabellen bzw. Views
.
6.2.2.4.2 Inner und Outer Join
6.2.2.4.3 Sub-Select (nested table expression)
6.2.2.5
WHERE-Klausel
6.2.2.5.1 Einfache Vergleichsoperatoren
6.2.2.5.2 Subquery
6.2.2.6
ORDER BY-Klausel
6.2.2.7
GROUP BY-Klausel
Tabelleninhalte der Beispieltabellen - Abbildung 1-4
Einfache SELECT-Abfragebeispiele aus einer Tabelle
6.2.4.1
Einfache Spaltenauswahl (PROJECT)
6.2.4.2
Konstante und arithmetisch errechnete Werte
6.2.4.3
Vergabe von Namen für Spalten der Result Table
6.2.4.4
Auswahl bestimmter Zeilen mit WHERE
6.2.4.5
Variable Auswahl bestimmter Zeilen mit WHERE und CASE
Boolsche Verknüpfungen und Prädikate
"
6.2.5.1
AND-Verknüpfung
s
6.2.5.2
OR-Verknüpfung
6.2.5.3
NOT-Verknüpfung
6.2.5.4
BETWEEN-Prädikat
6.2.5.5
IN-Prädikat
6.2.5.6
LIKE-Prädikat
6.2.5.7
NULL-Prädikat
6.2.5.8
Mix von Prädikaten und Klammerung
Sortierung - ORDER BY
6.2.6.1
Auf-und absteigende Sortierung
6.2.6.2
Sortierung von abgeleiteten Spalten
Funktion (Built-in-Funktion)
6.2.7.1
Column Function
6.2.7.2
Scalar Function
6.2.7.2.1 Konvertierungs-Funktion
_
6.2.7.2.2 DateTime-Funktion
*
6.2.7.2.3 Sonstige Funktion
6.2.7.3
Verschachtelung von Column Function und Scalar Function
199
200
201
201
201
201
202
202
202
202
203
203
203
204
204
205
206
206
206
207
208
209
210
210
211
212
212
212
213
215
216
217
217
218
219
219
221
221
222
225
227
DB2 - Theorie und Praxis
Inhaltsverzeichnis
6.2.8
Gruppierung/GROUP BY
6.2.8.1
6.2.9
6.2.10
•
6.3
6.4
6.5
7
6.2.11
230
UNION und UNION ALL
Selektion aus mehreren Tabellen - JOIN
6.2.10.1
6.2.10.2
6.2.10.3
6.2.10.4
r
228
HAVING
Kartesisches, Produkt
Equi-Join
'
Join einer Tabelle mit sich selbst
Inner Join und Outer Join
6.2.10.4.1 Übersicht der Ergebnis-Typen
6.2.10.4.2 InnerJoin
6.2.10.4.3 Left Outer Join
6.2.10.4.4 Right Outer Join
6.2.10.4.5 Füll Outer Join
6.2.10.4.6 Sub-Select als Nested Table Expression
6.2.10.4.7 Verschachtelte Mehrstufen-Joins mit Sub-Select
231
233
'
•
.
233
234
235
236
236
238
239
240
241
242
244
Subquery (Sub-Query)
245
6.2.11.1
6.2.11.2
Allgemeine Syntax
Non-correlated Subquery
6.2.11.2.1 Subquery direkt nach einem Vergleichsoperator
6.2.11.2.2 Subquery nach IN
6.2.11.2.3 Subquery nach EXISTS
.
6.2.11.2.4 Subquery nach ANY bzw. SOME und ALL
6.2.11.3
Correlated Subquery
6.2.11.3.1 Verarbeitungsunterschiede zu non-correlated
6.2.11.3.2 Subquery direkt nach einem Vergleichsoperator
6.2.11.3.3 Subquery nach EXISTS
INSERT - Dateneinfügung
6.3.1
Beispiele für SQL-Dateneinfügungen
l
6.3.1.1
INSERT einer einzelnen Zeile
6.3.1.2
INSERT mehrerer Zeilen
245
247
247
248
249
250
251
251
252
252
253
254
254
255
UPDATE - Datenveränderung
6.4.1
Beispiele für SQL-Datenveränderungen
DELETE - Datenlöschung
6.5.1
Beispiele für SQL-Datenlöschungen
256
257
258
259
SQL-DCL-Data Control Language
260
7.1
260
260
DB2-Zugriffsschutzkonzept
7.1.1
Überblick
7.1.2
7.1.3
7.1.4
7.1.1.1
Vorüberlegungen
7.1.1.2
Welche Ressourcen können von DB2 geschützt werden?
7.1.1.3
Konsequenzen bei einer vollständigen Auslagerung auf einen ESM
7.1.1.4
Aufteilung der Sicherheitsfunktionen zwischen DB2 und einem ESM
Autorisierungs-Konzept
7.1.2.1
Übergabe der Autorisierungs-Identifikatoren
7.1.2.2
Primär-, Sekundär-und Current-Autorisierungs-Id
•
7.1.2.3
Zeitpunkt der Autorisierungsprüfung
'
7.1.2.3.1 Autorisierungsprüfung zur Bind-Zeit
7'.1.2.3.2 Autorisierungsprüfung zur Ausführungs-Zeit
Privilegien-Konzept
7.1.3.1
Privilegien-Struktur
,
7.1.3.2
Eigentümer (Owner) und Ersteller (Creator) eines Objektes
7.1.3.3
Explizite Privilegien
7.1.3.3.1 Grant-Typen und Privilegienbereiche
7.1.3.3.2 Zuordnung der Einzel-Privilegien zu DB2-Ressource-Typen
7.1.3.4
Implizite Privilegien
7.1.3.4.1 Owner eines Objekts
7.1.3.4.2 Administrations-Gruppen
Welche Privilegien werden wann benötigt?
7.1.4.1
Erforderliche Privilegien zur Verwaltung der DB2-Objekte
7.1.4.2
Die erforderlichen Privilegien eines Anwendungsentwicklers
7.1.4.3
Zusammenspiel von Autorisierungs-Id-Typen und Privilegien
7.1.4.3.1 Ausführung von Dynamic SQL-Statements •
7.1.4.3.2 Plan-und Package-Aktivitäten
260
261
262
263
264
264
265
266
266
267
268
268
269
270
271
272
273
273
275
278
278
280
281
281
282
DB2 - Theorie und Praxis
Inhaltsverzeichnis
7.2
7.3
7.4
8
9
GRANT - Erteilen DB2-Privilegien
7.2.1
Privilegien-Kategorien
7.2.2
Hierarchisches GRANT-Konzept
7.2.3
Beispiele GRANT
REVOKE - Aufheben DB2-Privilegien
7.3.1
Beispiele REVOKE
VIEW - Inhaltsbezogener Datenschutz
7.4.1
Besonderheiten bei der Anwendung in Programmen
283
283
284
286
289
292
293
294
DB2-Katalog
8.1
Aufbau und Inhalte
8.1.1
Zuordnung der Objekte zu Katalog-Tabellen
8.1.2
Referentielle Beziehungen der wichtigsten Katalog-Tabellen
8.2
Katalog-Abfragen
8.2.1
Katalog-Abfragen der Katalogbeschreibungen
8.2.2
Objekt-Abfragen für Anwendungs-Entwickler
8.2.3
Abfragen zur Überwachung der optimalen Speicherorganisation
8.2.3.1
Katalogspalten-Inhalte und kritische Werte
8.2.3.2
Katalog-Queries
.
8.2.4
Katalog-Queries über referentielle Beziehungen
8.2.5
Katalog-Queries zur Unterstützung und Kontrolle des Datenschutzes
8.3
Katalog-Veränderungen
296
296
298
299
300
300
301
303
303
306
309
311
312
Verfahrensunabhängigkeit
313
9.1
9.2
Separierung logischer und physischer Aspekte
DB2-Verfahrensunabhängigkeit
9.2.1
Katalog-Konzept
9.2.2
Unabhängigkeit zwischen Programmen und Daten
i
313
317
317
318
9.2.2.1
9.2.2.2
9.2.2.3
I
9.3
9.4
|
9.5
Verlagerung von Programmlogik in den DB2-Katalog
320
Abhängigkeit von DB2-Katalogstrukturen und SQL-Spracheinsatz
321
Konzepte zur Erreichung einer möglichst hohen Anwendungsportabilität
324
9.2.2.3.1 Normungs-Effekt durch den SQL-Spracheinsatz
324
9.2.2.3.2 Open Database Connectivity (ODBC) und der CLI-Spracheinsatz324
9.2.2.3.3 Einsatz von Standard-Routinen
325
9.2.2.4
Abweichungen von der Katalog-Dynamik
326
Vorteile und Grenzen des DB2-View-Konzepts
.
328
9.3.1
Vorteile des DB2-View-Konzepts
328
9.3.2
Grenzen des View-Konzepts
. 331
Die Nutzung von Stored Procedures
.
333
9.4.1
Daten-Bereitstellung und Manipulation in einer 'Black Box'
333
9.4.1.1
Vorteile einer Stored Procedure gegenüber einem Unterprogramm
334
9.4.2
Aufruf einer rerriote Stored Procedure
9.4.3
Rückgabe von Query Result Sets
.
9.4.4
Stored Procedures und DB2-Views
Auswirkungen auf das Anwendungs-Design
9.5.1
Sicht des Anwendungs-Programmes auf die Daten
9.5.2
Auswirkung der Daten-Modellierung auf die Programm-Sicht
9.5.3
9.5.4
9.5.2.1
Sicht auf unnormalisierte Daten
. '
9.5.2.2
Sicht auf Daten in der ersten Normalform (1 NF)
9.5.2.3
Sichtauf Daten in höheren Normalformen (2 NF, 3NF,..)
Separierung der Daten-Beschaffung und -Entsorgung
9.5.3.1
Varianten beim Einsatz von Unterprogrammen und Stored Procedures
9.5.3.2
Objektorientierte Verwaltung der Daten
9.5.3.2.1 Daten-Verwaltung immer über eine zuständige Funktion
.
Konsequenzen eines Client-Server-Konzeptes (CS)
9.5.4.1
Zentralisierung versus Dezentralisierung
9.5.4.1.1 CS sollte in den Köpfen des Managements beginnen ...
9.5.4.1.2 CS benötigt klare Konzepte
9.5.4.1.3 Argumente für eine dezentrale Organisationsform (Verteilung)
9.5.4.1.4 Argumente für eine zentrale Organisationsform
9.5.4.1.5 Fazit
9.5.4.2
Varianten der CS-Verarbeitung
335
336
337
338
338
339
340
341
342
343
345
346
347
348
348
348
349
350
350
350
351
DB2 - Theorie und Praxis
Inhaltsverzeichnis
9.5.4.3
9.5.4.4
10
Verteilungsaspekte
9.5.4.3.1 Lokale Zuordnung der Ressourcen
9.5.4.3.2 Verfügbarkeit der Ressourcen
Konsequenzen einer Verteilung
Datenentwurf unter DB2
10.1
10.2
10.3
Rolle des ANSI-SPARC-3-Schemata-Ansatzes
Vorgehens-Modell
10.2.1 Entwicklungsgeschichte der relevanten Daten-Modelle
10.2.2 ERM - Entity-Relationship-Modell
10.2.3 Relationen-Modell (RM)
10.2.4 Gemeinsamkeiten von ERM und RM
Logisches Design
10.3.1 Normalisierung
10.3.1.1
10.3.1.2
10.3.1.3
10.3.1.4
10.4
Unnormalisierte Daten
1N F - Atomic Attribute ohne Wiederhol-Elemente
2NF - Volle funktionale Abhängigkeit zu allen PK-Bestandteilen
3NF - Keine transitiven Abhängigkeiten der Nicht-PK-Attribute
10.3.1.4.1 Kritische Analyse der erreichten 3NF - Struktur-Qualität
10.3.1.5
BCNF - Volle Abhängigkeit zum Candidate Key
10.3.1.6
4NF - Keine paarweisen mehrwertigen Abhängigkeiten
10.3.1.7 5NF - Ultimative Normal Form - Project-Join-Normalform (PJ/NF)
10.3.1.8
Abschlußüberlegungen zur Normalisierung
10.3.2
Dokumentation der Daten-Design-Ergebnisse
10.3.2.1
Bubbles/Blasendiagramme
10.3.2.2
Relationale Notation
10.3.2.3
Entity Dependency Diagram
10.3.2.4
Netzwerk Diagramm
v
10.3.2.5
Objektorientiertes State Transition Diagram
10.3.2.6
DB2-Unterstützungstools
10.3.3
Festlegung der referentiellen Verarbeitungs-Regeln
10.3.4
Übersicht der kompletten Integritäts-Regeln und -Maßnahmen
10.3.5
Checkliste für das logische Daten-Design
10.3.5.1
Fachliches Daten-Modell
10.3.5.2
Konzeptionelles Daten-Modell
Physisches Design
10.4.1
Ableiten der physischen Benutzerobjekte aus logischen Relationen
10.4.1.1
Zielsetzungen eines physischen Daten-Modells
10.4.1.2
Kandidaten für die physische Implementierung
10.4.2
Bewertung der Auswirkungen logisch definierter Zugriffspfade
.10.4.2.1
Aufwand bei der Datenbeschaffung
10.4.2.2
Individuelle Performance-Relevanz
10.4.2.3 -Auswirkungen der Sperr-Maßnahmen
10.4.3
De-Normalisierungs-Mäßnahmen
10.4.3.1
Daten-Zusammenführung
10.4.3.2
Trennung der Daten (Verteilung)
10.4.3.3
Bilden zusätzlicher Redundanzen
10.4.3.4
Konsequenzen der De-Normalisierung
10.4.4
Indizes
10.4.4.1
10.4.4.2
10.4.5
Vor- und Nachteile von Indizes
Empfehlungen zum Index-Einsatz
Unterstützung der referentiellen Integrität (Rl) durch DB2
10.4.5.1
10.4.5.2
10.4.5.3
10.4.5.4
10.4.5.5
10.4.5.6
Terminologie und Einrichtung unter DB2
Definierbare Strukturen
10.4.5.2.1 Zulässige Einzel-Struktur-Beziehungen
10.4.5.2.2 Logische referentielle Struktur
10.4.5.2.3 Physische referentielle Struktur (Tablespace-Set)
Gesamt-Überblick über die DB2-RI-Unterstützung
Anforderungen an PK und FK
10.4.5.4.1 DB2-Primary-Key (PK) und Parent Key
10.4.5.4.2 'DB2-Foreign-Key (FK)
Verwaltung der Rl-Definitionen im Katalog
10.4.5.5.1 Katalog-Informationen für Rl
10.4.5.5.2 RI-DDL-Beispiele
Argumente für und wider den Einsatz von DB2-RI
-
352
352
352
353
354
354
356
358
359
361
363
367
368
369
371
373
375
375
377
378
381
384
385
385
386
387
388
389
390
391
394
396
396
397
399
400
400
401
401
403
406
407'
408
408
410
411
413
414
415
416
418
418
421
421
423
429
431
433
433
434
435
435
436
438
DB2 - Theorie und Praxis
Inhaltsverzeichnis
10.4.6
10.4.7
10.4.8
10.4.9
11
Festlegung der sonstigen DB2-Objekte mit ihren Ausprägungen
10.4.6.1 Zuordnung Tabelle zu Tablespace
10.4.6.1.1 Zuordnung wichtiger Speicher-Charakteristiken
10.4.6.1.2 Sperrniveau und Lock-Maßnahmen
10.4.6.2 Einsatz von DB2-Views
10.4.6.3 Einsatz von DB2-Synonymen und DB2-Alias
10.4.6.4 Zuordnung Tablespace und Indexspace zur Database
Festlegung der sonstigen physischen Ressourcen
DB2-Unterstützungstools
Checkliste für das physische DB2-Design
.
DB2-Datenspeicherung intern und extern
11.1
11.2
11.3
11.4
11.5
451
Übersicht der Speicherungsformen
Space-Management
11.2.1 Verwaltung und Adressierung der Daten innerhalb des Page Sets
11.2.2 Page Sets
11.2.2.1 Linear Page Sets
'
11.2.2.2 Partitioned Page Sets
11.2.3 Page Typen des File Page Sets
11.2.3.1 Header Page
11.2.3.2 Space Map Pages \
11.2.3.3 Daten Pages
11.2.3.3.1 Adressierung der Daten-Zeilen
11.2.3.3.2 Insert-Strategie innerhalb der Pages
11.2.3.3.3 Update-Strategie bei variablen Zeilen
11.2.3.3.4 Delete-Strategie innerhalb der Pages
11.2.3.3.5 Freespace-Verwaltung der Pages
11.2.3.3.6 Plattenplatz-Bedarfs-Ermittlung
v
11.2.3.4 Kompression der Daten (ESA Compression)
11.2.4 Page Typen des Index Page Sets
11.2.4.1 Die Verbesserungen des Index Typs 2
11.2.4.2 Header Page
11.2.4.3 Space Map Pages
11.2.4.4 Index Pages
11.2.4.4.1 Non-Leaf Pages
11.2.4.4.2 Leaf Pages
11.2.4.4.3 Adressierung der Index Pages und der Daten Pages
.11.2.4.4.4 Insert-Strategie innerhalb der Pages
11.2.4.4.5 Update-Strategie innerhalb der Pages
11.2.4.4.6 Delete-Strategie innerhalb der Pages
11.2.4.4.7 Freespace-Verwaltung der Pages
11.2.4.4.8 Plattenplatz-Bedarfs-Ermittlung
Datenpool-und Bufferpool-Konzept
11.3.1 Group Bufferpools (GBP)
11.3.2 Virtuelles Bufferkonzept
•
11.3.2.1 Lese-Anforderungen
11.3.2.2 Schreib-Anforderungen
11.3.2.3 Bufferpool-Thresholds
11.3.2.4 Mögliche Strategien der Bufferpool-Einrichtung
11.3.3 Parallel-Verarbeitung
VSAM-Datasets
11.4.1 Nutzung von DFSMS (Storage Management Subsystem)
DB2-Utilities für Datenablageunterstützung
12 DB2-Datensicherheitseinrichtungen
12.1
12.2
12.3
12.4
DB2-Sicherheitsinstrumentarium
Transaktionsabwicklung
LUW-, UOW-und UOR-Konzept
12.3.1 2-Phasen-Commit (Two-Phase-Commit)
Probleme und Lösungswege der Konkurrenzverarbeitung
12.4.1 Verlorener Update
12.4.2 Zugriff zu Daten, deren UOW noch nicht abgeschlossen ist
12.4.3 Wiederholtes Einlesen von Daten innerhalb einer UOW
439
439
442
444
445
445
445
446
447
448
'
451
453
453
456
456
457
458
459
460
462
464
465
466
466
467
469
472
474
474
475
475
476
478
479
480
482
482
482
483
484
488
490
491
492
494
495
496
498
500
502
503
505
"
505
507
511
515
518
519
520
521'
DB2 - Theorie und Praxis
Inhaltsverzeichnis
12.4.4
12.4.5
12.5
12.6
12.7
12.8
12.9
13
Lösungswege zum Abbau der Konkurrenz-Problemzonen
Deadlock
.12.4.5.1 Vermeidung von Deadlocks
DB2-Sperrverfahren
12.5.1 Überblick
12.5.2 Transaction Lock
'
12.5.2.1 Lock-Charakteristiken
12.5.2.1.1 Lock-Objekt
12.5.2.1.2 Lock-Niveau
12.5.2.1.3 Lock-Dauer
12.5.2.1.4 Isolation-Level
'
12.5.2.1.5 Lock-Modus
12.5.2.2 Implizite Lock-Auswirkungen auf die DB2-Systemressourcen
12.5:3 Drain Lock '
12:5.3.1 Drains und Claims
•
12.5.3.2 Utility-Kompatibilitäten
12.5.4 IRLM - Infernal Resource Lock Manager
12.5.4.1 Deadlock/Timeout-Behandlung der Anwendungen
12.5.5 Die Konsistenzbewahrung bei Data Sharing (DS)
12.5.5.1 Zusammenspiel zwischen IRLM und Coupling Facility
12.5.6 Konsequenzen für die Anwendungsentwicklung
12.5.6.1 Zusammenspiel von Isolation-Level, Lock-Modus und -Dauer
12.5.6.2 Verhinderung eines Parallel-Updates
•
12.5.6.2.1 Einsatz des Cursor-Konzeptes
12.5.6.2.2 Cursor-Konzept oder SELECT WITH RR bzw. RS?
12.5.6.3 Parallelverarbeitung von Online- und Batch-Anwendungen
12.5.7 Zusammenfassung der DB2-Lock-Mechanismen
12.5.7.1 Welche relevanten Parameter steuern die Lock-Mechanismen?
12.5.7.2 Checkliste für den Einsatz der DB2-Lock-Mechanismen
Logging-Einrichtungen
12.6.1 Steuerungsfunktionen für die Logging-Abwicklung
•
12.6.1.1 Logging-Philosophie
12.6.1.2 Loggihg-Hierarchie
•
12.6.2 Führen und Ausschreiben von LOG-Informationen
12.6.3 Konsistenzsicherung innerhalb des DB2-Subsystems (REDO, UNDO)
12.6.3.1 Manuelle, nicht durch DB2 überwachte Konsistenz-Maßnahmen
12.6.4 Konsistenzsicherung,mit Allied Agents
12.6.5 Konsistenzsicherung bei DB2 Data Sharing (DS)
DB2-Utilities für Datensicherheitsunterstützung
12.7.1 Zurücksetzen auf konsistenten, aktuellen synchronisierbaren Zeitpunkt
12.7.2 Zurücksetzen auf früheren, nicht mehr synchronisierbaren Zeitpunkt
12.7.3 Zurücksetzen von Katalogtabellen
12.7.4 Pending Status
AUDITTRACE
Problemzonen der Datensicherheitseinrichtungen
Anwendungsprogrammierung unter DB2
13.1
Einsatzspektrum von DB2
13.1.1 Die verschiedenen Programm-Typen
13.1.1.1 Abgrenzung Dialog-, Online-und Batch-Verarbeitung
13.1.1.1.1 Was versteht man unter Batch-Verarbeitung?
13.1.1.1.2 Brauchen wir noch die Batch-Verarbeitung?
13.1.1.1.3 Abgrenzung der Online-und Batch-Charakteristiken
13.1.2 Wahl des geeigneten Trägersystems
13.1.2.1 Dialog-Verarbeitung
13.1.2.1.1 Foreground-Verarbeitung
13.1.2.1.2 Background-Verarbeitung
13.1.2.2 Batch-Verarbeitung
13.1.3 Die verschiedenen Betriebsformen
13.1.3.1 Normale Betriebszeiten
13.1.3.2 Erweiterte Betriebszeiten (erweiterte Verfügbarkeit) 13.1.3.3 24-Stunden-Betrieb (permanente Verfügbarkeit)
13.1.3.3.1 Zielsetzungen eines Multi-User-Betriebs
13.1.3.3.2 Ein Wort zur'Permanenz'
.
.
522,
524
525
526
526
527
527
529
530
534
535
538
543
544
544
545
546
546
547
549
550
550
551
551
552
553
554
554
555
557
559
559
560
562
564
566
566
567
568
569
572
572
573
574
575
577
577
578
578
579
580
582
583
' 583
583
584
585
586
586
586
587
588
588
DB2 - Theorie und Praxis
Inhaltsverzeichnis
10
13.1.4
13.2
v
13.3
Programm-Design-Uberlegungen
13.1.4.1
Programmübergreifende Maßnahmen
13.1.4.2
Der Einsatz von SQL: Möglichkeiten und Restriktionen
Programmentwicklung unter DB2
13.2.1
Unterstützte Programmiersprachen
13.2.1.1
EXEC-SQL-Sprachschnittstelle
13.2.1.2
CLI-Sprachschnittstelle (Call Level Interface)
13.2.2
Erforderliche Entwicklungsschritte
13.2.2.1
DB2I: DCLGEN-Generierung
13.2.2.2
DB2-Precompiler
13.2.2.2.1 Aufgaben des Precompilers
13.2.2.2.2 Precompiler-Optionen
13.2.2.2.3 Standard-SQL
13.2.2.2.4 Modifikationen der Programm-Source durch den Precompiler
13.2.2.3
BIND-Prozeß
13.2.2.3.1 Aufgaben des BIND-Prozesses
13.2.2.3.2 Die verschiedenen BIND- und REBIND-Typen
13.2.2.3.3 Abgrenzung DBRM, Package und Plan
13.2.2.3.4 Die Verwaltung der Packages (BIND, REBIND, DROP, FREE)
13.2.2.3.5 DieZuordnung einer Package aus einem Programm heraus
13.2.2.3.6 Die Verwaltung der Pläne (BIND, REBIND, FREE)
13.2.2.3.7 Die Zuordnung eines Plans zu einem Programm
13.2.2.3.8 Dynamische Plan-Zuordnung im CICS
13.2.2.4
Linkage Editor
13.2.2.4.1 Aktivieren der Attach-Facility-Schnittstellen
13.2.3
Beispiel- und Hilfs-Programme: DSNTIAD, DSNTEP2 und DSNTIAUL
13.2.3.1
Übersicht
13.2.3.2
DSNTIAUL-Beispiel
13.2.3.3
DSNTEP2-Beispiel
v
SQL-Spracheinsatz in Anwendungsprogrammen
13.3.1 Übersicht der Sprachschnittstellen
13.3.2
13.3.3
589
589
591
594
594
594
594
595
596
597
597
598
601
603
604
604
605
607
608
610
611
613
614
615
615
616
616
617
618
619
619
13.3.1.1
Interactive SQL, Embedded SQL, CLI, Static SQL und Dynamic SQL
619
13.3.1.2
SQL-Statements und ihre Programm-Nutzung
620
13.3.1.3
EXEC-Level-Interface: Embedded SQL
621
622
13.3.1.4
Behandlung von Datenmengen
13.3.1.5
CLI: Call-Level-Interface
623
Grundstruktur eines'DB2-Programmes im EXEC-Level
625
13.3.2.1
Relevante Komponenten
625
13.3.2.2
Basis-Codier-Regeln für SQL-Statements
626
13.3.2.2.1 Allgemeine Regeln
626
13.3.2.2.2 Assembler-Besonderheiten
627
13.3.2.2.3 C-Besonderheiten
627
13.3.2.2.4 COBOL-Besonderheiten
628
13.3'2.2.5 PL/I-Besonderheiten
630
13.3.2.3
Definition der SQLCA (SQL Communication Area)
631
13.3.2.4
Tabellen-und View-Deklarationen
631
13.3.2.5
Host-Variablen und NULL-Indikatoren
632
13.3.2.5.1 Typen: Host-Variablen und Host-Strukturen
632
13.3.2.5.2 Einlesen von NULL-Markierungen
634
13.3.2.5.3 Setzen von NULL-Markierungen
636
13.3.2.5.4 Einsatzspektrum von Host-Variablen und Indikatoren
637
13.3.2.6
Unterstützte Datentypen
638
13.3.2.6.1 Konvertierungsregeln zwischen DB2-Spalten und Host-Variablen 639
13.3.2.7
Fehlerbehandlung
641
13.3.2.7.1 Überblick
"
641
13.3.2.7.2 Returncode-Analyse
641
13.3.2.7.3 Auszug einiger relevanter SQLCODEs und SQLSTATEs
643
13.3.2.7.4 WHENEVER
644
13.3.2.7.5 DSNTIAR, DSNTIAC
644
13.3.2.7.6 Behandlung schwerer Fehler
.
" 645
Cursor-Konzept
646
13.3.3.1
Übersicht der Sprachmittel
646
13.3.3.2
Detaillierte Darstellung des Cursor-Befehlsspektrums
"
649
13.3.3.2.1 Deklaration des Cursors: DECLARE CURSOR
649
13.3.3.2.2 Eröffnen des Cursors: OPEN
651
DB2 - Theorie und Praxis
Inhaltsverzeichnis
13.4
13.5
13.6
13.7
13.3.3.2.3 Bereitstellen einzelner Zeilen der Result Table: FETCH
13.3.3.2.4 Positioned Update und Delete: WHERE CURRENT OF
13.3.3.2.5 Schließen des Cursors: CLOSE
13.3.3.3 Mengenverarbeitung auf Realtime-Daten: das ewige Rätsel
13.3.3.4 Ist die Result Table des Cursors read-only oder updateable?
13.3.3.5 Wird die Result Table materialisiert?
13.3.3.6 Einfluß des UOW-Konzepts auf die Cursor-Verarbeitung
Besondere Programmier-Techniken unter DB2
13.4.1 Effiziente Bereitstellung einer Result Table
13.4.1.1 Relevante WHERE-und ORDER BY-Komponenten
13.4.1.2 Aufsetzen auf einen Composite Key
13.4.1.3 Regeln für das Aufsetzen
13.4.2 Online-Anwendungen
13.4.2.1 Online-Parallel-Update
13.4.2.2 Online-Browsing/Blättern
13.4.3 Batch-und Multi-User-Anwendungen
•
13.4.3.1 Langlaufende oder ressourceintensive Anwendungen
13.4.3.2 Konsequenzen eines COMMIT-Einsatzes
13.4.3.3 Wann wird eine UOW beendet?
13.4.3.4 Wirkungen beim Abschluß einer UOR
13.4.3.5 Unterstützung von Rollback und Restart der Batch-Programme
13.4.3.6 Empfehlungen zum Design von Batch-Langläufern
13.4.4 Anwendungen in verteilten Datenbankumgebungen
13.4.4.1 Zugriffstypen und Protokolle
13.4.4.1.1 Anwendungs-und systemgesteuerter Zugriff
13.4.4.1.2 RUW und DUW
.
13.4.4.1.3 Syntax-Anforderungen unterschiedlicher Systeme
13.4.4.2 Programmvorbereitungen, Pläne und Packages
13.4.4.3 SQL-Statement-Einsatz in Programmen
\
13.4.4.4 Performance- und Integritäts-Aspekte
13.4.5 Entwicklung und Einsatz von Stored Procedures
13.4.5.1 Adreßraum-Konzept
13.4.5.2 Ablauf und relevante Komponenten
13.4.5.3 Übergabe von Query Result Sets
13.4.5.4 Konventionen bei der Entwicklung
13.4.5.4.1 Entwicklungs-Komponenten
13.4.5.4.2 Programm-Konzept
13.4.5.4.3 Zuordnung von Plan und Packages
13.4.5.4.4 Parameter der Stored Procedure
CAF - Call Attachment Facility
13.5.1 Vorteile der CAF-Nutzuhg I
i
13.5.2 Entwicklung eines CAF.-Programms
13.5.3 Nutzbare Funktionen
13.5.3.1 Implizite Connection
.
13.5.3.2 Explizite Connection
13.5.3.3 Generelle Ausprägungen einer CAF-Connection
RRSAF - Recoverable Resource Manager Services Attachment Facility
13.6.1 Vorteile der RRSAF-Nutzung
13.6.2 Entwicklung eines RRSAF-Programms
13.6.3 Nutzbare Funktionen
13.6.3.1 Abschluß einer UOW
Dynamic SQL
13.7.1 Abgrenzung zu Static SQL
13.7.2 Funktionsspektrum von Dynamic SQL
13.7.2.1 Manipulationen und Informationsanforderungen
13.7.2.2 Parameter Markers (?)
13.7.2.3 SQLDA - SQL Descriptor Area
13.7.3 Manipulationen (Non-SELECT)
.
13.7.3.1 Feste Parameter
13.7.3.2 Variable Parameter
13.7.4 Informations-Anforderungen (SELECT)
.
13.7.4.1 Feste Parameter: Fixed-List-SELECT
13.7.4.2 Variable Parameter: Varying-List-SELECT
11
651
652
652
653
655
656
658
660
660
661
662
663
664 \
664
667
668
668
669"
670
671
672
673
674
674
674
675
675
676
677
679
681
681
682
684
685
687
688
689
690
692
692
692
693
694
694
694
695
695
695
696
696
697
697
698
698
699
700
701
701
703
704
704
704
DB2 - Theorie und Praxis
Inhaltsverzeichnis
12
13.8
13.7.5 Statement Caching (KEEPDYNAMIC (YES))
13.7.6 Resource Limit Facility (RLF) - DB2 Governor
13.7.7 Vor- und Nachteile von Dynamic SQL
Programmier-Empfehlungen
708
709
710
711
14 SQL-Performance
14.1
14.2
714
Grundlagen der SQL-Performance
14.1.1
Einleitung, Ansätze der Optimierung
14.1.1.1
Leistungsbeeinflussende Faktoren
14.1.1.2 Optimierungs-Möglichkeiten und-Maßnahmen
14.1.2
Komponten der Datenbeschaffung
.
14.1.2.1 Aufgabenteilung von RDS, DM und BM
14.1.2.2
Bufferpool-Hit Ratio und MUPA
14.1.3
DB2-Tools zur Unterstützung von Performance-Maßnahmen
14.1.3.1 Übersicht.
14.1.3.2 Statistikdaten des Katalogs
14.1.4
Die relevanten Zeiten einer Statement-Abwicklung
14.1.4.1 DB2-Accounting-Zeiten
14.1.5
Parallel-Verarbeitung
14.1.5.1
Parallel-Verarbeitungs-Typen
14.1.5.2
Query-Typ: CPU bound oder I/O bound
14.1.5.3
Effekte der Parallel-Verarbeitung
14.1.5.4 Voraussetzungen für die Parallel-Verarbeitung
14.1.5.5 Restriktionen bei der Nutzung der Parallel-Verarbeitung
Zugriffspfadanalyse des DB2-Optimizers
'
14.2.1
14.2.2
14.2.3
Aufgaben des Optimizers
Parsing
Optimization
.
727.
728
729
v
14.2.3.1
14.2.4
14.3
Prädikate
14.2.3.1.1 Bedingte Verarbeitungsanweisungen (Prädikate)
14.2.3.1.2 Prädikat-Kategorien
14.2.3.2
Filterung
•
14.2.3.2.1 Inhaltliche Verteilung von Datenwerten
14.2.3.2.2 Filter-Faktor (FF)
14.2.3.3 STAGE1, STAGE2 und INDEXABLE
14.2.3.3.1 Indexable Prädikate
14.2.3.3.2 Komplexe Prädikatvorgaben
14.2.3.3.3 Reihenfolge der Prädikat-Bewertung
14.2.3.4
Aufwands-Kalkulation der SQL-Anforderung
14.2.3.4.1 Prozeß-Kostenschätzung
14.2.3.4.2 Auswahl des Zugriffspfades
14.2.3.4.3 lO-Kostenermittlung
.
14.2.3.4.4 Timeron
IBM-Zugriffspfad-Formeln (Auszug)
•
14.2.4.1
Lesende Zugriffe
14.2.4.2
Schreibende Zugriffe
729
729
729
730
731
731
735
737
738
739
740
740
740
741
742
743
744
745
DB2-Zugriffspfade auf die Daten
14.3.1 Analysemöglichkeit der Zugriffspfade
746
746
14.3.1.1
14.3.1.2
14.3.2
14.3.3
Rahmenbedingungen
EXPLAIN und PLAN_TABLE
14.3.1.2.1 Einsatz von Host-Variablen beim EXPLAIN
I/O-Zugriffs-Typen
14.3.2.1
Sequential Prefetch
14.3.2.2
List Prefetch
Einfache Zugriffspfade '
14.3.3.1
Tablespace Scan (File Page Set Scan)
14.3.3.2
Index-Zugriffe
14.3.3.2.1 Matching Index Scan
14.3.3.2.2 Non-Matching Index Scan
14.3.3.2.3 Equal Unique Index Access
14.3.3.2.4 IN-List Index.Scan
14.3.3.2.5 One-Fetch Access
14.3.3.2.6 Index-Only Access
14.3.3.2.7 Multiple Index Access
714
714
714
715
717
717
719
720
720
721
722
722
724
724
724
724
725
726
727
_
,
, 746
747
748
749
750.
751
753
755
756
756
757
758
759
760
761
762
DB2 - Theorie und Praxis
Inhaltsverzeichnis
14.3.4
14.4
Komplexe Zugriffspfade
14.3.4.1
Join
/
14.3.4.1.1 Composite Table und New Table, Outer Table und Inner Table
14.3.4.1.2 Ausweis von Jbins in der PLAN_TABLE
14.3.4.1.3 Nested Loop Join
14.3.4.1.4 Mefge Scan Join
14.3.4.1.5 Hybrid Join
14.3.4.2
UNION
14.3.4.3
Nested Table Expression
14.3.4.4
Subquery
14.3.4.4.1 Non-correlated Subquery
14.3.4.4.2 Correlated Subquery
14.3.4.5
Sortierung
14.3.4.6
Parallelverarbeitung
14.3.4.7
Materialisierung
14.3.5
Beeinflussung der Zugriffspfadentscheidungen
14.3.5.1
Statement-Modifikationen durch den Optimizer
14.3.5.2
Möglichkeiten für Anwendungsentwickler
14.3.5.2.1 Veränderung von Objekt-Strukturen
14.3.5.2.2 Manipulation der Statistiken
14.3.5.2.3 Umschreiben von SQL-Statements
14.3.5.2.4 OPTIMIZE FOR n ROWS
14.3.5.2.5 Die Wirkungen von Host-Variablen beim BIND .
Zusammenfassung der relevanten Performance-Komponenten
14.4.1
DB2-interne Automatismen
14.4.1.1
Zugriffspfad-Effizienz
.
14.4.1.2 Mögliche Zugriffspfade
14.4.2 Systemgenerierungs- und Installations-Optionen
v
14.4.3
Objekt-Definitionen
14.4.4 Anwendungs-Design und-Programmierung
14.4.4.1
SQL-Query-Empfehlungen
14.4.4.2 Was tun bei langlaufenden Statements?
13
763
764
764
765
767
770
772
774
775
776
777
779
781
782
783
784
784
785
785
788
789
791
792
793
794
794
795
796
798
800
802
803
Herunterladen