PostgreSQL Advanced Optimierung und Performance Tuning

PostgreSQL Advanced Optimierung und Performance Tuning

Dauer: 3 Tage
Level: Professional
Termin: 12.06. – 14.06.2017 in Wiener Neustadt, Österreich
Zielgruppe: Dieser Kurs wendet sich an Entwickler und Admins, die detailliertes Wissen über PostgreSQL benötigen. Fundierte SQL Kenntnisse nötig!

Dieser Workshop richtet sich an alle, die komplexe, performancekritische Anwendungen optimieren wollen und bietet tiefgehendes Wissen zum Thema PostgreSQL Optimierung und Performance Tuning. In diesem Kurs geht es ans Eingemachte und wir beschäftigen uns neben den grundlegenden Dingen auch mit wesentlichen PostgreSQL Internas (interne Algorithmen und Optimierungstechniken), um das absolute Optimum aus dem System heraus zu holen.

Inhalt:

Storage Grundlagen

  • On-Disk Speicherbereiche
  • Heaps und deren On-Disk Layout
  • Xlog: Funktion und Layout
  • Clog: Das Commit Log
  • Weitere Speicherbereiche
  • Datenpersistenz
  • Tablespaces
  • Optimierung von Lese– und Schreibzugriffen

Speicherverwaltung

  • Caching
  • Funktionsweise
  • Vergleich ClockSweep / ARC / LRU
  • Praktische Auswirkungen
  • Sort und Aggregates
  • Temporäre Tabellen
  • Memory Contexts

Indices verwenden

  • Index Typen
  • Der interne Aufbau von Indices
  • Partielle Indices
  • Indices auf Funktionen
  • Indices für Regular Expressions
  • Full Text Search
  • Fuzzy Matching

Execution Plans

  • Arten der SQL Optimierung
  • Exhaustive Search
  • Genetische Optimierung
  • Andere Techniken (Auszug):
  • Regelbasierte Optimierung
  • Explain verwenden
  • Interpretation des Outputs
  • Kosten einer Query schätzen
  • ANALYZE
  • pg_stats lesen und interpretieren
  • EXPLAIN ANALYZE
  • Das PostgreSQL Kostenmodell

Interne Optimierungsalgorithmen

  • Views und Subselects
  • Equality Constraints
  • Optimierung von Aggregates
  • HashAggregate vs. GroupAggregate
  • DISTINCT vs. GROUP BY
  • Optimierung von IN-Statements
  • Optimierung von ORDER BY
  • Joinreihenfolgen und Outer Joins
  • Optimierung von Set Operationen
  • Optimierung von Procedures und SQL Funktionen

Genetische Query Optimierung

  • Die Grenzen der “normalen” Optimierung
  • GEQO richtig verwenden

Transactions und Locking

  • Transaction Isolation
  • Optimierung des Locking Verhaltens

Partitionierung

  • Effizientes Cleanup
  • Constraint Exclusion