Durch richtige Indizierung zur optimalen Datenbank-Performance

/ch/open Logo

/ch/open Workshop-Tage 2014

Einleitung

Sorgfältige Indizierung ist eine Zeit- und Kosten-Effektive Methode zur Steigerung der SQL-Performance. Dennoch wird das Thema in den Handbüchern nur sehr oberflächlich behandelt. Dieser Kurs füllt diese Lücke und deckt alles ab, was man als Entwickler über SQL-Performance und Indizierung wissen muss.

Programm

Der Kurs beginnt mit einer allgemeine Diskussion über Indizes und SQL-Performance, in die sich die Teilnehmer mit ihren Erfahrungen einbringen können. Die technischen Hintergründe zu diesen Erfahrungen werden dann im weiteren Verlauf des Kurses erklärt.

Danach wird diese Diskussion in den Kontext von SQL gesetzt. Wir werden also sehen, wie Indizes für einfache Abfragen genutzt werden und wie man feststellt ob bzw. welcher Index für eine Abfrage benutzt wird. Ebenso werden wir sehen, was bei einem Index schief gehen kann, sodass er langsam wird. Zum Abschluss werden wir einige verbreitete Anti-Pattern besprechen und lernen wie man in solchen Situationen bessere Performance erzielt.

Nach den Grundlagen geht es darum wie Datenbanken Join-Operationen durchführen und wie sie dafür Indizes nutzen. Natürlich lernen wir auch welche Möglichkeiten Entwickler haben, um die Join-Performance zu verbessern—auch wenn man ORM-Tools verwendet.

Das nächste Thema ist die "zweite Macht der Indizierung": wie man Indizes nutzen kann, um gleichzeitig benötigte Daten möglichst nahe beieinander zu speichern. Natürlich ist auch hier der Index das Werkzeug der Wahl und kann in der Hand von Entwickler wahre Wunder bewirken.

Schlussendlich werden wir auch die "dritte Macht der Indizierung" kennen lernen: wie man Indizes nutzt, um Sortier-Operationen zu optimieren. Wir werden aber auch eine wichtige Anwendung dieser Technik kennen lernen: wie man die aktuellsten Einträge effizient findet und Blätter-Abfragen optimal umsetzt.

Der Kurs findet primär auf PostgreSQL und MySQL statt. Das Erlernte ist aber leicht auf andere Datenbanken zu übertragen.

Kursziel

Die Teilnehmer/-innen lernen Indizes richtig einzusetzen und dadurch Performance-Problemen vorzubeugen. Darüber hinaus lernen sie in "Sortieren Mengen zu denken" und dadurch die beste Lösung rasch zu finden.

Adressaten

Der Kurs richtet sich vorrangig an Entwickler/-innen mit SQL-Basiswissen. Es hat sich jedoch gezeigt, dass auch Datenbank-Administratoren und Software-Architekten davon profitieren können.

Voraussetzungen

SQL-Basiswissen ist Voraussetzung für diesen Kurs: die grundlegende Funktion von SELECT, WHERE, JOIN, ORDER BY und GROUP BY. Für den Kurs ist keinerlei Vorwissen über Datenbank-Tuning erforderlich.

max. Teilnehmerzahl

-

Infrastruktur

Für den Workshop wird ein eigenes Notebook benötigt.

Referent

Markus Winand

Markus Winand hat sich als Autor, Trainer und Coach darauf spezialisiert, Entwicklern bei Problemen mit SQL-Performance zu helfen. Er hat das Buch „SQL Performance Explained“ veröffentlicht und twittert seine besten Tipps als @SQLPerfTips.

Price: CHF 360
Open in Google Maps