Verbesserung der Performance
Team-Moeller.de - Datenbankentwicklung und mehr ...

Verbesserung der Performance

Verbesserung der Performance

Was nützt die schönste Anwendung, wenn sie zu langsam läuft. Bereits mit einfachen Mitteln kann man teilweise erstaunliche Verbesserungen erzielen. Und auch zum "Feintuning" gibt es eine Vielzahl von Hinweisen.

 

Eine der einfachsten und zugleich auch wirkungsvollsten Maßnahmen zur Verbesserung der Performance, die ich kennen gelernt habe, ist das Ausschalten der Objektnamen-Autokorrektur.

So gehen Sie vor:

  • Öffnen Sie die Datenbank
  • Wählen Sie EXTRAS / OPTIONEN / ALLGEMEIN
  • Deaktivieren Sie das Feld "Informationen aufzeichnen"
  • Klicken Sie auf "Übernehmen" und auf "OK"

Wann bringt diese Maßnahme die größte Wirkung?

Wenn Sie Access 2000 in einem Netzwerk einsetzen und die Anwendung in FrontEnd und BackEnd aufgeteilt ist, sind erstaunlich Verbesserungen zu beobachten.

Praktische Erfahrung:

In einem Netzwerk unter Windows NT 4 SP6a lief eine Access-Datenbank. Diese war aufgeteilt in FrontEnd und BackEnd. Das FrontEnd wurde jedem User lokal kopiert, das BackEnd lag auf dem Server. Das Öffnen eines Formulars dauert ca. 1:20 Minuten.
Das Formular beinhaltete neben vielen anderen Steuerelementen drei von einander abhängige Kombinationsfelder, ein Registersteuerelement mit drei Unterformularen sowie weiteren Kombinationsfeldern.
Alle Maßnahmen zur Verbesserung der Performance (Late Binding der Unterformulare und der Kombinationsfelder) brachten keine spürbare Verbesserung.
Nachdem ich auf die Idee gekommen war, die Objektnamen-Autokorrektur auszuschalten, dauerte das Laden dieses Formulars nur noch knapp drei Sekunden.
Seitdem schalte ich zu Beginn jeden neuen Datenbankprojekts als erstes die Objektnamen-Autokorrektur aus.

Zurück zur Übersicht
 

Seit der Version Access 2000 gibt es in den Tabellen von Access eine neue Eigenschaft, den "Unterdatenblattnamen".

Diese Eigenschaft ist dafür verantwortlich, dass Sie in der Tabellenansicht vor einem Datensatz ein Pluszeichen finden. Wenn sich auf dieses Pluszeichen klicken wird eine Untertabelle mit Datensätze, die mit diesem Datensatz in Beziehung stehen, angezeigt.

Woher weiß Access nun, welche Datensätze in einem solchen Fall anzuzeigen sind? Genau dafür ist die Eigenschaft "Unterdatenblattname" da. In dieser Eigenschaft kann der Name der Tabelle, deren Daten angezeigt werden, festgelegt werden.

Das Problem:

Das Problem besteht darin, dass Access als Standardwert für diese Eigenschaft den Wert "Automatisch" einträgt. Dies führt dazu, dass Access selbst analysiert welche Tabelle die größte Beziehung zu dieser Tabelle hat. Diese Analyse kostet Zeit und somit Performance.
Da in einer fertigen Anwendung jedoch niemand direkt in den Tabellen arbeitet, wird hier Performance für eine Maßnahme verwendet, die gar nicht benötigt wird.

Die Lösung:

Die Lösung besteht darin, in allen Tabellen im BackEnd die Eigenschaft "Unterdatenblattname" vom voreingestellten Wert "Automatisch" auf den Wert "Keines" zu ändern.
Diese Arbeit können Sie von Hand erledigen - oder Sie verwenden dazu ein AddIn, dass ich extra zu diesem Zweck geschrieben habe.

Hier geht's zum AddIn: TM-TablePerfomance

Zurück zur Übersicht
 

Wenn Sie mit einer Datenbank arbeiten, die Sie in FrontEnd und BackEnd aufgeteilt haben und Sie als Betriebssystem Windows 2000 oder Windows XP Prof. verwenden, kann es sein, dass die Leistung der Datenbank spürbar nachlässt.

Was ist die Ursache?

Der Grund liegt darin, dass der Name oder der Pfad der BackEnd-Datenbank nicht der 8.3-Namneskonvention entspricht.

Mögliche Lösungen:

  • Sorgen Sie dafür, dass der Pfad und der Name der BackEnd-Datenbank den 8.3- Namenskonventionen entsprechen.
    Benennen Sie Pfadelemente, die länger als 8 Zeichen sind, so um, das sie maximal 8 Zeichen lang sind.
    Ändern Sie den Namen der BackEnd-Datenbank so, dass er maximal 8 Zeichen lang ist und keine Leerzeichen enthält.
  • Eine andere Alternative besteht darin, bei den eingebundenen Tabellen kurze Pfadnamen zu verwenden. Hierzu können Sie den ursprünglichen Pfad mit der Funktion GetShortPathName entsprechend umwandeln.

Link:

Eine Beschreibung dieses Problems und den Code für die zweite Lösungsmöglichekeit finden Sie in der Knowledge Base im Artikel 891176.

Zurück zur Übersicht

 

 

Auf den auch sonst guten Seiten von granite.ab findet sich die "Microsoft Access Performance FAQ".

Darin sind die wichtigsten Maßnahmen zur Verbesserung der Perfomance genannt und auch mit einem Beispiel erläutert. Außerdem gibt es Hintergrundinformationen und Hinweise auf die entsprechenden Artikel der Knowledgebase.

Die Maßnahmen sind speziell für Access 2000 geschrieben. Sie gelten jedoch auch für die anderen Versionen.

Den Artikel gibt es hier: http://www.granite.ab.ca/access/performancefaq.htm

Zurück zur Übersicht
 

Von FMS Inc. findet sich ein Artikel zum Thema "Making Access Faster".

Darin sind insgesamt 168 (!!!) Tipps enthalten um eine Access Applikation zu beschleunigen.

Viele Tipps sind speziell für Access 97 geschrieben. Sie gelten jedoch auch für die folgenden Versionen.

Den Artikel gibt es hier: http://www.fmsinc.com/tpapers/faster/

Zurück zur Übersicht
 

Optimieren der Netzwerkleistung von Office Access und der Jet-Datenbank-Engine

Zurück zur Übersicht

Microsoft MVP - Thomas Möller


27.03.2016:
TM VBA-Inspector:
Installationsroutine überarbeitet.


23.05.2014:
TM-RebuildDatabase
Version 1.75 bereitgestellt.


07.12.2014:
TM-DatenKlassenGenerator
Version 3.55 bereitgestellt.


21.11.2014:
TM-SmartTypes
Version 2.37.18 bereitgestellt.


Powered by CMSimple - Template by CMSimple-Styles.com - Autor:Thomas Möller