Wenn Sie mit einer in Frontend- und Backenddatenbank aufgeteilten Anwendung arbeiten, kann es sein, dass die Performance bei verschiedenen Operationen schlecht ist – zum Beispiel beim öffnen von Formularen, die an die Tabellen im Backend gebunden sind. Um dies zu ändern, gibt es einen Trick. Welcher Trick das ist, erläutern wir in diesem Artikel.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in den Datenbanken 1904_Frontend.accdb und 1904_Backend.accdb.
Performancefresser
Wenn Sie eine in Frontend- und Backenddatenbank aufgeteilte Anwendung nutzen, befinden sich die Tabellen der Anwendung im Backend und die Abfragen, Formulare, Berichte und so weiter im Frontend.
Das Frontend greift auf die Tabellen im Backend über Verknüpfungen zu, die im Prinzip wie lokale Tabellen verwendet werden können.
Der erste wichtige Unterschied zwischen lokalen Tabellen (also Tabellen, die direkt im Frontend gespeichert sind – zum Beispiel, wenn kein Backend vorhanden ist) und der Verwendung von verknüpften Tabellen ist folgender: Eine Datenbank legt immer, wenn Sie geöffnet wird, eine .ldb– oder .laccdb-Datei an. Das geschieht bei der Datenbank, die ihre Tabelle lokal speichert, einmal beim öffnen der Datenbank und beim Schließen der Datenbank verschwindet die Datei wieder.
Wenn eine Frontend-Datenbank über die Verknüpfung auf eine Backend-Datenbank zugreift, wird zusätzlich eine .ldb– oder .laccdb-Datei geöffnet. Diese wird gleich wieder geschlossen, wenn der Benutzer das Objekt in der Frontenddatenbank schließt, das mit der Tabelle im Backend verknüpft ist.
Welche Aufgabe erledigt diese .ldb– oder .laccdb-Datei aber nun Wenn wir die Datei öffnen, finden wir darin eine Liste von Einträgen mit dem folgenden Format:
[Rechnername] [Benutzername]
Für jeden Benutzer mit einer aktuell geöffneten Verknüpfung auf die Backend-Datenbank wird ein Eintrag in dieser Datei angelegt.
Wenn nun mehrere Benutzer immer wieder Verknüpfungen zu den Tabellen öffnen und wieder schließen, erfolgen ständig Zugriffe auf die .ldb– beziehungsweise .laccdb-Datei.
Schnellerer Zugriff mit bestehender Verbindung
Der Zugriff auf die Daten einer Backenddatenbank sollte schneller erfolgen, wenn es bereits eine Verbindung zum Backend gibt, also wenn das Frontend bereits über eine Verknüpfung auf eine Tabelle im Backend zugreift. Wenn der Benutzer also ein Formular geöffnet hat und dann ein weiteres Formular öffnet, das Daten aus dem Backend anzeigt, sollte das öffnen an dieser Stelle schneller erfolgen, als wenn es das erste Formular wäre, das geöffnet wird und eine Verbindung zum Backend herstellt.
Verbindung offenhalten
Nun könnte man dem Benutzer empfehlen, immer ein Formular offen zu halten, damit die anderen Formulare schneller geöffnet werden können. Aber so arbeiten wir nicht – eine solche Lösung sollte ohne Einbindung des Benutzers funktionieren. Außerdem kann es immer sein, dass der Benutzer dennoch alle Formulare der Anwendung schließt – und dann verzögert sich der Start des nächsten Formulars doch wieder.
Wie können wir aber eine Verbindung zum Backend offenhalten, wenn wir kein Formular dazu benutzen können Eine Tabellenverknüpfung geöffnet halten Eine Abfrage Aber halt: Wir haben ja nicht gesagt, dass wir kein Formular für die Erledigung dieser Aufgabe verwenden wollen.
Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein: