Performance Probleme Evident Arztsoftware

Themen rund um den praktischen Einsatz von Firebird. Fragen zu SQL, Performance, Datenbankstrukturen, etc.

Moderator: thorben.braun

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

Nun ja, was die FB2.5 angeht so ist im Multiuser-Betrieb die Classic-Installation empfehlenswert!

Die FB2.5 im Superclassic behandelt alle Connections einer Datenbank in nur genau einem Thread!!!
Multithreading wird nur bei mehreren DB's verwendet. Eine Parallelisierung von Datenzugriffen innerhalb einer DB ist da leider nicht möglich.

Bei 2.5 ist also eine Classic-Installation erforderlich, wenn man performant arbeiten will. Bei Classic wird jeder Connection ein eigener Prozess zugeordnet.
So wie ich klassische Anwendungen kenne, bleibt eine Verbindung nach dem Start immer offen, so dass mehrere Prozesse kein Problem werden, da die Anzahl i.d.R. konstant bleibt.

Man muss u.U. halt den Cache je Prozess begrenzen (config-datei).

Deshalb besser 3.0ff, da gibts den Superclassic nicht mehr. Je Verbindung wird ein eigener Thread gestartet. Parallelverarbeitung ist möglich.


Zu der Performance lässt sich nicht viel sagen, da man die DB-Zugriffe nicht kennt.
In der klassischen Programmierung wird nämlich gerne vergessen, dass Indizes für wachsende Tabellen erforderlich werden.
Dies wird von Entwicklern gerne vergessen, da bei kleinen Datenbeständen ein Index selten was bringt, da die ganze DB ja im Cache liegen kann.

Für die Analyse müsste man halt per Trace die SQL's aufzeichnen wie und was so abgefragt wird um daraus resultierende Indizes zu erstellen.
Schlecht generierte SQL's kann man aber generell nicht beschleunigen, da man das in der Anwednung selber machen muss.
FloHami
Beiträge: 7
Registriert: Mi 25. Mai 2022, 09:31

vr2 hat geschrieben: Mo 30. Mai 2022, 19:13 Hallo Flo,

den crystaldiskmark stell bitte noch in der Einheit MB/sek oder GB/sek rein, mit den IOPs ist es schwer in Beziehung zur Anzeige im task manager zu bringen.

upgrade auf 259: eigentlich sehr einfach, Du installierst Firebird 2.5.9 neben den 2.5.8er, über "manuelle Installation". Dazu brauchst Du das entsprechende zip von der Firebirdseite und packst es in ein Nachbarverzeichnis des 258ers aus, zb genannt Firebird_2_5_9. Dann kopierst Du vom 258er die aliases.conf, firebird.conf und security2.fdb an die entsprechende Stelle des 259ers. Falls der 258 irgendwelche udfs hatte, die aus dem gleichnamigen Unterverzeichnis auch. Falls der 258 als Dienst registriert ist, den erst stoppen.

Jetzt die Verzeichnisse durrch Unbenennen vertauschen - das alte wie bisher_ alt, das neue, so wie das alte vorher hieß. Dann Firebird wieder starten.

Jetzt sollte die Anwendung mit dem 259er laufen.

15 sek Startzeit ist immer noch zu viel, besonders für so eine kleine Datenmenge, da stimmt noch mehr nicht. Lass mal beim Öffnen task manager mitlaufen und schreib, was auf der Platte und CPU los ist.

Grüße, Volker
Hallo Volker,
Vorerst entschuldige das ich mich solange nicht gemeldet habe.
Musste mich mit ein wenig Urlaub etwas erholen :D

Das Bild habe ich angehangen mit MB/sek.

Das Problem was ich habe ist das beim installieren von Evident wird kein richtiges Firebird installiert.
Also unter Programme und Features gibt es kein Firebird.
Das ist eine Sache die mich sehr verwundert.

Hast du für mich eine empfehlung mit welchem Programm ich das Aufzeichnen soll?
Die Windows eigenen Programme finde ich nicht grade übersichtlich.

Gruß Flo
Dateianhänge
Diskmark Evident ESXI mbs.png
Diskmark Evident ESXI mbs.png (111.19 KiB) 272 mal betrachtet
FloHami
Beiträge: 7
Registriert: Mi 25. Mai 2022, 09:31

bfuerchau hat geschrieben: Di 31. Mai 2022, 19:10 Nun ja, was die FB2.5 angeht so ist im Multiuser-Betrieb die Classic-Installation empfehlenswert!

Die FB2.5 im Superclassic behandelt alle Connections einer Datenbank in nur genau einem Thread!!!
Multithreading wird nur bei mehreren DB's verwendet. Eine Parallelisierung von Datenzugriffen innerhalb einer DB ist da leider nicht möglich.

