Frank Haas
Oracle Tuning in der Praxis
Rezepte und Anleitungen für Datenbankadministratoren und -entwickler (DOAG Edition Praxiswissen)
Inhaltsverzeichnis
8
Vorwort
12
1 Oracle-Design
14
1.1 Datenhaltung in Oracle
14
1.1.1 Tabellen
14
1.1.2 Referentielle Integrität
19
1.1.3 Trigger
20
1.1.4 Views
23
1.1.5 Partitionierung
25
1.1.6 Cluster
29
1.1.7 Datentypen
31
1.1.8 Grundsätze für effektives Tabellendesign
34
1.2 Zugriffshilfen
36
1.2.1 Indizes
36
1.2.2 Index-organisierte Tabellen (IOTs)
40
1.2.3 Sequenzen
42
1.2.4 Einsatz von Indizes und Sequenzen
44
1.3 Statistiken
45
1.4 Der Zugriff auf Oracle
46
1.5 SQL
54
1.5.1 Shared SQL
54
1.5.2 Hints, Outlines, SQL-Profile und SQL Plan Baselines
55
1.5.3 Lesende Operationen
56
1.5.4 Schreibende Operationen
62
1.6 PL/SQL
70
1.7 Upgrade
74
1.7.1 Generelle Überlegungen
75
1.7.2 Real Application Testing (RAT)
78
2 SQLTuning
88
2.1 Die drei Phasen einer SQL-Anweisung
88
2.2 Der Ausführungsplan
91
2.3 Der Oracle Optimizer
97
2.3.1 Der RULE-based Optimizer (RBO)
97
2.3.2 Costbased Optimizer (CBO)
98
2.3.3 Einstellungen für den Optimizer
99
2.4 Statistiken im Detail
103
2.4.1 Histogramme
113
2.4.2 Wann und wie oft soll man die Statistiken erstellen (lassen)?
117
2.5 Row Sources
120
3 Das ABC des Datenbank-Tunings
136
3.1 Ratios oder Wait Interface?
136
3.2 Statistische Kennzahlen
138
3.3 Segmentstatistiken
143
3.4 Ratios
146
3.5 Wait Events
148
4 Vorgehensweisen beim Tuning
156
4.1 Ansätze beim Tuning
156
4.2 Generelle Performance-Untersuchung
157
4.3 Spezifische Performance-Untersuchung
162
4.4 Wann und wo setzen Sie die verschiedenen Methoden ein?
167
5 Performance Tracing und Utilities
170
5.1 Utilities
170
5.2 Tuning mit den Advisories
172
5.3 EXPLAIN PLAN
180
5.4 SQL_TRACE
184
5.5 TKPROF
187
5.6 Event 10046
193
5.7 Ausführungspläne in der Vergangenheit
194
5.8 DBMS_MONITOR
195
5.9 Event 10053
196
5.10 AWR ASH, Statspack und Bstat/Estat
201
5.11 Das Tracing von PL/SQL
209
5.12 Performance und SQL*Net
212
5.12.1 SQL*Net Tracing
212
5.12.2 Event 10079
213
5.12.3 Trace Assistant
214
5.12.4 Trcsess Utility
216
5.13 Tuning mit dem Enterprise Manager
216
6 Physikalische Strukturen
224
6.1 Einleitung
224
6.2 Oracle im Hauptspeicher
224
6.3 Oracle-Systembereiche
235
6.4 Platzverwaltung in Tablespaces
249
6.5 Oracle-Systembereiche im Detail
251
6.6 Platzverwaltung im Segment
262
7 Oracle wird parallel
268
7.1 Parallel Query
268
7.2 Hauptspeicherbedarf beim Einsatz von Parallel Query
275
7.3 Parallel DML (PDML) und parallel DDL (PDDL)
278
7.4 Statistiken für Parallel Query
281
7.5 Parallele Ausführungspläne
284
7.6 Parallelisierung und Partitionierung
285
7.7 Parallel Tracing
287
7.8 Parallele Wait Events
288
7.9 Einsatz und Tuning paralleler Operationen
289
8 Stabile Ausführungspläne
292
8.1 Hints
292
8.1.1 Hints, die den Optimizer steuern
294
8.1.2 Hints für Zugriffspfade
295
8.1.3 Hints für die Transformierung von SQL-Anweisungen
298
8.1.4 Hints für Query Rewrite
298
8.1.5 Hints für die Star Transformation
299
8.1.6 Hints für Joins
300
8.1.7 Hints für spezielle Operationen
302
8.1.8 Hints für die parallele Ausführung
304
8.1.9 Hints und Views
305
8.2 Outlines: Stabile Optimizer-Pläne
306
8.3 SQL-Profile
310
8.4 SQL Plan Management
311
9 Tuning über Parameter
316
9.1 Die Oracle-Parameter
316
9.2 Ausgewählte Parameter
319
10 Spezifische Einstellungen
334
10.1 Tuning in hochverfügbaren Umgebungen
334
10.1.1 Was ist Hochverfügbarkeit?
334
10.1.2 Wie viele Rechner?
336
10.1.3 Anforderungen an die Hardware
337
10.1.4 Datenbanktypen in Hochverfügbarkeitsumgebungen
339
10.1.5 Backup und Recovery
341
10.1.6 RAC: Applikatorische Anforderungen
341
10.2 Spezifische Einstellungen für das Betriebssystem
342
10.2.1 I/O
342
10.2.2 Betriebssysteme
346
11 Glossar
348
Literatur
352
Register
354
© 2009-2024 ciando GmbH