|
| Hallo Zusammen,
vorab vielen Dank für die vielen hilfreichen
Tipps und Tricks die mir diese Seiten schon geliefert haben.
Jetzt zu meinem Perfromance-Problem zu dem es auch schon viele Tipps und Tricks gibt, die ich auch
alle beherzigt habe (hoffe ich doch).
Bei meiner Applikation handelt es sich um ein ACC97 Frontend mit ca. 16 MDEs und einem Backend mit
13 Datenbanken.
Beim Starten der Applikation werden die Einbindungen geprüft und alle Backenddatenbanken mit OpenDatabase geöffnet und bleiben auch offen. Dadurch können dann die Recordsets der Backenddatenbank schneller geöffnet werden.
Wenn ein Benutzer die Applikation startet und und arbeitet, dann läuft alles wie "geschmiert". Beim zweiten Benutzer wird es dann merklich langsamer. Speziell eine Stelle habe ich genauer unter die Lupe genommen.
An dieser Stelle werden Datensätze dupliziert (Übernahme von Auftragspositionen). Der Vorgang läuft über zwei Recordsets auf die gleiche Tabelle. Wobei der eine Recordset mit OpenTable wegen Seek-Zugriff aber readonly und der Zielrecordset als Dynaset geöffent wird. Das Anlegen erfolgt dann über AddNew und Update (pessim. Lock).
Der Flaschenhals liegt bei zwei oder mehr Benutzern beim Update.
Die Testsatenbank enthält ca. 150000 Datensätze und ca. 16 Indizes!
Wenn ich den gleichen Test auf eine Datenbank mit nur 1000 Datensätzen durchführe, merke ich kaum, dass ein zweiter Benutzer auch in der Applikation arbeitet.
Woran könnte es liegen, dass ein Benutzer alleine mit den vielen Datensätzen klar kommt und sobald ein zweiter Benutzer angemeldet ist kommt es zu massiven Verzögerungen.
Hat jemand einen Tipp?
Vielen Dank und Gruß Woally
| |
|