Bei 2.5 ist also eine Classic-Installation erforderlich, wenn man performant arbeiten will. Bei Classic wird jeder Connection ein eigener Prozess zugeordnet.
So wie ich klassische Anwendungen kenne, bleibt eine Verbindung nach dem Start immer offen, so dass mehrere Prozesse kein Problem werden, da die Anzahl i.d.R. konstant bleibt.

Man muss u.U. halt den Cache je Prozess begrenzen (config-datei).

Deshalb besser 3.0ff, da gibts den Superclassic nicht mehr. Je Verbindung wird ein eigener Thread gestartet. Parallelverarbeitung ist möglich.


Zu der Performance lässt sich nicht viel sagen, da man die DB-Zugriffe nicht kennt.
In der klassischen Programmierung wird nämlich gerne vergessen, dass Indizes für wachsende Tabellen erforderlich werden.
Dies wird von Entwicklern gerne vergessen, da bei kleinen Datenbeständen ein Index selten was bringt, da die ganze DB ja im Cache liegen kann.

Für die Analyse müsste man halt per Trace die SQL's aufzeichnen wie und was so abgefragt wird um daraus resultierende Indizes zu erstellen.
Schlecht generierte SQL's kann man aber generell nicht beschleunigen, da man das in der Anwednung selber machen muss.
Ich würde gerne auf den Classic-Modus umstellen, leider gab es immer noch keine Rückmeldung seitens der Software-Firma.

Gibt es eine Methode das ich dies selbst durchführen kann ohne die Hilfe der Software-Firma?

Laut Aussage der Software-Firma liegt es natürlich nicht an der Programmierung der Software.

Ich wäre auch bereit eine Umstellung auf FB 3 durchzuführen aber dann gibt es leider keinen Support der Software-Firma mehr und deswegen möchte das der Kunde nicht.
Benutzeravatar
martin.koeditz
Beiträge: 348
Registriert: Sa 31. Mär 2018, 14:35

Der Servermodus wird in Windows während der Installation festgelegt. Auszug aus der Dokumentation:

Code: Alles auswählen

Für Windows gibt es ein kombiniertes Installationspaket; Sie wählen die Architektur (Superserver oder Classic) auf einem der ersten Bildschirme. Wenn Sie Classic wählen, können Sie den SuperClassic-Modus ein paar Bildschirme später aktivieren.
Also die Installation neu durchführen und korrekten Modus wählen. Das ist der ganze Trick. Denk aber an ein Backup.

Gruß
Martin
Martin Köditz
it & synergy GmbH
vr2
Beiträge: 141
Registriert: Fr 13. Apr 2018, 00:13

Hallo Flo,
FloHami hat geschrieben: Mo 20. Jun 2022, 12:21 Vorerst entschuldige das ich mich solange nicht gemeldet habe.
Musste mich mit ein wenig Urlaub etwas erholen :D

Das Bild habe ich angehangen mit MB/sek.

Das Problem was ich habe ist das beim installieren von Evident wird kein richtiges Firebird installiert.
Also unter Programme und Features gibt es kein Firebird.
Kein Thema, gibt immer mal Verzögerung bei Antworten auf Postings ;-)
crystaldiskmark sieht gut aus, daran liegt es nicht, sofern das nicht Endwerte sind, die erst nach mehreren Runden erreicht werden.

Dass es keinen Firebird unter Programme und Features gibt, kann sein, ist bei mir auch so, da ich Firebirds immer manuell installiere.

Aber irgendwo muss der Firebird sein. Du müsstest den im task manager im Register Prozesse sehen - und dort im Kontextmenu zum zugehörigen Dienst wechseln, falls Firebird als Dienst läuft. Dann kannst Du in der Diensteansicht unter Kontextmenu/Eigenschaften des Firebird-Dienstes den Installationsort sehen, normalerweise C:\Programme\Firebird_<version> oder C:\Programme (x86)\Firebird_<version>, wenn es noch ein 32-Bit Firebird ist. Evtl ist da noch ein Verzeichnis dazwischen, also C:\Programme\Firebird\Firebird_<version>.

Oder sie haben den Firebird in der Cloud. Das siehst Du evtl, wenn Du im task manager beim Starten der Anwendung auf den Netzwerkdurchsatz schaust.

Grüße, Volker
bfuerchau
Beiträge: 349
Registriert: Mo 7. Mai 2018, 18:09

Ich denke eher, dass die FB hier als Anwendung oder sogar embedded verwendet wird. Da ist ein Austausch leider nicht ohne den Hersteller möglich.
Es bleibt hier Sache des Herstellers Performanceanalysen zu betreiben.

Findest du im Taskmanager überhaupt einen fbserver.exe?
Oder hat die Anwendung einen eigenen Service mit der FB als Embedded-DB eingerichtet?
Bei Embedded gibt es keinen Classic oder Superclassic sondern die Anwendung selber ist da zuständig. Bei 2.5 gilt allerdings auch, dass im Embeddedmode keine parallelen Abfragen möglich sind.
Indexperformance ist aber allemal möglich und oft verbesserungswürdig.
Antworten