Detaillierter Kursinhalt
Architektur der Oracle-Datenbank
- Architektur des Oracle-Datenbankservers – Überblick
- Bei Datenbankinstanzen anmelden
- Physische Struktur
- Oracle-Datenbank – Memory-Strukturen – Überblick
- Automatic Shared Memory Management
- Automatische Verwaltung des SQL-Ausführungsspeichers
- Datenbank-Storage-Architektur, logische und physikalische Datenbankstrukturen
- Segmente, Extents und Blöcke sowie die Tablespaces SYSTEM und SYSAUX
SQL-Tuning – Einführung
- Gründe für ineffiziente SQL-Performance
- Lösungen für die Performanceüberwachung
- Überwachungs- und Tuning-Tools – Überblick
- Tuning-Dimensionen zu CPU- und Wartezeit
- Skalierbarkeit hinsichtlich Design, Implementierung und Konfiguration von Anwendungen
- Häufige Fehler in Kundensystemen und proaktive Tuning-Methode
- Einfaches Anwendungsdesign
- Datenmodellierung, Tabellendesign, Indexdesign, Views, effiziente SQL-Ausführung, SQL*Plus und SQL – Überblick
Optimizer – Einführung
- Strukturierte Abfragesprache
- SQL-Anweisungen parsen – Überblick
- Warum ist ein Optimizer erforderlich?
- Optimierung bei Hard Parse-Vorgängen
- Transformer und Estimator
- Kostenbasierter Optimizer
- Plan Generator
- Optimizer-Verhalten steuern, Optimizer-Features und Oracle Database Releases
Ausführungspläne interpretieren
- Was ist ein Ausführungsplan? Speicherort der Ausführungspläne und Ausführungspläne anzeigen
- Plantabelle und AUTOTRACE
- ViewV$SQL_PLAN
- Automatic Workload Repository (AWR)
- SQL-Überwachung – Überblick
- Ausführungspläne interpretieren
- Kompliziertere Ausführungspläne lesen und Ausführungspläne prüfen
- Ausführungspläne – Der nächste Schritt
Anwendungs-Tracing
- End-to-End Tracing von Anwendungen – Herausforderungen
- Verzeichnis für Diagnose-Traces
- Was ist ein Service? Services mit Clientanwendungen verwenden und Tracing Services
- Service Tracing mit Enterprise Manager
- Tracing auf Sessionebene – Beispiel
- Utility trcsess und Inhalt der SQL-Trace-Datei
- Utility tkprof aufrufen und Ausgabe des Befehls tkprof
- Ausgabe von tkprof mit und ohne Index – Beispiel
Optimizer – Tabellen- und Indexvorgänge
- Zeilenquellenvorgänge, Hauptstrukturen und Zugriffspfade
- Full Table Scans
- Indizes – Überblick und B*-Baumindizes und NULL-Werte
- Indizes verwenden – NULL-geeignete Spalten berücksichtigen
- Indexorganisierte Tabellen
- Bitmap-Indizes, Bitmap-Vorgänge und Bitmap Join-Indizes
- Zusammengesetzte Indizes und unsichtbarer Index
- Richtlinien für das Verwalten von Indizes und Indexverwendung untersuchen
Optimizer-Join-Methoden
- Nested Loops Joins
- Nested Loops Joins – 11g-Implementierung
- Sort Merge Joins
- Hash Joins und kartesische Joins
- Equijoins und Nonequijoins
- Outer Joins
- Semijoins
- Antijoins
Optimizer – Weitere Operatoren
- Wann sind Cluster nützlich?
- Sortieroperatoren und Operator BUFFER SORT
- Operator INLIST ITERATOR und VIEW
- Operator COUNT STOPKEY
- Operatoren MIN/MAX und FIRST ROW und andere N-Array-Vorgänge
- Filtervorgänge und CONCATENATION-Vorgänge
- UNION [ALL], INTERSECT, MINUS
- Operator RESULT CACHE
Fallbeispiel: Star-Transformation
- Star-Schemamodell und Snowflake-Schemamodell
- Star-Transformation
- Faktenzeilen aus einer Dimension und aus allen Dimensionen abrufen
- Zwischenergebnismenge mit Dimensionen verknüpfen
- Star-Transformationsplan – Beispiele
- Star-Transformations-Hints
- Bitmap Join-Indizes
- Bitmap Join-Indizes – Join-Modell 1 bis 4
Optimizer-Statistiken
- Optimizer-Statistiken – Typen
- Tabellen-, Index- und Spaltenstatistiken
- Index-Clustering-Faktor
- Histogramme, wertebasierte Histogramme und Histogramme – Überlegungen
- Statistiken für mehrere Spalten und Ausdrucksstatistiken – Überblick
- Systemstatistiken sammeln und Statistikvoreinstellungen
- Manuelle Statistiksammlung
- Statistiken sperren, Statistiken exportieren/importieren und Statistiken einstellen
Bind-Variablen
- Cursor Sharing und verschiedene Literalwerte
- Cursor Sharing und Bind-Variablen
- Bind-Variablen-Peeking
- Cursor Sharing – Weiterentwicklung
- Parameter CURSOR_SHARING
- Cursor Sharing erzwingen
- Adaptive Cursor Sharing
- Mit Adaptive Cursor Sharing interagieren
SQL Tuning Advisor verwenden
- SQL-Anweisungen automatisch optimieren
- Anwendungs-Tuning – Herausforderungen
- SQL Tuning Advisor – Überblick
- Veraltete oder fehlende Objektstatistiken und SQL-Anweisungsprofile
- Ablauf des Plan-Tunings und SQL-Profilerstellung
- SQL-Tuning-Schleife, Zugriffspfadanalyse und SQL-Strukturanalyse
- Database Control und SQL Tuning Advisor
- Empfehlungen implementieren
SQL Access Advisor verwenden
- SQL Access Advisor – Überblick
- Mögliche Empfehlungen
- SQL Access Advisor-Session – Ausgangsoptionen
- SQL Access Advisor – Seite "Workload Source"
- SQL Access Advisor – Seite "Recommendation Options"
- SQL Access Advisor – Seiten "Schedule" und "Review"
- SQL Access Advisor – Seite "Results"
- SQL Access Advisor – Ergebnisse und Implementierung
Automatisches SQL-Tuning
- SQL-Tuning-Schleife
- Automatisches SQL-Tuning
- Automatischer Tuning-Prozess
- Automatisches SQL-Tuning konfigurieren
- Automatisches SQL-Tuning – Ergebniszusammenfassung
- Automatisches SQL-Tuning – Ergebnisdetails
- Automatisches SQL-Tuning – Ergebnisdetails: Drill Down
- Überlegungen zum automatischen SQL-Tuning
SQL-Performance-Management
- SQL-Performance beibehalten und SQL Plan Management – Überblick
- SQL-Plan-Baseline – Architektur
- Wichtige SQL-Planattribute in Baselines
- SQL-Planauswahl
- Mögliche Szenarios für die SQL-Plan-Manageability
- Szenario für SQL Performance Analyzer und SQL-Plan-Baseline
- SQL-Plan-Baselines automatisch laden und SQL Management Base-Policys löschen
- Enterprise Manager und SQL-Plan-Baselines