Oracle Tuning in der Praxis (eBook)
370 Seiten
Carl Hanser Fachbuchverlag
978-3-446-42199-8 (ISBN)
SO LÄUFT IHRE ORACLE-DATENBANK WIE GESCHMIERT -Hier erhalten Sie Unterstützung für Ihre tägliche Arbeit als DBA. -Nutzen Sie das Experten-Know-how und die Praxistipps des Autors. -Mit Hilfe der zahlreichen Beispiele können Sie alles unmittelbar nachvollziehen. -Deckt die Versionen 8i bis 11g ab. -Im Internet: Die Skripte des Buches zum Download ORACLE TUNING IN DER PRAXIDamit eine Oracle-Datenbank wirklich gut läuft und die größtmögliche Performance aufweist, reicht die richtige Installation alleine nicht aus. Als Administrator müssen Sie die Methoden der Optimierung und des Tunings kennen und einsetzen, um optimale Ergebnisse zu erzielen. Dieses Praxisbuch liefert dafür zahlreiche Anleitungen und Skripte. Lernen Sie nicht nur SQL-Abfragen zu optimieren, sondern profitieren Sie auch von Tipps und Informationen für alle anderen Ebenen, auf denen Tuning stattfindet.
Die dritte, erweiterte Auflage enthält viele aktuelle Beispiele und geht auch auf die Neuerungen der Oracle-Version 11g ein, wie z.B. Database Replay, SQL Performance Analyzer und SQL Plan Management.
Tipp: "Haas legt ein Buch vor, das dem Einsteiger einen guten Überblick zu Tuning- und Design-Aspekten gibt. ... Selbst ein versierter Datenbankadministrator kann dem Buch noch den einen oder anderen Hinweis entnehmen. " Andrea Held in iX
Frank Haas ist Senior Principal Technical Support Engineer bei Oracle/Schweiz und hat über 17 Jahre Erfahrung im Umgang mit Oracle-Datenbanken.
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
1 Oracle-Design (S. 1)
Thema des ersten Kapitels sind die Möglichkeiten Oracles für ein Design, das eine gute Performance gewährleistet.
Idealerweise propft man Performance nicht nachträglich auf die Datenbank, sondern berücksichtigt sie von Anfang an im Design. Das setzt natürlich voraus, dass Sie schon beim Design der Applikation mit den entsprechenden Möglichkeiten des Datenbanksystems vertraut sind.
Unabhängig davon, welchen Typ von Objekten Sie verwenden – wobei es sich zum Großteil um Tabellen und Indizes handeln wird –, müssen Sie diese Objekte physikalisch abspeichern. Mit der physikalischen Organisation treffen Sie auch Entscheidungen, die sich auf die Performance auswirken (dieses Thema wird in einem separaten Kapitel en détail besprochen).
Während sich der Rest des Buches vornehmlich der Untersuchung und Analyse bestehender Applikationen widmet, behandelt dieses Kapitel die Frage, wie man Applikationen baut, die Performance bereits im Design berücksichtigen. Dabei liegt der Schwerpunkt auf der Datenbank und SQL. Gleichzeitig handelt es sich hier um jenes Kapitel, das sich vor allem an den Entwickler richtet.
1.1 Datenhaltung in Oracle
1.1.1 Tabellen
Für die Speicherung der applikatorischen Daten bietet Oracle verschiedene Möglichkeiten an. Im Regelfall werden Sie ganz normale relationale Tabellen verwenden. Es existieren zwar auch Objekttypen, aber diese sollten Sie nicht zur Speicherung verwenden, weil dort zu viel hinter der Bühne passiert. Wenn Sie beispielsweise eine Nested Table oder eine Object Table anlegen, generiert Oracle im Hintergrund versteckte Spalten, die Sie der Tabelle erst mal nicht ansehen. Für die Applikationsentwicklung sind diese Typen exzel- lent geeignet, nicht aber für die Persistenz.
Im Regelfall sollten Sie ganz normale relationale Tabellen verwenden. Die einfache CREATE TABLE-Anweisung erzeugt eine relationale Tabelle, genauer gesagt, eine Heap-Tabelle. Ein Heap ist in der konventionellen Programmierung eine bekannte Struktur. Eine Heap-Tabelle hat keine eingebaute Reihenfolge der Einträge, Letztere können dynamisch hinzugefügt und gelöscht werden.
Bei den Tabellen Ihrer Applikation wird es sich zu 95% oder mehr um solche Tabellen handeln. Theoretisch könnten Sie beim Anlegen der Tabelle auch angeben, dass es sich um eine Heap- Tabelle handelt: CREATE TABLE .. ORGANIZATION HEAP. Dies ist aber ohnehin die Voreinstellung. Weitere Details finden Sie in der offiziellen Oracle-Dokumentation in [OraCon 2008] und [OraSql 2008].
Temporäre Tabellen
Es gibt auch temporäre Tabellen, die man zur Speicherung von Zwischenresultaten verwenden kann, sie werden mit CREATE GLOBAL TEMPORARY TABLE erzeugt. Diese Tabelle ist dann für alle Sessions, also global innerhalb der Datenbank, sichtbar. Im Bereich Performance ist der Unterschied zwischen temporären und regulären Tabellen aber oft nicht so signifikant.
Betrachten Sie temporäre Tabellen also vor allem als applikatorische Möglichkeit, nicht als Mittel zur Steigerung der Performance. Zwar generiert eine temporäre Tabelle kein Redo. Das ist gut für die Performance. Bei mehrstufigen Abfragen – also Query A ist Input für Query B und B ist potenziell wieder Input für eine neue Query etc. – sind sie sicher eine sehr naheliegende Lösung.
Sie haben aber – teilweise versionsbedingt – auch keine Statistiken, was unter Umständen wiederum einen schlechten Zugriffsplan verursacht. Dieses Problem lässt sich dann allerdings durch manuelles Setzen der Statistiken über DBMS_STATS oder dynamisches Sammeln der Statistiken (ab 9.2) lösen.
| Erscheint lt. Verlag | 1.1.2009 |
|---|---|
| Verlagsort | München |
| Sprache | deutsch |
| Themenwelt | Informatik ► Datenbanken ► Oracle |
| Schlagworte | Datenbank • Optimierung • Oracle • Oracle Database • Oracle-Datenbank • Tuning |
| ISBN-10 | 3-446-42199-8 / 3446421998 |
| ISBN-13 | 978-3-446-42199-8 / 9783446421998 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich