Search the FirstSpirit Knowledge Base
Hallo Community.
Wir sind gerade mit einer Servermigration beschäftigt, von sich sowohl der Kunde als auch wir einen signifikanten Performance-Schub versprechen.
Es handelt sich hierbei (noch) um eine FirstSpirit Version 4.1.
Altes System: 2x 4core Opteron mit ins. 16GB Ram, RAID5 Array, FirstSpirit und PostgreSQL-DBMS auf dieser Maschine
neues System: 16cores mit 64GB Ram für das CMS, RAID 60 Array, PostgreSQL-DBMS auf separater Maschine mit 8GB DB-Cache.
Nach einer ersten Testmigration des gesamten Konstrukts trat bei den ersten Gehversuchen im neuen System große Ernüchterung ein, denn die Ladezeiten von diversen Formularen hatten sich maximal um 30% verbessert.
Konkret geht es um den Aufbau bzw. das Einlesen von Datenquellen-Übersichten und einzelnen Datensätzen daraus in die Erfassungsmaske. Es handelt sich um ein sehr komplexes DB-Schema mit vielen Verzweigungen und teils auch aus diesen Fremdschlüsselbeziehnungen konkatinierten Anzeigefeldern (bspw. in Selektboxen).
Wir haben uns die für den Aufbau laufenden Queries per Loglevel=TRACE angesehen und diese auf dem DBMS laufen lassen, hier ist keinerlei Performance zu gewinnen (Laufzeiten von 0,25 bis max. 3ms).
Was uns aber sehr verwunderte, war die schiere Anzahl an notwendigen Queries, die vom System erzeugt werden, um letztendlich die Formulare zu befüllen.
Speziell das Einlesen von Selektboxlisten, die wir im Testfall extra auf die Ausgabe der FS_ID umgestellt hatten, verursachte bis zu 10 Queries, obwohl diese Liste sicherlich auch einfach mit einem großen Query abgehandelt werden könnte. Es wurden hier ca. 200 Ansprechpartner eingelesen. Dieses Verhalten war an diversen Stellen zu beobachten.
Da wir die Roundtrip-Zeiten dieser Requests nicht positiv beeinflussen können, und es sich im konkreten Fall um ein weltweit eingesetztes System handelt, benötigen wir hier eine Lösung. Wenn bei jedem Öffnen einer Datenquelle einige Dutzend Queries übers Netz müssen, addiert sich so die Gesamtladezeit a.g. der Latenzen schnell in nicht akzeptable Regionen von >30sec. .
Nun die Fragen:
- Lässt sich die Datenbankabstraktion dazu zwingen, größere Datenmengen in einem Rutsch zu übertragen?
- Ist dieses Problem bekannt?
Um die Ladezeiten zu verbessern, werden wir zunächst versuchen, die Darstellung i.d. Formularen ggf. auf Ladezeiten hin zu optimieren bzw. Konkatinierungen direkt auf der Datenbank vorzubereiten.
Wir wären für jeden weiteren Tipp dankbar.
MfG
Hagen Jäger
Hallo Hagen,
es gibt keine Einstellmöglichkeit, die dazu führt, dass größere Datenmengen in einem Rutsch übertragen werden. Ich empfehle dir dich mit dem Problem an unseren Helpdesk zu wenden.
Grüße
Jan
Hallo, wir hatten das Problem vor einiger Zeit auch schon an das HelpDesk gemeldet. Interne ID 149453.
Dieses Thema wurde bereits im September 2013 im helpdesk gemeldet.
Bisherige Anpassungen, die durchgeführt wurden:
-Reduktion der Spalten, die i.d. Übersicht angezeigt werden (wurde bereits VOR diesem Post gemacht)
-Reduktion der anzuzeigenden Sprachen (dies hat KEINEN messbaren Effekt auf die Query-Performance)
-Ablösung von FS-Clientseitigen String-Konkatinationen für die Anzeige durch DB-Trigger-Funktionen (dies hatte in spez. Fällen einen großen Effekt, ist aber auch recht aufwändig)
Im aktuellen Zustand ist die Performance nach wie vor sehr unbefriedigend, vor allem für den Kunden.
Die Projekte werden in 30 Sprachen gepflegt und die Komplexität der Datenbank-Schemata ist sicherlich nicht mit Mithras Energy vergleichbar. Bei Bedarf können wir sicherlich einen Export für Testzwecke zur Verfügung stellen.