Datenbankübergreifendes Performance-Tuning
Einleitung
Dieses Seminar vermittelt universelle Techniken zur Performance-Optimierung relationaler Datenbanken, unabhängig vom eingesetzten RDBMS (wie PostgreSQL, SQL Server, Oracle oder MySQL). Teilnehmer erlernen die Analyse von Ausführungsplänen, fortschrittliche Indexierungsstrategien, das Erkennen von SQL-Anti-Patterns und das effiziente Handling von Transaktionen unter Hochlast.
Zielgruppe / Voraussetzung
- Zielgruppe: Datenbankentwickler, Backend-Engineers, DBAs und Softwarearchitekten.
- Voraussetzung: Fundierte SQL-Kenntnisse und praktische Erfahrung mit relationalen Datenbanken.
Detaillierte Inhalte
Architektur und Query Processing
- Phasen der Abfrageverarbeitung: Parsing, Binding, Optimierung und Ausführung
- Funktionsweise des Cost-Based Optimizers (CBO)
- Bedeutung und Pflege von Datenbank-Statistiken
Ausführungspläne (Execution Plans) analysieren
- Lesen und Interpretieren von Ausführungsplänen über verschiedene Systeme hinweg
- Physische Join-Operatoren verstehen: Nested Loop, Hash Join, Merge Join
- Flaschenhälse identifizieren: Table Scans, Index Scans, Key Lookups
Indexierungsstrategien
- B-Tree-Architektur und Index-Tiefen
- Clustered vs. Non-Clustered Indexes (bzw. Heap Tables)
- Design von Composite Indexes (Reihenfolge der Spalten)
- Covering Indexes (Abdeckende Indizes) zur Vermeidung von Leseoperationen auf der Tabelle
- Einsatz von gefilterten (Filtered) und funktionsbasierten (Function-based) Indizes
SQL Anti-Patterns und Refactoring
- Sargability (Search Argument Able): Indexfreundliches Schreiben von WHERE-Klauseln
- Erkennen und Beheben des N+1-Select-Problems in ORM-Frameworks
- Implizite Datentyp-Konvertierungen und deren Performance-Auswirkungen
- RBAR (Row-By-Agonizing-Row) vs. mengenbasierte (Set-based) Operationen
Concurrency, Locking und Transaktionen
- ACID-Prinzipien und deren physische Umsetzung
- Sperrmechanismen (Locks, Latches) und Blockaden (Blocking)
- Analyse und Auflösung von Deadlocks
- Isolation Levels (Read Committed, Serializable) und Multi-Version Concurrency Control (MVCC)
System- und Ressourcen-Optimierung
- Speichermanagement (Buffer Pool, Shared Buffers)
- I/O-Optimierung und Storage-Layout (Datafiles, Transaction Logs/WAL)
- Parameter Sniffing / Bind Variable Peeking erkennen und behandeln
Dauer: 3 Tage