Datenbankserver: Der Motor, der die Performance treibt
Zu den Standard-Herausforderungen eines Online-Shop-Besitzers gehört die Performance: Der Shop muss schnell sein, die Seiten blitzschnell geladen und ausgeliefert werden. Der Motor, der das treibt, ist die Datenbank. Hier aber nur den Datenbank-Server zu betrachten, ist ein Fehler, der oft gemacht wird. Natürlich muss der Datenbankserver ausreichend dimensioniert sein, aber selbst der optimal konfigurierte Datenbank-Server kann mit einem ‚schlechten‘ Datenbank-Schema oder ‚schlechten‘ Datenbankabfragen in die Knie gezwungen werden. Als Ergebnis hat man in solchen Fällen bestenfalls einen trägen Shop. Im schlimmsten Fall führt es zu Problemen im Shop-Abgleich oder sogar zu Timeouts. Wer beispielsweise mit Adwords arbeitet, verliert mit schlecht performenden Seiten faktisch täglich Geld.
SQL Performance Monitoring – Wie funktioniert‘s?
Das SQL Performance Monitoring von snafu ist die Basis für die Performance Optimierung Ihres Online-Shops. Im Monitoring werden Daten sämtlicher Abfragen der Applikation – in den nachfolgenden Beispielen ein JTL Shop 4 – gesammelt und ausgewertet, zum Beispiel:
- Anzahl der Abfragen?
- Dauer einer Abfrage?
- Wie ist der Verlauf?
Mit dieser Datenbasis können Probleme über einen Zeitraum hinweg identifiziert und die Ursache eingegrenzt werden. Wir veranschaulichen, wie das Performance Monitoring Schwachstellen aufdeckt anhand von zwei Beispielen:
Problemstellung 1: Shop-Abgleich
Shop-Abgleich für einen Shop mit einer vierstelligen Anzahl an Verkäufen und Versandabgleichen: Der Abgleich dauerte zu lang bzw. ist immer wieder abgebrochen mit Http 503 / 504 Fehlern. Dank des SQL Performance Monitorings konnten Schwachstellen im JTL-Datenbank Schema identifiziert werden, die dafür sorgten, dass bestimmte
Prozesse pro Abfrage mehr als eine Sekunde benötigten. Eine Sekunde klingt kurz: In der Datenbankwelt ist das allerdings eine kleine Unendlichkeit. Gleicht man 2.000 Aufträge ab, summiert sich die Gesamtanzahl zu einem problematischen Zeitraum.
Die Konfiguration von Webservern erlaubt es einen sogenannten Timeout zu definieren, ab dem dieser eine Abfrage abbricht. Dies ist ein Schutz vor zu lang laufenden Skripten/Funktionen. Ein Shopabgleich, der zu lange dauert, kann genau in diese Schutzfunktion laufen. Bei einem Shopabgleich werden je nach Menge der abzugleichenden Daten viele Datenbankzugriffe ausgeführt. Hier ist es besonders wichtig, dass die Datenbankperformance stimmt. Gibt es große Tabellen, die an wichtigen Schlüsselfeldern keinen Index gesetzt haben, geht die Performance in die Knie und eine einfache Abfrage dauert nicht mehr Mikrosekunden sondern Sekunden. Ein Index sorgt dafür, dass nicht mehr die gesamte Tabelle nach den benötigten Informationen durchsucht werden muss, sondern gezielt zu diesen gesprungen werden kann.
Nach der Korrektur brauchte diese Abfrage nur noch wenige Mikrosekunden. Die Shop-Datenbank-Abgleich läuft seitdem problemlos durch, und es ist wieder viel Luft nach oben für einen weiterwachsenden Shop.
Problemstellung 2: Plugins als Schwachstelle
Eigentlich gilt das Motto: Je weniger Plugins, desto besser. Aber: Viele Sonderfälle und Shop-Funktionalitäten können nur durch Plugins umgesetzt werden. Als Shop-Betreiber muss man darauf vertrauen, dass der Plugin-Entwickler bzw. der Entwickler der Datenbank ausreichend Know-How mitbringt. Denn je nach Plugin und Funktion kann es sein, dass pro Seitenaufruf die Datenbank beteiligt ist: Hat der Shop mehrere Tausend Besucher pro Stunde, wird das sehr schnell zum Problem. Arbeitet man hier nicht sauber, zieht dies den gesamten Shop in der Performance nach unten. Auch dies ist dank des SQL Performance Monitorings schnell identifiziert und die Auswirkungen können sehr deutlich sein wie diese Grafik zeigt:
Halbierung der Zugriffszeiten nach Identifikation und Behebung von Schwachstellen in SQL-Abfragen durch Plugins.
Die Vorteile des SQL Performance Monitorings auf einen Blick
- Laständerungen durch eine geänderte Artikel-Merkmalstruktur
- Laständerungen durch Änderungen im Template
- Fehler in der Applikationslogik
- Laständerungen durch neue Plugins
- Mängel im Datenbank-Schema, die dafür sorgen, dass Abfragen ineffizient arbeiten
- Wachsende Tabellen, die im Zuge dessen langfristig für eine kontinuierlichen Performance-Abfall sorgen
Angebot: SQL Performance Monitoring Paket
Verbessern Sie heute noch Ihre Shop Performance-
24/7 Monitoring einer MySql/MariaDB Datenbank
-
Grundlage für die Suche nach „Bottlenecks“ (-> Performance)
-
Grundlage für die Datenbank Optimierung (-> Performance)
-
Identifizierung von Laufzeitveränderungen durch bspw. neue Plugins
-
Wöchentliche Kurzanalyse von Laufzeitveränderungen