Berliner Expertenseminar: Datenbank-Performance für Entwickler

  • Erstellt von Christian Luda
  • Datenbank, Development

Am 28. und 29. September findet unser Berliner Expertenseminar mit Randolf Eberle-Geist statt. Wir haben uns vorab mit dem Experten unterhalten.

Herr Eberle-Geist, Ende September haben wir erneut die Ehre, Sie als Referent beim Berliner Expertenseminar zu begrüßen. Welche Erinnerungen haben Sie an ihr letztes Mal bei uns und worauf freuen Sie sich am meisten?

Auch wenn ich regelmäßig Kundenseminare halte, empfinde ich so ein Expertenseminar immer als etwas Besonderes, gerade für die DOAG und auch in Berlin, wo ich nicht so häufig bin. Insofern habe ich sehr schöne Erinnerungen an das letzte Mal – an die Umgebung, die Teilnehmer und auch das gute Gefühl, interessantes und hilfreiches Wissen vermittelt zu haben. Daher freue ich mich neben vielen anderen Aspekten darauf, den Teilnehmern hoffentlich wieder viel mitgeben zu können, wovon sie später noch profitieren können – aber natürlich auch auf die Begegnung an sich mit den Teilnehmern und Mitarbeitern der DOAG, die das Event begleiten.

Sie sind einer der führenden Experten in den Bereichen Oracle Optimizer-Technologie und SQL-Performance-Analyse. Wann haben Sie begonnen, sich auf das Thema Performance-Optimierung zu spezialisieren, und warum fasziniert sie insbesondere dieser Bereich?

Ich hatte mein Schlüsselerlebnis diesbezüglich zu Beginn des Jahrtausends – also vor über 20 Jahren –, als ich selbst noch als Freiberufler für einen Kunden in einem Projekt als Oracle-Datenbank-Entwickler gearbeitet habe und einfach nicht verstanden habe, warum sich die Datenbank nicht so verhält, wie ich es erwartet habe, und auch erst mal keine gute Antwort darauf fand. Daraufhin begann ich, mich immer intensiver damit zu beschäftigen, wie man solche Probleme systematisch angehen und verstehen kann, welche Werkzeuge dafür in der Datenbank zur Verfügung stehen und wie man sie sinnvoll einsetzen kann. Später kam dann auch noch die Idee dazu, wie man Performance auch im Rahmen einer Software-Entwicklung oder eines Projektes schon pro-aktiv mitplanen und testen kann, um nicht erst dann mögliche Probleme diesbezüglich zu erkennen, wenn es eigentlich schon zu spät ist und man an der Software bzw. Situation an sich nicht mehr viel ändern kann – wie ich es in meiner Laufbahn als Performance-Spezialist schon häufig erlebt habe.
Faszinierend finde ich vieles an diesem Bereich – auf jeden Fall die Vielfältigkeit und Abwechslung, da jedes Kundenproblem wieder anders ist, auch wenn sich einige Grundthemen wiederholen, aber auch die Komplexität der Oracle-Datenbank-Software, da es so viele verschiedene Möglichkeiten gibt, in welchen Bereichen Performance-Probleme auftreten können. Der Optimizer, der die Ausführungspläne von SQL-Anweisungen erstellt, und die Performance solcher SQL-Ausführungen sind dann nochmal ein eigenes, faszinierendes Thema, das sehr komplex und herausfordernd sein kann, da hier vieles auch nicht wirklich gut dokumentiert ist und sich nur durch eigenes Ausprobieren herausfinden lässt.

Aus Ihrer langjährigen Erfahrung: Welche sind die Hauptgründe dafür, dass Anwender oft nicht die maximale Performance aus der Datenbank herausholen?

