Hi @ll
Wir sind momentan dabei unsere 8 Jahre alte
Paradox gegen eine FireBird Datenbank auszutauschen, was so im Großen und Ganzen auch funktioniert, jedoch ist teilweise der Zugriff einfach zu langsam - obwohl unsere Rechner schon sehr schnell sind. Wenn ich an die Konfiguration der Kundenrechner denke und dann die Geschwindigkeiten von Firebird beim öffnen sehe, wird mir anders, zumal ich dann schon die Beschwerden kommen sehe.
Mit Programmstart öffnen wir 3 Datenbanken, was beim ersten Start mit unter bis zu >50 Sekunden dauert. Das ist mir persönlich viel zu lang, deshalb meine Frage, woran es liegen könnte.
Um eine mögliche Ursache für dieses Zeitproblem zu finden, habe ich einfach mal ein paar Daten gesammelt.
Ich habe die Datenbank1DB.GDB einfach mal im
IB Manager geöffnet und habe gute 25 Sekunden gewartet, bis ich einen Zugriff auf diese hatte.
- Datenbank1DB.GDB ist knapp 60MB groß und umfasst 55 Tabellen, 1 Procedure, 15 Trigger und 12 Generatoren.
- Datenbank2DB.GDB ist knapp 22MB groß und umfasst 55 Tabellen - Zeitdauer zum öffnen ca. 8 Sekunden.
- Datenbank1DB.GDB ist knapp 43MB groß und umfasst 8 Tabellen - Zeitdauer zum öffnen ca. 6 Sekunden.
Wenn ich zuerst die Datenbank1DB.GDB mit dem
IB Manager öffne, geht das öffnen er anderen Tabellen schneller (siehe Zeitangaben), öffne ich aber erst eine der anderen DatenbankXDB’s, dann dauern diese etwas länger. Sobald das erste Mal alle Datenbanken geöffnet worden sind, ist der Zugriff danach rasend schnell (<2 Skunden). Okay, das ist klar, weil diese ja schon einmal geöffnet worden sind. In den o.g. Datenbanken befinden sich „nur“ Testdaten, wenn aber wir die mit den lebendigen Daten füllen, dann sind sie um einiges größer.
Das „langsame“ Verhalten ist immer nach einem Rechnerneustart oder wenn ich den Rechner durchlaufen lasse am nächsten Tag spür- und messbar.
Wenn wir in unserem Programm, beim verlassen eines Dialoges ein „commit“ absetzen, vergehen ca. 3 -5 Sekunden, bevor man weiterarbeiten kann. Selbst wenn ich nur den Datensatz bearbeiten will, dieses aber nicht tue und mit abbrechen den Dialog verlasse. Deshalb haben wir es schon so gemacht, das wir erst nach jedem 10 Dialogaufruf ein „commit“ absetzen, ansonsten nur mit „commitretaining“ arbeiten– das warten danach ist genauso lange.
Teilweise sind einzelne Aufrufe per
SQL innerhalb unseres Programme’s noch etwas träge, aber da kommen wir Stück für Stück weiter und können es beschleunigen.
Damit Ihr einen groben Einblick in die FireBird
DB-Konfiguration bekommt, habe ich 3 Dateien angefügt, die vielleicht helfen können. Sollten weitere Informationen notwendig sein, dann bitte einfach kurz Bescheid sagen.
Ich hoffe dass jemand von Euch eine Idee hat, wo bei uns noch der Fehler liegt – oder soll das so normal sein?!
Da ich selber nicht der Programmierer bin, entschuldigt bitte meine (vielleicht) laienhaften Ausführungen.
Gruß
René