In der Praxis kommt es leider immer wieder zu Problemen. Gute Kenntnisse der gewählten ORM-Bibliothek sind Voraussetzung, um Skalierungsproblemen vorzubeugen. Hibernate beispielsweise generiert bei falscher Verwendung von Collections viel mehr Datenbankanfragen als der Entwickler vermutet. Probleme sind außerdem vorprogrammiert, wenn Entwickler eine Anwendung implementieren, ohne genaue Kenntnisse über Datenmengen oder vorhandene Indizes zu besitzen. Die Software auf einer Datenbank zu testen, die der Produktivumgebung entspricht, ist daher Pflicht.
Kostenlos testen
Ein Tool, das genau dafür eingesetzt werden kann, falls MySQL als Datenbanksystem zum Einsatz kommt, ist der Jet Profiler der schwedischen Firma Polaricon AB. Jet Profiler für MySQL hat die Aufgabe, die Kommunikation einer laufenden Applikation mit der Datenbank zu analysieren. Dadurch wird es einfach, häufig ausgeführte Queries, Anfragen mit langer Laufzeit oder sonstige Engpässe zu finden. Jet Profiler kann als kostenlose Version für Windows, Linux oder Mac heruntergeladen werden. Bereits die Gratisversion kann eingesetzt werden, um die gröbsten Auffälligkeiten zu finden und sich mit dem Tool vertraut zu machen. Einige Funktionen stehen allerdings nur in der Professionell-Variante zur Verfügung. Dazu zählen unter anderem die Übersicht der Queries mit langen Ausführungszeiten, die komplette Liste der häufigsten Anfragen sowie die Möglichkeit zum Speichern von Testläufen. Die Professionell-Version kostet einmalig .
Funktionsweise
Nach dem Start von Jet Profiler werden zunächst Verbindungsdaten für die zu analysierende MySQL-Instanz eingegeben. Anschließend muss nur noch die Applikation gestartet und der Record Button zur Aufnahme gedrückt werden. Bereits nach wenigen Sekunden werden die gesammelten Daten sichtbar. Es gibt unterschiedliche Charts für verschiedene Metriken, beispielsweise die aktiven Server Threads, die verbundenen Benutzer, die Trefferquote des MySQL Query Caches und des InnoDB Buffers, sowie zu Network Traffic, Locks, Scans und Replication Performance. Jedes Chart und die darin enthaltenen Daten sind genau erklärt. Sehr interessant ist die Query-Top-Liste. In dieser erscheinen die am häufigsten ausgeführten Datenbankanfragen und deren Gewichtung. Die Liste verändert sich kontinuierlich, während Daten gesammelt werden. Zu jedem Datenbank-Query gibt es Angaben zu Laufzeit und Last. Sehr gelungen ist die Visualisierung des Ausführungsplans sowie das Rating der einzelnen Queries. Mit besagtem Rating werden einzelne Datenbankanfragen in Kategorien wie Gut, Schlecht, Voller Index Scan etc. eingestuft. Zusätzlich zu den Kategorien gibt es eine genaue Erklärung, die beschreibt, warum ein Query als gut oder schlecht bewertet wird. Ausgestattet mit diesen Informationen, können Entwickler die Anwendung anpassen und überprüfen, ob die Veränderungen Früchte tragen und das Rating verbessern.
Die von Jet Profiler generierten Charts lassen sich auf zeitlicher Ebene beliebig zoomen. Spitzenauslastungen lassen sich auf diese Weise genau unter die Lupe nehmen. Nach dem Zoom in den gewählten Bereich stehen Daten zur Datenbankaktivität im gewählten Zeitraum zur Verfügung. Diese Funktion kann beispielsweise beim Profiling von Cronjobs helfen.Fazit
Jet Profiler ist einfach und intuitiv zu bedienen. Neueinsteiger werden mit dem Tool sehr schnell zurechtkommen. Jet Profiler fühlt Applikationen im Umgang mit Datenbanken auf den Zahn und stellt Informationen zu Performanceengpässen oder ungünstigen Queries bereit. Die detaillierten Beschreibungen der gefundenen Probleme helfen Entwicklern, die Datenbank korrekt und optimal einzusetzen.