Kurz gesagt: Ein Hauptgrund ist in vielen Fällen mangelndes Verständnis dafür, wie die Datenbank intern funktioniert – und genau dafür ist ja dieses Seminar gedacht, eben hilfreiches Wissen in diesem Bereich zu vermitteln. As meiner Sicht ist einer der Hauptgründe aber sicherlich auch, dass in vielen Projekten das Thema Performance eben nicht explizit auf der Agenda steht und deshalb auch nicht entsprechend geplant wird, auch was die Ressourcen angeht. Es herrscht immer noch weitgehend die Vorstellung, dass die Entwickler sich auf die Umsetzung der fachspezifischen Anforderungen konzentrieren, und die Oracle-DBAs für alles andere zuständig sind – unter anderem eben auch die Performance, wenn es denn dann nicht so funktioniert wie erwartet. Dies ist aber nicht realistisch von den DBAs zu leisten, da dafür Spezialwissen erforderlich ist, und die restlichen Themen, mit denen sich DBAs beschäftigen müssen, an sich schon so komplex und herausfordernd sind, dass sie damit schon mehr als genug ausgelastet sind.
Auch wenn die Oracle-Datenbank als Teil der Diagnostic und Tuning Pack License nicht nur tolle Diagnose-Möglichkeiten bietet, sondern auch mit jeder Version wieder mehr Automatismen im Bereich Performance mitbringt, kann man darüber auch heute noch nicht komplexe Performance-Probleme automatisch von der Datenbank lösen lassen.
Insofern plädiere ich grundsätzlich für die Einrichtung einer interdisziplinären Rolle eines Performance-Verantwortlichen in entsprechenden Projekten, der Performance als Hauptthema verfolgt, misst und dokumentiert und als Bindeglied zwischen Entwicklern und DBAs agiert. Idealerweise erfüllt die Rolle dann auch, die Entwickler und Anwender entsprechend beraten zu können, wie sie das Maximale an Performance aus der Datenbank herausholen und ungünstige Implementierungen vermeiden können. Natürlich ist der letzte Teil nicht trivial, da eine Menge Spezialwissen dafür benötigt wird – man muss dazu eben verstehen, was man erreichen will und wie die Datenbank intern „tickt“, und welche Verwendungsweise der Datenbank-Engine daher besser funktioniert als andere. Wenn dieses Wissen im Projekt nicht vorhanden ist, kann man ja trotzdem diese Rolle einrichten und auf externes Wissen – zum Beispiel in meiner Person – bei Bedarf zurückgreifen. Damit wäre aus meiner Sicht schon vielen Projekten sehr geholfen.

An wen richtet sich Ihr Seminar und welche Kenntnisse sollten die Teilnehmer mitbringen?

Das Seminar richtet sich vornehmlich an Oracle-Datenbank-Entwickler, die ein besseres Verständnis dafür bekommen möchten, welche Werkzeuge die Datenbank für die systematische Analyse von Performance mitbringt und wie man diese einsetzt. Darüber hinaus geht es auch maßgeblich darum, wie die Datenbank intern funktioniert und was man daher dafür tun kann, um mehr Performance aus der Datenbank herauszuholen – in ganz unterschiedlichen Bereichen, wie Indizierung, Organisation der Daten, Statistiken, aber auch bei der Verwendung von Hints.
Als Vorkenntnisse sind auf jeden Fall solides Wissen über SQL und ein Verständnis darüber, wie die Oracle-Datenbank-Architektur grundsätzlich aussieht, zu empfehlen.
Idealerweise ermögliche ich also den Teilnehmern mit meinem Seminar, eben genau die oben beschriebene Rolle besser ausfüllen zu können und als Bindeglied zwischen Entwicklung und Datenbank-Administration für bessere Datenbank-Performance sorgen zu können.

Herr Eberle-Geist, vielen Dank für das Gespräch. Wir freuen uns, Sie Ende September begrüßen zu dürfen!

Sie haben Interesse am Berliner Expertenseminar „Datenbank-Performance für Entwickler“ mit Randolf Eberle-Geist? Dann melden Sie sich gleich hier an!