8 Tipps für eine bessere ERP-Performance

Startseite | Infrastruktur | 8 Tipps für eine bessere ERP-Performance

„Das System ist langsam geworden!“ ist ein Ausspruch, der genauso alt ist, wie das IT-Business selbst. In diesem Blog-Eintrag möchten wir Ihnen Maßnahmen aufzeigen, die Sie ergreifen können, falls Sie mit Ihrer ERP-Lösung auf Performance-Probleme stoßen.

In den vergangenen Jahren stieg die Erwartung der Anwender an die System-Perfomance linear zu der eingesetzten Software- und Hardwareleistung. In vielen Fällen leistet die Software sogar deutlich mehr als die Hardware an Möglichkeiten hergibt, was dazu führt, dass zum Beispiel Stapelverarbeitungen (Batch Jobs) immer noch relativ viel Zeit in Anspruch nehmen können. Gleichzeitig wachsen jedoch die Erwartungen an die Systemleistung immer weiter. Auch sind Erwartungen immer stark subjektiv geprägt: Was „lange“ und was „zu lange“ ist, liegt im Auge des Betrachters bzw. Anwenders.

Mitunter ist zu beobachten, dass Anwender sich mit einer schlechten System-Performance anscheinend abgefunden haben; wenn das Buchen einer einzigen Rechnung ganze 5 Minuten dauert, der Anwender dazu aber nur sagt: „Och, das ist ganz normal. Das dauert immer so lange.“ Oder „Es handelt sich ja schließlich um eine große Rechnung.“ Und die Performance-bedingten Pausen dann als willkommene Kaffeepause genutzt werden.

Wo sollten Sie ansetzen, wenn Ihre ERP-Lösung Performance-Probleme hat?

Überprüfen Sie, ob es sich tatsächlich um eine schwache System-Performance handelt oder ob die Erwartungen an die Systemleistung einfach zu hoch sind. Ein guter Ansatzpunkt für das Finden von Ursachen ist es, zu analysieren, ob Prozesse, Stapelläufe oder das Ausführen von Reports im Laufe der Zeit tatsächlich langsamer geworden sind. Häufig entschuldigen Verantwortliche dies mit einer gewachsenen Anzahl an Informationen in der Datenbank, was Sie jedoch nicht als Entschuldigung für ein langsames System akzeptieren sollten! Auch sehr große Datenbanken, bei denen die Indizes optimal vergeben wurden, können äußerst performant sein.

Es stellt sich die Frage, ob das Verhalten systemweit oder nur bei bestimmten Prozessen auftritt. In diesen Fällen muss überprüft werden, ob das Setzen von Indizes optimiert werden kann oder, ob innerhalb eines Prozesses evtl. zu viele Informationen gelesen oder aktualisiert werden müssen. Behalten Sie aber immer auch die Möglichkeit im Hinterkopf, dass die für den Systemprozess aufgewendete Zeit genau die richtige ist, die Erwartungen der Anwender jedoch einfach viel zu hoch sind.

Bei dem Auftreten von Performance-Problemen wird häufig bereits in einer frühen Phase ein SQL-Spezialist für technische Fragen zu Rate gezogen, der die SQL-Logs und Server-Statistiken analysiert. Bereits im Vorfeld können Sie selbst schon einige Maßnahmen ergreifen – ohne zu tief in technische Themen zur System-Optimierung eintauchen zu müssen.

8 Tipps für eine bessere System-Performance

Grenzen Sie Personenkreis und zeitliches Auftreten ein, schließen Sie Anwendungen aus

Tipp 1 Wofür wird Ihr System noch verwendet, welche Prozesse laufen parallel? Falls noch weitere Programme auf dem gleichen Server laufen, stoppen Sie diese. Ein klassisches Problem stellt häufig die eingesetzte Anti-Viren-Software dar, die von NAV oder SQL erstellte Dateien automatisiert scannt.

Tipp 2 Fragen Sie nach dem „Wer“! Checken Sie, ob ein Performance-Problem bei allen oder nur bei einem bestimmten Anwender auftritt! Versuchen Sie herauszufinden, ob der Prozess für den selben Anwender an einem anderen Rechner funktioniert, oder am selben Rechner zu einer anderen Zeit. Es könnte z. B. sein, dass regelmäßig zu einer bestimmten Zeit im Netzwerk große Datenmengen heruntergeladen werden, was für die schlechte Performance ursächlich ist.

Langsame Übersichten oder Karten – Tritt das Problem nur bei bestimmten Systemprozessen oder Ansichten auf?
Ist dies der Fall, prüfen Sie, ob evtl. berechnete Felder (Flowfields) genutzt werden. Ein nicht-performantes Flowfield kann große Auswirkungen auf eine ganze Ansicht haben, insbesondere auf Listen, bei denen ein Feld für jeden Datensatz einzeln berechnet wird – auch wenn evtl. nur ein einziger Datensatz für Sie von Interesse ist.

Tipp 3 Entfernen Sie die als optimierungsbedürftig identifizierten Felder von der Page und schauen Sie, ob sich die Performance verbessert. Zuvor sollten Sie eine Sicherung der entsprechenden Objekte durchführen! Wenn durch das Löschen des Flowfields eine signifikante Verbesserung erkennbar ist, gibt es verschiedene Maßnahmen, die Sie ergreifen können: erweitern Sie das berechnete Feld um einen korrekten bzw. optimierten Schlüssel auf den darunterliegenden Datensatz – z. B. die Informationen, aufgrund derer das Feld berechnet wird.

