Performance Problem

Forum für neue Firebird-Anwender.

Moderator: thorben.braun

bfuerchau
Beiträge: 276
Registriert: Mo 7. Mai 2018, 18:09

Alles nur Rätselraten. Da du nun kein Spezialist in Sachen DB-Analyse bist, kannst du die SQL's aus MON$STATEMENTS wohl nicht extrahieren um diese dann mal auf benötigte Indizes zu analysieren.
Die Auslastung von max. 9% deutet wohl auch darauf hin, dass zu zwar mehrere CPU's hast, aber die DB nur 1 CPU benutzt. Dies heißt für mich, dass die Anwendung keine parallelen Queries unterstützt und ggf. alles durch 1 Service leitet.
Bei 2.5 Superserver war das ggf. noch OK da dann nur 1 CPU je DB benutzt wurde, aber bei einem Classic-Server (den ich nur noch benutze) können eben sehr viele Abfragen gut parallelisiert werden. Ab 3.0 gibts die Unterscheidung nicht mehr.

Aber wie gesagt, lass man einen Firebird-DB-Spezialisten dran. Der kostet sicherlich Geld, aber bringt dir u.U. die nötige Hilfe.
lullifatz
Beiträge: 15
Registriert: Fr 31. Jul 2020, 21:54

@vr2
Es sind noch zu viele Unbekannte. Lass uns die mal schrittweise auflösen.

- Du sagst, nur vereinzelte Arbeitssschritte sind verzögert. Welche sind das? Am liebsten den einfachsten davon, bei dem das Problem auftritt.
- Hast Du nur bei diesen bestimmten Aktionen die Performanceprobleme und bei anderen nicht? Wenn ja, bei welcher Aktion nicht? Wieder am liebsten die einfachste.
- Wenn Du testest - konzentrierst Du Dich bei den Tests auf eine immer gleiche Aktion, die mal schnell, mal langsam läuft, und wiederholst die, sozusagen als benchmark? Denn sonst wird es komplexer und uU schwieriger zu deuten.
- wie viele Artikel sind im System, wieviele Aufträge? Nur Größenordnung, also zb 5K Artikel, 100K Aufträge
Ganz besonder schlecht läuft das Verbuchen von OP. Zum Buchen eines einzelnen Zahlungseingangs braucht es ca. 6 Sekunden.
Das Aufrufen der Bestellung und Aufträgen funktioniert gut.
Ja, ich beobachte immer die gleichen Aktionen. Ich arbeite damit und muss auch immer die gleichen Arbeitsabläufe machen. Daher fällt mir schon gut auf, was läuft und was nicht.
Artikel sind es so ca. 15K und Kunden ziemlich genau 180K. Auftrage sind es 300K

Gruß Matthias
bfuerchau
Beiträge: 276
Registriert: Mo 7. Mai 2018, 18:09

Ohne Tabellenstrukturen und SQL's ist man da aufgeschmissen.
Wieviele SQL's laufen tatsächlich während des Buchens?
Was von den 6 Sekunden hat mit der DB überhaupt nichts zu tun?
lullifatz
Beiträge: 15
Registriert: Fr 31. Jul 2020, 21:54

Diese Fragen kann ich leider nicht beantworten.
lullifatz
Beiträge: 15
Registriert: Fr 31. Jul 2020, 21:54

Ich habe jetzt einfach mald die Firewall für private Netzwerke auf dem Server und der Arbeitsstation ausgeschaltet. Damit ist eine erhebliche Verbesserung zu merken.
Die Buchung eines OP dauert zwar immernoch lange aber der Rest läuft erheblich schneller.
Kann man diesen Teil vielleicht besonders konfigurieren?
lullifatz
Beiträge: 15
Registriert: Fr 31. Jul 2020, 21:54

Ich arbeite damit und muss auch immer die gleichen Arbeitsabläufe machen. Daher fällt mir schon gut auf, was läuft und was nicht.
Habe ich mich da etwas blöd ausgedrückt? Ich meinte nur, dass ich genau merke, ob es Unterschiede gibt. Das war blöd formuliert und hört sich komisch an, wenn man es liest.

Sorry, war nicht so gemeint.
vr2
Beiträge: 102
Registriert: Fr 13. Apr 2018, 00:13

lullifatz hat geschrieben: Do 25. Feb 2021, 20:36 Ich habe jetzt einfach mald die Firewall für private Netzwerke auf dem Server und der Arbeitsstation ausgeschaltet. Damit ist eine erhebliche Verbesserung zu merken.
Die Buchung eines OP dauert zwar immernoch lange aber der Rest läuft erheblich schneller.
Kann man diesen Teil vielleicht besonders konfigurieren?
Das ist doch eine Fährte. Die Firewall muss nichts begutachten, was die Arbeitsstation mit dem Datenbankserver redet, den Port 3050 (oder falls es da nach Anwendungsname geht, dann den) kannst Du durchwinken. Da werden schon einige Datenmengen durchgehen. In die Richtung zielte auch meine ursprüngliche Frage, ob irgendwelche andere SW in der Kommunikation oder im Datentransport hängt. Selbst wenn sie die nur analysiert, braucht es in diesem Fall unnötig Zeit. Eine bestimmte DB-Aktion allerdings ist für eine normale Firewall nur Datenrauschen und transparent, das kannst Du dort nicht besonders konfigurieren.

Du sagst, OP dauert immer noch lange. Kürzer als vorher, nach der Firewallabschaltung? Wenn ja, wie lange dauert es dann?
OP ist einigermaßen rechenaufwändig, da mindestens die Tabellen auftrag, offpos und umsatz durchgegraben werden und dabei Bezüge erst hergestellt werden. Und evtl werden dabei viele Daten zum Client transportiert, um einen Teil der Berechnung da zu machen. Das müsstest Du sehen, wenn Du auf dem Server und dem Client mal im Task Manager beobachtest, was der jeweilige Rechner zu tun hat. Wer die Last hat. Viel CPU, viel Netzwerk, Action auf der Platte, sowas.
Wie viele Sätze habt ihr in den Tabellen offpos und umsatz?

Und nein, hab ich nicht so empfunden, dass Du Dich komisch ausgedrückt hättest.

Grüße Volker
Antworten