Realistische Sichtweise - Die Statistik
Ein weiterer wichtiger Punkt für Verschleiß ist die Statistik der Datenbank. Diese aktualisiert der Server nur, sollten insgesamt mehr als 20 Prozent am Inhalt der jeweiligen Tabelle geändert werden. Läuft eine Abfrage über den Server, prüft er die Statistik und erstellt anhand dieser einen Ausführungsplan. Letzterer gibt vor, wie viele Ressourcen das System für die Bewältigung der Abfrage einplanen muss. Durch die relativ seltenen Aktualisierungen der Statistik geht der Server jedoch oft von falschen Datenmengen aus. Da der zuvor festgelegte Ausführungsplan nicht flexibel ist, entsteht in Folge ein Flaschenhals. Unsicher, was das konkret bedeutet?
Ein Beispiel: Stellt euch den Server als euer Ladenlokal vor, der Inhalt der Datenbank ist das Lager. Die Statistiken bilden die Liste über den aktuellen Lagerbestand. Nun kommt ein Kunde, Sinnbild für die Datenbankabfrage, und bestellt alles, was ihr in den letzten 30 Tagen an Ware erhalten habt. Die Lagerbestandsliste meldet keine Änderung, da sich der Bestand nicht um mehr als 20 Prozent geändert hat. Der Verkäufer geht aber davon aus, dass zumindest ein neuer Artikel hinzugekommen ist. Er greift seinen Warenkorb, marschiert ins Lager und macht sich auf die Suche. Mit Erschrecken stellt er jedoch fest, dass insgesamt 100 neue Artikel hinzugekommen sind. Der Verkäufer ist jedoch stur und holt nun jeden dieser Artikel einzeln mit dem viel zu kleinen Warenkorb ab. Wie lange der Verkäufer deshalb für die Anfrage des Kunden braucht, könnt ihr euch sicherlich vorstellen.
In der JTL-Datenbankverwaltung könnt ihr unterschiedliche Optimierungen für den SQL-Server steuern.
Wie löst ihr das Problem? Ganz einfach – mit der in JTL-Wawi enthaltenen JTL-Datenbankverwaltung. Sie erlaubt euch, mit wenigen Klicks die Datenbank zu optimieren. Dies beinhaltet die Überprüfung und den Neubau der Statistik. Auch die in Teil 1 genannten Baustellen, also die Datenbanksicherung und die Indizes lassen sich manuell mithilfe der Anwendung steuern. Aber wie schon bei den Indizes, solltet ihr die Überprüfung und eventuelle Neukonstruktion der Statistik nicht im laufenden Betrieb durchführen. Denn je nach Ausmaß der Änderungen an euren Datenmengen kann die Aktualisierung sehr zeit- und ressourcenintensiv sein. Schaltet zudem den Worker hierfür aus, da es sonst zu Konflikten in den Abläufen kommen kann.
Bereits mit einem Update in der Woche könnt ihr erhebliche Verbesserungen erzielen, einmal im Monat reicht hingegen nicht aus. In den meisten Datenbanken, ähnlich wie im obigen Beispiel, dürften die Änderungen in diesem Zeitraum bereits so groß sein, dass die Geschwindigkeitseinbußen spürbar sind.