Tipp 4 In einem weiteren Schritt könnten Sie in Listen gänzlich auf Flowfields verzichten und diese dafür auf Page bzw. Form-Ebene implementieren. Somit wird es immer nur für einen einzigen Datensatz berechnet. Eventuell können Flowfields auch endgültig gelöscht werden, falls sie gar nicht mehr benötigt werden.

Performance beim Buchen – Tritt das Problem hauptsächlich beim Buchen auf?
Bei Buchungsprozessen ist das Sperren von Tabellen häufig ein Feature der Anwendung. Datensätze müssen gesperrt werden, während bestimmte Informationen berechnet oder aktualisiert werden, um die Informationen in der Datenbank konsistent zu halten. Bei NAV-Versionen älter als 2013 wurde noch „großzügiger“ gesperrt als bei aktuellen NAV-Versionen, wie Dynamics NAV 2017. Dank automatisierter Verarbeitungswarteschlangen (Job Queues) werden Aufträge, Rechnungen oder andere Datensätze als „fertig zum Buchen“ markiert und anschließend im Hintergrund abgearbeitet.

Tipp 5 Automatisierte Job Queues sind seit der NAV-Version 2013 Standard. Falls bei Ihnen also NAV2013 oder eine aktuellere Version installiert ist, Sie aber noch nicht mit Stapelverarbeitungen arbeiten, sollten dies unbedingt in Betracht ziehen. Der Vorteil ist offensichtlich: Wenn ein Anwender nicht auf die Fertigstellung eines Buchungsvorgangs warten muss, da dieser im Hintergrund läuft, werden längere Laufzeiten erst gar nicht als Problem wahrgenommen.

Report Server
Eine weitere Möglichkeit, die Arbeitslast Ihrer ERP-Lösung zu reduzieren, ist, einen Teil der Arbeit auf ein anderes System auszulagern. Ein Paradebeispiel hierfür ist das Auslagern von Analysen und Berichten auf einen eigenen Reporting Server. Hiermit werden die täglichen Aufgaben und Systemprozesse nicht durch das Ausführen von Berichten und Analysen beeinträchtigt. Insbesondere, wenn es sich um vom Anwender selbst erstellte, ineffiziente Reports handelt, die den SQL-Server unnötigerweise auslasten.

Tipp 6 Installieren Sie eine gesonderte Business Intelligence bzw. Reporting Umgebung, wie beispielsweise Jet Enterprise, oder kopieren Sie einfach täglich Ihre Datenbank, um einen Snap-Shot Ihrer aktuellen Daten zu erhalten. Alle Auswertungen können Sie dann auf Basis der aktuellen Daten, auf einem separaten Server vornehmen – ohne die für das Tagesgeschäft notwendigen ERP-Prozesse zu beeinträchtigen.

Werkzeuge zur Unterstützung

Tipp 7 Für den Fall, dass Sie trotz oder gerade weil der o. g. Tipps tiefer in die Materie der System-Optimierung einsteigen möchten, dienen Tools wie Code Coverage und SQL Activity Monitor als gute Werkzeuge bei der Ursachenforschung langsamer Systeme. Sie erlauben es, Ihrem NAV-Partner, Ihr NAV-System im Detail zu  analysieren. So kann beispielsweise erkannt werden, wie lang jedes SQL-Statement ausgeführt wird, welcher Code durchlaufen wird und wann und wie effizient dies abläuft.

Manchmal liegt es am Code
Nicht immer ist die Ursache in komplexen SQL-Prozessen, System-Infrastrukturen und technischen Analysen zu finden. Manchmal liegt es auch „einfach“ am Programmcode oder an individualisierten Software-Designs.

Tipp 8 Bis zu einem bestimmten Grad ist dies tatsächlich der „einfachste“ Weg bestehende Performance Probleme anzugehen und zu eliminieren. So durchläuft ein schlecht programmierter Bericht tausende unnötige Datensätze anstatt die nicht-relevanten Informationen unmittelbar herauszufiltern; auch könnten die durchlaufenen Datensätze gleichzeitig bearbeitet werden, obwohl dies gar nicht erforderlich ist – zum Beispiel das Berechnen und Schreiben eines Feldes, obwohl es seit dem letzten Mal gar nicht verändert wurde. Programmierer sind auch nur Menschen. Wenn einzelne Berichte oder Prozesse sehr unperformant laufen, lassen Sie den entsprechenden Programmcode überprüfen!

NAV kann auch groß!
Zum guten Schluss bleibt festzuhalten, dass es sich immer lohnt, die Größe eines ERP-Systems kritisch zu hinterfragen. Es existieren NAV-Lösungen, die es ihren Anwendern erlauben, täglich tausende Bestellungen zu erfassen, mehr als 1000 Anwender gleichzeitig arbeiten zu lassen oder es ermöglichen, Kunden mit hunderten NAV-Installationen, täglich riesige Datenmengen an eine zentrale Datenbank zurückspielen zu lassen. Solch große Systeme sollten – ungeachtet der eingesetzten Software und der Möglichkeit der Skalierbarkeit – regelmäßig auf Optimierungspotenziale hin untersucht werden. Dynamics NAV bildet hierbei keine Ausnahme; es kann großartige Ergebnisse liefern, sofern es optimal aufgesetzt und eingerichtet ist.

Wir unterstützen Sie gerne bei Ihren nächsten Schritten, wenn es darum geht, das Leistungspotenzial Ihrer NAV-Lösung besser auszuschöpfen!

 

Quelle: Ian Humphries | Speed it up! | https://thenavpeople.com/uk/news/system-performance-speed-it-up | Stand: 31.03.2017