Workshop zur SQLBase 12 – Performanceverbesserung eines Warenwirtschaftssystems

MD Consulting-Gupta-Opentext-SQLBase-Performance-Beratung
MD Consulting-Gupta-Opentext-SQLBase-Performance-Beratung

Der Durchbruch ist da mit OpenText/Gupta SQLBase 12:
Es wird eine deutliche Steigerung der Datenbank-Skalierbarkeit und Multi-User-Performance versprochen. Mit ihr soll man gewappnet sein für die immer weiter wachsende Anzahl an Anwendern, steigender Anwendungskomplexität und ständigem Datenwachstum.

Unser Kunde vertreibt nach einer langjährigen historisch bedingten Firmengeschichte Karnevalskostüme, Perücken und Zubehör von Europa über China bis nach Amerika. Das ganzjährige Vollsortiment für Karneval, Halloween, Weihnachten, Mottoparties und Junggesellenabschiede begeistert seit 156 Jahre Menschen in jeder Alterskategorie und findet weltweit seine Abnehmer. Aufgrund derselben Erwartungshaltung stellten auch sie letztendlich auf die SQLBase 12 um.

performance-sqlbase-gupta-md-consuling-opentext

Doch leider kam es anders.
Nach der Migration auf die SQLBase 12 traten unvorhergesehene Performanceprobleme auf. Diese äußerten sich dahingehend, dass das Warenwirtschaftssystem viel zu langsam lief und sich Abstürze häuften. Mit dem Team Developer 6.2 SP5 als Grundbaustein kooperierte das System bislang mit der SQLBase 11.5 zusammen. Mit dem Ziel eine deutliche Performanceverbesserung zu erzielen, sollte demzufolge auf die SQLBase 12 migriert werden.

Eine Katastrophe für unseren Kunden.
Schnell wurde ein Termin zur Lösung dieses Problems im Zusammenhang mit dem Warenwirtschaftssystem des Softwarehauses geplant. Dazu haben der Gupta-Spezialist von MD Consulting und der Programmierer des Softwarehauses konstruktiv miteinander zusammengearbeitet.
Um sich einen ersten Eindruck zu verschaffen, wurde durch unseren Gupta-Spezialisten die Infrastruktur per Fernwartung analysiert. Hier zeigten sich keine technischen Unstimmigkeiten.

Was nun?
In einem Workshop wurden Wege aufgezeigt, wie die Performance der eingesetzten Anwendung wieder gesteigert werden kann.
Der Programmierer demonstrierte auf einer bereitgestellten Testumgebung das derzeitige Verhalten der Anwendung. Die Testumgebung erfolgte auf einem PC, der sowohl die Anwendung als auch dieselbe Datenbank des Bestandssystems enthielt. Dadurch konnten Netzwerkprobleme ausgeschlossen werden.

Bei der Verwendung der SQLBase 11.5 lief die Datenanzeige in der Anwendung bereits relativ träge, was beim Einsatz der SQLBase 12.0 allerdings zu Programmabstürzen führte. Die Ursache dafür konnte der Kunde bereits im Vorfeld analysieren. Durch das Entfernen einer optionalen Einstellung zur farblichen Darstellung der Werte innerhalb der Anwendung, konnte die Performance der Datenanzeige wesentlich gesteigert werden. Seit dieser Umstellung scheint die Anwendung nun auch mit der SQLBase 12.0 stabil performant zu arbeiten.

Ein weiteres großes Defizit der Applikation bezog sich auf die Multi-User-Fähigkeit. Da im Unternehmen ca. 30 Arbeitsplätze auf die Anwendung zugreifen, kommt es immer wieder zu gegenseitigen Behinderungen und unnötigen Wartezeiten aufgrund konkurrierender Datenzugriffe.

Der Programmierer des Softwarehauses gewährte den Zugang zum anwendungsspezifischen Sourcecode, wodurch analysiert werden konnte, welches Problem bei der optionalen Einstellung der Farbanzeige vorliegt. Auch die Konfiguration der Multi-User-Fähigkeit innerhalb der Anwendung konnte dank dem bereitgestellten Code untersucht werden.

Zur Analyse der Datenbankbelastung wurde ein systembasiertes AUDIT durchgeführt und entsprechend ausgewertet. SQL-Statements, welche die Datenbank extrem belasteten, sollten hierbei ausfindig gemacht werden. Auch welche konkurrierenden Operationen auf der Datenbank aktiv waren bzw. welche gesetzten Sperren zu erheblichen Wartezeiten für andere Anwender führten, sollte nun aufgedeckt werden.

Folgende Anpassungen am Sourcecode wurden nach der Analyse empfohlen:
Wurden Daten aus der Datenbank ermittelt und mittels SalTblPopulate in einer Tabelle angezeigt, wurde zu diesem Zeitpunkt der Inhalt der Tabelle mehrfach durchlaufen, um z.B. die Farbsetzung mittels VisTblSetRowColor zu gewährleisten. Dieser Vorgang führte daher zu einem massiven Zeitaufwand und sollte demnach vermieden werden. Ein tabellarischer Durchlauf, welcher zeilenweise und sofort geschieht, sollte hierzu durch Auswertung der Message SAM_FetchRowDone die Lösung darstellen.

Der Abbruch der Datenbankverbindung im Lagerbereich war darauf zurückzuführen, dass diese über globale SQL Handles gehalten wurden. Nach Abbruch einer Datenbankverbindung, musste die Anwendung neu gestartet werden. Um dies zu unterbinden, sollte eine Datenbankverbindung lediglich aufgebaut werden, wenn diese auch zwingend erforderlich ist.

Fehlendes Transaktionsmanagement führte zu Dateninkonsistenzen. Dies lag an der damaligen Umsetzung, dass für jede Datenbankoperation eigene Datenbankverbindungen aufgebaut und wieder geschlossen wurden. Dies führte zu längeren Ausführzeiten der Funktionalität und machte es unmöglich, dabei eine Transaktion zu erstellen.
Um konkurrierende Datenbankzugriffe zu minimieren, sollte für reine Datenholungen wie bei Listen, Berichten oder Auswertungen stets der Isolationlevel RO (Read Only) verwendet werden.

Es war vollbracht.
In ausgesprochen effizienter Zusammenarbeit konnten alle Anregungen umgesetzt werden. Unser Kunde kann sich nun auf die Performance der SQLBase 12 verlassen.
Mit diesem äußerst positiven Ergebnis hat das Softwarehaus MD Consulting nun mit dem Support für die SQLBase beauftragt.

Haben auch Sie Probleme mit Ihrer Software?
MD Consulting bietet Ihnen sehr gerne alle Dienstleistungen eines Softwarehauses an. Dabei übernehmen wir die Entwicklung neuer, individueller Fachanwendungen als auch die Wartung und Pflege von bereits bestehenden Anwendungen.

Client/Server-Projekt

Consulting
1 Manntag

Technologie:
Gupta Team Developer 6.2
Gupta SQLBase 12.0

28. August 2018