| | Produktinformationen Hilfe und Anleitungen Schulung Vorlagen Support und Feedback Technische Ressourcen Zusätzliche Ressourcen |
Verbessern der Leistung einer Access-Datenbank
Abhängig von der Konfiguration Ihres Computers und Ihrer Arbeitsumgebung können Sie verschiedene Einstellungen vornehmen, um die Leistung von Microsoft Access oder der Microsoft Access-Datenbank (Datenbank: Eine Datensammlung mit Bezug zu einem bestimmten Thema oder Zweck. In einer Datenbank sind Informationen zu einer bestimmten Entität, z. B. zu einem Mitarbeiter oder einer Bestellung, in Tabellen, Datensätzen und Feldern kategorisiert.) zu verbessern. Um die Leistung einer Access-Datenbank zu optimieren, beginnen Sie am besten mit dem Assistenten zur Leistungsanalyse. Sie können mithilfe des Assistenten zur Leistungsanalyse eine vollständige Datenbank oder bestimmte Objekte einer Datenbank analysieren. Der Assistent zur Leistungsanalyse kann außerdem einige Änderungen automatisch vornehmen, wenn Sie dies wünschen. Den Leistungsanalyse-Assistenten ausführen
Mithilfe des Assistenten zur Leistungsanalyse können Sie die Leistung einer Microsoft Access-Datenbank (Datenbank: Eine Datensammlung mit Bezug zu einem bestimmten Thema oder Zweck. In einer Datenbank sind Informationen zu einer bestimmten Entität, z. B. zu einem Mitarbeiter oder einer Bestellung, in Tabellen, Datensätzen und Feldern kategorisiert.) optimieren. Der Assistent zur Leistungsanalyse steht in einem Access-Projekt (Microsoft Access-Projekt: Eine Access-Datei, die mit einer Microsoft SQL Server-Datenbank verbunden ist und verwendet wird, um Client/Server-Anwendungen zu erstellen. Projektdateien enthalten keine Daten oder Objekte auf Datendefinitionsbasis, wie beispielsweise Tabellen oder Ansichten.) nicht zur Verfügung.
- Öffnen Sie die Access-Datenbank, die Sie optimieren möchten.
- Zeigen Sie im Menü Extras auf Analyse, und klicken Sie dann auf Leistung.
- Klicken Sie auf die Registerkarte für den Typ des Datenbankobjekts (Datenbankobjekte: Eine Access-Datenbank enthält Objekte wie Tabellen, Abfragen, Formulare, Berichte, Seiten, Makros und Module. Ein Access-Projekt enthält Objekte wie Formulare, Berichte, Seiten, Makros und Module.), das Sie optimieren möchten. Klicken Sie auf die Registerkarte Alle Objekttypen, um eine Liste aller Datenbankobjekte gleichzeitig anzuzeigen.
- Wählen Sie die Namen der zu optimierenden Datenbankobjekte aus. Klicken Sie auf Alle auswählen, um alle Datenbankobjekte der Liste auszuwählen.
- Wiederholen Sie die Schritte 3 und 4 so oft, bis Sie alle Objekte ausgewählt haben, die Sie optimieren möchten, und klicken Sie dann auf OK.
Es wird eine Liste mit drei Arten von Optimierungen angezeigt: Empfehlung, Vorschlag und Idee. Wenn Sie auf ein Element der Liste Analyseergebnisse klicken, werden Informationen zu der vorgeschlagenen Optimierung im Feld Anmerkungen zur Analyse unter der Liste angezeigt. Optimierungen der Art Vorschlag besitzen mögliche Nachteile, die Sie bedenken sollten, bevor Sie die Optimierung durchführen. Eine Beschreibung der Nachteile wird angezeigt, wenn Sie auf einen Vorschlag in der Liste klicken; lesen Sie dann die Informationen im Feld Anmerkungen zur Analyse. Access kann Optimierungen der Art Empfehlung und Vorschlag für Sie durchführen. Angegebene Ideen zur Optimierung müssen Sie selbst durchführen.
- Klicken Sie auf jede Optimierung der Art Empfehlung oder Vorschlag, die Sie ausführen möchten, und klicken Sie dann auf Optimieren. Der Assistent zur Leistungsanalyse führt daraufhin die Optimierungen durch und markiert sie dann entsprechend. Fahren Sie damit so lange fort, bis der Assistent zur Leistungsanalyse alle gewünschten Empfehlungen und Vorschläge vollständig durchgeführt hat.
Wenn Sie alle Optimierungen der Art Empfehlung oder Vorschlag ausführen möchten, klicken Sie auf Alle auswählen und dann auf Optimieren.
Wenn Sie eine Idee zur Optimierung ausführen möchten, klicken Sie auf die Optimierung, und befolgen Sie anschließend die im Feld Anmerkungen zur Analyse angezeigten Anweisungen.
Hinweis Der Assistent zur Leistungsanalyse macht keine Vorschläge dazu, wie Sie die Leistung von Microsoft Access oder des Systems, auf dem Microsoft Access ausgeführt wird, verbessern können.
Die Leistung von Microsoft Access und Ihr System verbessern
Die folgenden Richtlinien helfen Ihnen, die Leistung von Microsoft Access auf Ihrem Computer zu optimieren:
- Wenn Sie mit Datenbanken arbeiten, die nicht mit anderen Benutzern gemeinsam verwendet werden, installieren Sie Microsoft Access und alle Ihre Datenbanken auf Ihrer Festplatte anstatt auf einem Netzwerk-Server.
- Wenn außer Ihnen kein anderer Benutzer die Datenbank verwendet, können Sie diese zur exklusiven Verwendung öffnen. Klicken Sie im Dialogfeld Öffnen auf den Pfeil neben der Schaltfläche Öffnen, und aktivieren Sie Exklusiv öffnen.
- Stellen Sie mehr Speicher zur Verfügung, indem Sie alle nicht benötigten Anwendungen schließen.
- Erhöhen Sie den Arbeitsspeicher (RAM) des Computers. Empfohlen sind 40 MB Arbeitsspeicher –- 32 MB plus 8 MB Arbeitsspeicher zusätzlich für Microsoft Access.
- Verwenden Sie den RAM nicht für eine RAM-Disk.
- Löschen Sie regelmäßig unbenötigte Dateien und leeren Sie ebenfalls regelmäßig Ihren Papierkorb, komprimieren Sie Ihre Datenbanken, und defragmentieren Sie Ihre Festplatte mit dem Microsoft Windows-Defragmentierungsprogramm. Zum Starten des Windows-Defragmentierungsprogramms klicken Sie auf die Schaltfläche Start in Windows, zeigen Sie auf Programme, auf Zubehör, anschließend auf Systemprogramme, und klicken Sie schließlich auf Defragmentierung.
- In den meisten Fällen funktionieren die Standardeinstellungen von Windows für den virtuellen Arbeitsspeicher optimal. In einigen Situationen kann ein Anpassen der Parameter für den virtuellen Arbeitsspeicher die Leistung jedoch verbessern. Wenn Sie alle unbenötigten Dateien bereits gelöscht haben und dennoch über ein Speicherproblem verfügen, ändern Sie die Standardeinstellungen für den virtuellen Arbeitsspeicher in den folgenden Fällen:
- Ihnen steht wenig freier Speicherplatz auf dem Laufwerk, das aktuell für den virtuellen Arbeitsspeicher verwendet wird, zur Verfügung, Sie besitzen aber ein anderes lokales Laufwerk, auf dem genügend Speicherplatz verfügbar ist.
- Ein anderes lokales Laufwerk ist verfügbar, das schneller als das aktuelle Laufwerk ist (es sei denn, dieses Laufwerk wird stark benutzt).
In diesen Fällen erzielen Sie möglicherweise eine bessere Leistung, indem Sie ein anderes Laufwerk für den virtuellen Arbeitsspeicher angeben.
Sie können auch eine bessere Leistung erzielen, indem Sie festlegen, dass der für den virtuellen Arbeitsspeicher verfügbare Festplattenspeicher mindestens 25 MB abzüglich des verfügbaren RAMs beträgt. Wenn Ihr Computer z. B. über 12 MB RAM verfügt, richten Sie mindestens 13 MB virtuellen Arbeitsspeicher ein. Es ist möglicherweise sinnvoll, noch mehr virtuellen Arbeitsspeicher einzurichten, wenn Sie mehrere große Anwendungen ausführen.
Um die Parameter für den virtuellen Arbeitsspeicher von Windows zu ändern, doppelklicken Sie in der Systemsteuerung von Windows auf das Symbol System, und klicken Sie auf die Registerkarte Leistungsmerkmale. Klicken Sie unter Weitere Einstellungen auf die Schaltfläche Virtueller Arbeitsspeicher, und geben Sie eine andere Festplatte an, oder geben Sie einen Wert in das Feld Minimum ein, der mindestens 25 MB abzüglich des verfügbaren Arbeitsspeichers beträgt.
- Wenn Sie eine Bitmap für ein Hintergrundbild (Vollbildhintergrund) für Ihren Windows-Desktop definiert haben, ersetzen Sie dieses durch einen einfarbigen Hintergrund oder eine Muster-Bitmap, oder lassen Sie den Hintergrund ohne Bitmap.
- Wenn Sie normalerweise einen Bildschirmschoner verwenden, wählen Sie ein leeres Bild als Bildschirmschoner, oder lassen sie ihn ganz weg.
- Entfernen Sie Software zur Festplattenkomprimierung, oder verlegen Sie Ihre Datenbanken auf ein nicht komprimiertes Laufwerk.
- Um optimale Leistung sicherzustellen, sollten Sie Ersatzschriftarten nur dann verwenden, wenn Sie Ersatzschriftartunterstützung zum Anzeigen aller Daten benötigen.
Die Leistung von Tabellen verbessern
-
Verwenden Sie die Assistenten zur Leistungsanalyse, um bestimmte Tabellen in der Datenbank zu analysieren.
-
Entwerfen Sie Tabellen ohne redundante Daten. Ein durchdachter Datenbankentwurf ist Voraussetzung für schnelle Datenabrufe und -aktualisierungen. Wenn bestehende Tabellen redundante Daten enthalten, können Sie den Tabellenanalyse-Assistenten verwenden, um die Tabellen in verknüpfte Tabellen zu teilen und damit Daten effizienter zu speichern.
-
Wählen Sie den passenden Datentyp (Datentyp: Die Eigenschaft eines Felds, die bestimmt, welche Art von Daten das Feld aufnehmen kann. Als Datentypen sind Währungs- und Datumstypen sowie "Boolean", "Integer", "Long", "Single", "Double", "String" und "Variant" (Standardwert) verfügbar.) für Felder aus. Sie können in der Datenbank Platz sparen und Verknüpfungsoperationen (Verknüpfung: Eine Verbindung zwischen einem Feld in einer Tabelle oder Abfrage und einem Feld desselben Datentyps in einer anderen Tabelle oder Abfrage. Durch Verknüpfungen können Programme erkennen, auf welche Weise Daten zueinander in Beziehung stehen. Je nach Art der Verknüpfung können nicht übereinstimmende Datensätze ein- oder ausgeschlossen werden.) verbessern. Wählen Sie beim Definieren eines Feldes den kleinsten Datentyp oder die kleinste Feldgröße, die zu den Daten in dem Feld passt.
-
Erstellen Sie Indizes (Index: Ein Feature, das das Suchen und Sortieren in einer Tabelle basierend auf bestimmten Schlüsselwerten beschleunigt und die Eindeutigkeit für die Zeilen in einer Tabelle erzwingen kann. Der Primärschlüssel einer Tabelle wird automatisch indiziert. Einige Felder können aufgrund ihres Datentyps nicht indiziert werden.) für Felder, die sortiert, verknüpft oder für die Kriterien eingestellt werden. Sie erzielen wesentliche Verbesserungen der Geschwindigkeit von Abfragen, indem Sie die Felder auf beiden Seiten der Verknüpfungen indizieren, oder indem Sie eine Beziehung (Beziehung: Eine Zuordnung zwischen allgemeinen Feldern (Spalten), die in zwei Tabellen vorkommen. Eine Beziehung kann vom Typ 1:1, 1:n oder n:n sein.) zwischen den Feldern definieren und alle Felder indizieren, die zum Einstellen von Kriterien für die Abfrage verwendet werden. Das Suchen von Datensätzen mithilfe des Dialogfeldes Suchen funktioniert ebenfalls wesentlich schneller, wenn Sie in einem indizierten Feld suchen.
Indizes sind jedoch nicht in allen Fällen sinnvoll. Sie vergrößern die .mdb-Datei, beeinträchtigen in Mehrbenutzeranwendungen das Zusammenwirken (d. h. die Fähigkeit, mehreren Benutzern gleichzeitig das Modifizieren einer Seite zu erlauben) und verschlechtern die Leistung beim Aktualisieren von Daten in indizierten Feldern und beim Hinzufügen oder Löschen von Datensätzen. Es ist sinnvoll, zu experimentieren, um herauszufinden, welche Felder indiziert sein sollten. Das Hinzufügen eines Indexes beschleunigt möglicherweise eine Abfrage um eine Sekunde, verlangsamt jedoch das Hinzufügen einer Datenzeile um zwei Sekunden und verursacht Sperrungsprobleme. Es kann auch zu unwesentlichen Verbesserungen führen, je nachdem, welche anderen Felder indiziert sind. Wenn Sie z. B. einen Index zu einem Feld PLZ hinzufügen, erreichen Sie nur eine sehr geringe Leistungsverbesserung, wenn die Felder Firmenname und Nachname in der Tabelle bereits indiziert sind. Unabhängig von der Art der Abfragen, die Sie erstellen, sollten Sie nur die Felder indizieren, die im wesentlichen eindeutige Werte enthalten.
-
Verwenden Sie in einem Mehr-Felder-Index nur so viele Felder im Index, wie benötigt werden.
Die Leistung von verknüpften Tabellen verbessern
Hinweis Sie können eine Tabelle nur in einer Microsoft Access-Datenbank (Microsoft Access-Datenbank: Eine Sammlung von Daten und Objekten [beispielsweise Tabellen, Abfragen oder Formulare], die sich auf ein bestimmtes Thema oder einen bestimmten Zweck beziehen.), nicht in einem Microsoft Access-Projekt (Microsoft Access-Projekt: Eine Access-Datei, die mit einer Microsoft SQL Server-Datenbank verbunden ist und verwendet wird, um Client/Server-Anwendungen zu erstellen. Projektdateien enthalten keine Daten oder Objekte auf Datendefinitionsbasis, wie beispielsweise Tabellen oder Ansichten.) verknüpfen (Verknüpfen [Tabellen]: Herstellen einer Verbindung zu Daten aus einer anderen Anwendung, sodass die Daten sowohl in der ursprünglichen Anwendung als auch in Access angezeigt und bearbeitet werden können.).
Obwohl Sie mit verknüpften Tabellen so arbeiten können, als seien es gewöhnliche Microsoft Access-Datenbanktabellen, ist es wichtig, sich bewußt zu machen, dass die Tabellen sich nicht wirklich in der Access-Datenbank befinden. Immer wenn Sie sich Daten in einer verknüpften Tabelle ansehen, muss Microsoft Access Datensätze aus einer anderen Datei abrufen. Das ist zeitaufwendig, insbesondere dann, wenn sich die verknüpfte Tabelle in einem Netzwerk oder in einer SQL-Datenbank (SQL-Datenbank: Eine auf SQL (Structured Query Language) basierende Datenbank.) befindet.
Wenn Sie mit einer verknüpften Tabelle arbeiten, die sich in einem Netzwerk oder in einer SQL-Datenbank befindet, halten Sie sich an folgende Richtlinien, um optimale Ergebnisse zu erzielen:
- Sie können die Leistung beim Öffnen der Hauptdatenbank und der Tabellen und Formulare deutlich verbessern, wenn Sie festlegen, dass die verknüpfte Datenbank geöffnet bleiben soll. Dazu erstellen Sie in der verknüpften Datenbank eine leere Tabelle und verknüpfen diese in der Hauptdatenbank. Verwenden Sie dann die OpenRecordset-Methode, um die verknüpfte Tabelle zu öffnen. Auf diese Weise wird verhindert, dass das Microsoft Jet-Datenbankmodul die verknüpfte Tabelle wiederholt öffnet und schließt und jedesmal die zugeordnete .ldb-Datei erstellt und löscht.
- Zeigen Sie nur die Daten an, die Sie benötigen. Blättern Sie im Datenblatt nicht unnötig vor und zurück. Vermeiden Sie, in einer umfangreichen Tabelle zum letzten Datensatz zu springen. Wenn Sie Datensätze in eine große Tabelle einfügen möchten, klicken Sie im Menü Datensätze auf Daten eingeben, um das Laden vorhandener Datensätze in den Arbeitsspeicher zu verhindern.
- Verwenden Sie Filter oder Abfragen, um die Anzahl der Datensätze, die im Formular oder Datenblatt angezeigt werden, einzuschränken. Dadurch braucht Microsoft Access nicht so viele Daten über das Netzwerk zu übertragen.
- Verwenden Sie nach Möglichkeit in Abfragen, die sich auf verknüpfte Tabellen beziehen, keine Funktionen in den Abfragekriterien. Vermeiden Sie insbesondere die Verwendung von Aggregatfunktionen für Domänen (Domänenaggregatfunktion: Eine Funktion, z. B. "DomMittelwert" oder "DomMax", die zum Berechnen von Statistiken über eine bestimmte Gruppe von Datensätzen (eine Domäne) verwendet wird.), wie z. B. Dsum, in Ihren Abfragen. Beim Verwenden dieser Funktionen ruft Microsoft Access alle Daten der verknüpften Tabelle ab, um die Abfrage auszuführen.
- Wenn Sie einer verknüpften Tabelle häufig Datensätze hinzufügen, erstellen Sie hierfür ein Formular, bei dem für die Eigenschaft Daten eingeben die Einstellung Ja festgelegt wurde. Beim Öffnen des Formulars zur Dateneingabe zeigt Microsoft Access keine vorhandenen Datensätze an. Mit dieser Eigenschafteneinstellung sparen Sie Zeit, da Microsoft Access die Datensätze nicht aus der verknüpften Tabelle abrufen muss.
- Denken Sie daran, dass andere Benutzer möglicherweise versuchen, zur gleichen Zeit mit einer externen Tabelle zu arbeiten wie Sie. Befindet sich die entsprechende Microsoft Access-Datenbank in einem Netzwerk, sperren Sie die Datensätze nicht länger als unbedingt notwendig.
Verbessern der Leistung von mit SQL Server verknüpften Tabellen
Bestehen die Daten in Ihrer Front-End/Back-End-Anwendung (Front-End/Back-End-Anwendung: Eine Anwendung, die aus zwei Datenbankdateien besteht: der Back-End-Datenbankdatei, die Tabellen enthält, und der Front-End-Datenbankdatei, die alle anderen Datenbankobjekte sowie Verknüpfungen zu den Tabellen in der Back-End-Datenbank enthält.) nur aus Microsoft SQL Server-Tabellen, können Sie entweder ein Microsoft Access-Projekt oder eine Microsoft Access-Datenbank als Front-End für Ihre Anwendung verwenden. Nur bei Verwendung eines Access-Projekts profitieren Sie jedoch von den Vorteilen, die Projekte bieten, wie einer größeren Anzahl von Tabellen und einer gesteigerten Datenbankgröße. Sollen die Daten in der Front-End/Back-End-Anwendung sowohl Microsoft Access-Tabellen als auch Microsoft SQL Server-Tabellen enthalten, müssen Sie eine Access-Datenbank als Front-End verwenden.
Wenn Sie eine Verbindung zu einer externen SQL-Datenbank herstellen, erzielen Sie die besten Leistungsergebnisse, indem Sie zu den SQL-Tabellen eine Verknüpfung herstellen (Verknüpfen [Tabellen]: Herstellen einer Verbindung zu Daten aus einer anderen Anwendung, sodass die Daten sowohl in der ursprünglichen Anwendung als auch in Access angezeigt und bearbeitet werden können.), anstatt die Tabellen direkt zu öffnen. Sie können externe SQL-Tabellen nur unter Verwendung von Microsoft Visual Basic-Code direkt öffnen. Verknüpfte Tabellen sind wesentlich schneller, leistungsstärker und effizienter als direkt geöffnete Tabellen.
Zusätzliche Tipps zur Leistungssteigerung
- Rufen Sie nur die tatsächlich benötigten Daten ab. Entwerfen Sie Ihre Abfragen so, dass sie eine begrenzte Anzahl von Datensätzen abrufen, und wählen Sie nur die benötigten Felder aus, so dass Microsoft Access möglichst wenig Daten über das Netzwerk übertragen muss.
- Verwenden Sie keine aktualisierbaren Ergebnisgruppen (Dynasets), wenn Sie nur einige Datensätze abrufen, die Daten nicht aktualisieren und die Änderungen anderer Benutzer nicht anzeigen müssen. Wenn Sie verhindern möchten, dass die Ergebnisgruppen in einem Formular aktualisiert werden, stellen Sie die RecordSetType-Eigenschaft des Formulars auf Snapshot ein. Snapshots lassen sich schneller öffnen als Dynasets, und Sie können auch schneller einen Bildlauf durchführen.
- Beim Abrufen einer großen Anzahl von Datensätzen ist ein Dynaset schneller und effizienter als ein Snapshot. Um z. B. an das Ende eines Snapshots zu wechseln, muss die gesamte Ergebnisgruppe auf den lokalen Computer geladen werden, bei einem Dynaset dagegen müssen lediglich die Daten des letzten Bildschirms auf den lokalen Computer geladen werden. Die schnellste Möglichkeit zum Hinzufügen neuer Datensätze zu einer Tabelle, einem Formular oder einer Abfrage besteht darin, im Menü Datensätze auf Daten eingeben zu klicken (Daten eingeben ist jedoch nicht verfügbar, wenn die Eigenschaft Datensatzgruppentyp auf Snapshot festgelegt ist.).
- Verwenden Sie den Cachespeicher. Wenn die zuletzt vom Server abgerufenen Daten erneut abgefragt werden, während die Anwendung ausgeführt wird, ist es schneller, eine große Menge von Daten (viele Zeilen) gleichzeitig abzurufen und diese im Cachespeicher abzulegen, als viele einzelne Zeilen abzurufen. Microsoft Access-Formulare und -Datenblätter verwenden automatisch den Cachespeicher. Wenn Sie Daten unter Verwendung eines Recordset-Objekts abrufen, das in Microsoft Visual Basic erstellt wurde, können Sie mit Hilfe der CacheSize-Eigenschaft festlegen, wie viele Datensätze gleichzeitig in den lokalen Speicher geladen werden sollen.
- Wenn Sie bei umfangreichen Aktualisierungsabfragen auf der Grundlage von ODBC-Datenquellen die Leistung auf dem Server optimieren möchten, legen Sie für die FailOnError-Eigenschaft die Einstellung Ja fest.
- Vermeiden Sie das Verwenden von Abfragen, die bewirken, dass eine Verarbeitung auf einem lokalen Clientcomputer erfolgt. Wenn Sie auf externe Daten zugreifen, verarbeitet das Jet-Datenbankmodul die Daten nur dann lokal, wenn die Operation vom externen Datenbank-Server nicht durchgeführt werden kann. Abfrageoperationen, die lokal ausgeführt werden (definiert durch die SQL-Befehle, die zu deren Implementierung verwendet werden), sind z. B. die Folgenden:
- JOIN-Operationen zwischen Tabellen aus unterschiedlichen Remotedatenquellen. (So gibt z. B. Microsoft Access bei einer Verknüpfung zwischen einer lokalen Tabelle oder Abfrage mit nur wenigen Datensätzen und einer Remotetabelle mit wesentlich mehr Datensätzen, deren Verknüpfungsfeld indiziert ist, nur die Datensätze zurück, die denen der lokalen Tabelle oder Abfrage entsprechen, wodurch die Leistung der Abfrage deutlich verbessert wird.)
- JOIN-Operationen auf der Grundlage einer Abfrage mit dem DISTINCT-Prädikat oder einer GROUP BY-Klausel.
- Äußere Verknüpfungen (Äußere Verknüpfung [Inklusionsverknüpfung]: Eine Verknüpfung, bei der alle zusammengehörigen Datensätze aus zwei Tabellen im Ergebnis einer Abfrage in einem Datensatz kombiniert werden und sämtliche Datensätze aus einer der Tabellen hinzugefügt werden, auch wenn sie keine entsprechenden Werte im verknüpften Feld der anderen Tabelle haben.), die eine Syntax enthalten, die der Server nicht unterstützt.
- DISTINCT-Prädikate, die Operationen enthalten, die nicht entfernt verarbeitet werden können.
- Der Operator Wie, wenn er zusammen mit Text- oder Memo-Feldern verwendet wird (wird unter Umständen von einigen Servern nicht unterstützt).
- GROUP BY-Argumente und -Funktionen mit mehreren Ebenen, wie sie z. B. in Berichten mit mehreren Gruppierungsebenen verwendet werden.
- GROUP BY-Argumente basierend auf einer Abfrage mit einem DISTINCT-Prädikat oder einer GROUP BY-Klausel.
- Kreuztabellenabfragen, die mehrere Aggregatfunktionen mit Feld-, Zeilen- oder Spaltenüberschriften enthalten, welche wiederum Aggregatfunktionen oder eine benutzerdefinierte ORDER BY-Klausel enthalten.
- Die Prädikate TOP n oder TOP n PERCENT.
- Benutzerdefinierte Funktionen oder Operatoren bzw. Funktionen, die nicht vom Server unterstützt werden.
- Komplexe Kombinationen aus INNER JOIN (Innere Verknüpfung: Eine Verknüpfung, bei der Datensätze in zwei Tabellen nur dann in den Ergebnissen einer Abfrage kombiniert werden, wenn die Werte der verknüpften Felder eine bestimmte Bedingung erfüllen. In einer Abfrage wird als Standardverknüpfung nur dann eine innere Verknüpfung verwendet, wenn die Werte in den verknüpften Feldern übereinstimmen.)-, LEFT JOIN (Linke äußere Verknüpfung: Eine äußere Verknüpfung [Inklusionsverknüpfung], bei der alle Datensätze auf der linken Seite des LEFT JOIN-Operators in der SQL-Anweisung der Abfrage zum Ergebnis der Abfrage hinzugefügt werden, auch wenn sie keine entsprechenden Werte im verknüpften Feld der Tabelle auf der rechten Seite besitzen.)- oder RIGHT JOIN (Rechte äußere Verknüpfung: Eine äußere Verknüpfung [Inklusionsverknüpfung], bei der alle Datensätze auf der rechten Seite der RIGHT JOIN-Operation in der SQL-Anweisung der Abfrage zum Ergebnis der Abfrage hinzugefügt werden, auch wenn sie keine entsprechenden Werte im verknüpften Feld der Tabelle auf der linken Seite besitzen.)-Operationen in geschachtelten Abfragen.
Die Leistung in einer Mehrbenutzerumgebung verbessern
Mit Hilfe der folgenden Richtlinien können Sie die Leistung von Microsoft Access-Datenbanken (Microsoft Access-Datenbank: Eine Sammlung von Daten und Objekten [beispielsweise Tabellen, Abfragen oder Formulare], die sich auf ein bestimmtes Thema oder einen bestimmten Zweck beziehen.) optimieren, die in einer Mehrbenutzerumgebung eingesetzt werden.
- Legen Sie die Tabellen auf einem Netzwerkserver ab, und belassen Sie die anderen Datenbankobjekte auf den Computern der Benutzer. Die Leistung der Datenbank ist dann höher, da nur Daten über das Netz gesendet werden müssen. Um die Tabellen von anderen Datenbankobjekten zu trennen, verwenden Sie den Assistenten zur Datenbankaufteilung.
- Wählen Sie eine geeignete Strategie zum Sperren von Datensätzen. Wenn Sie das eingeschränkte Sperren (Keine Sperrungen) verwenden, sperrt Access einen Datensatz oder eine Seite erst, wenn ein Benutzer Änderungen darin speichert, wodurch folglich leichter auf Daten zugegriffen werden kann. Beim vollständigen Sperren (Bearbeiteter Datensatz) sperrt Access den Datensatz, sobald der Benutzer beginnt, ihn zu bearbeiten - so sind Datensätze zwar eventuell längere Zeit gesperrt, doch müssen Benutzer nicht festlegen, welche Änderungen gespeichert werden, falls zwei Benutzer denselben Datensatz gleichzeitig bearbeiten.
- Wählen Sie die geeignete Strategie zum Sperren von Datensätzen (Sperren auf Seiten- oder auf Datensatzebene).
- Vermeiden Sie Konflikte beim Sperren. Dazu ändern Sie gegebenenfalls die Einstellungen für das Intervall für Anzeigeaktualisierung, das Intervall für Datenaktualisierung, die Anzahl der Datenaktualisierungsversuche und das Intervall für ODBC-Anzeigeaktualisierung (wenn zutreffend).
- Optimieren Sie die Leistung von Tabellen (einschließlich Tabellen, die mit anderen Datenquellen wie Microsoft SQL Server verknüpft sind).
- Konvertieren Sie die Arbeitsgruppen-Informationsdatei (Arbeitsgruppen-Informationsdatei: Eine Datei, die von Access beim Starten gelesen wird. Diese Datei enthält Informationen zu den Benutzern in einer Arbeitsgruppe. Zu diesen Informationen gehören der Kontoname und das Kennwort der Benutzer sowie die Gruppen, in denen sie Mitglied sind.) von Access 97 oder früher in die aktuelle Version von Access.
Die Leistung von Abfragen verbessern
Datenbanken, Tabellen und Indizes
- Komprimieren Sie Ihre Datenbank. Das Komprimieren kann Abfragen beschleunigen, da die Datensätze in einer Tabelle so neu strukturiert werden, dass sie sich in benachbarten Datenbankseiten befinden und nach dem Primärschlüssel (Primärschlüssel: Eines oder mehrere Felder [Spalten], die die einzelnen Datensätze in einer Tabelle eindeutig identifizieren. Ein Primärschlüssel lässt keine Null-Werte zu und muss immer einen eindeutigen Index haben. Ein Primärschlüssel wird verwendet, um eine Beziehung zwischen einer Tabelle und den Fremdschlüsseln in anderen Tabellen zu erstellen.) der Tabelle geordnet sind. Dies verbessert die Leistung bei sequenziellen Suchen in den Datensätzen einer Tabelle, da zum Abrufen aller Datensätze nur die Mindestanzahl an Datenbankseiten gelesen werden muss. Nach dem Komprimieren der Datenbank führen Sie alle Abfragen aus, um sie auf der Basis der aktualisierten Tabellenstatistiken zu kompilieren.
- Indizieren (Index: Ein Feature, das das Suchen und Sortieren in einer Tabelle basierend auf bestimmten Schlüsselwerten beschleunigt und die Eindeutigkeit für die Zeilen in einer Tabelle erzwingen kann. Der Primärschlüssel einer Tabelle wird automatisch indiziert. Einige Felder können aufgrund ihres Datentyps nicht indiziert werden.) Sie alle zum Festlegen von Kriterien (Kriterien: Von Ihnen angegebene Bedingungen, mit deren Hilfe die in das Resultset einer Abfrage oder eines Filters einzuschließenden Datensätze beschränkt werden.) für die Abfrage verwendeten Felder sowie Indexfelder auf beiden Seiten einer Verknüpfung (Verknüpfung: Eine Verbindung zwischen einem Feld in einer Tabelle oder Abfrage und einem Feld desselben Datentyps in einer anderen Tabelle oder Abfrage. Durch Verknüpfungen können Programme erkennen, auf welche Weise Daten zueinander in Beziehung stehen. Je nach Art der Verknüpfung können nicht übereinstimmende Datensätze ein- oder ausgeschlossen werden.), oder erstellen Sie eine Beziehung (Beziehung: Eine Zuordnung zwischen allgemeinen Feldern (Spalten), die in zwei Tabellen vorkommen. Eine Beziehung kann vom Typ 1:1, 1:n oder n:n sein.) zwischen diesen Feldern. Wenn Sie Beziehungen erstellen, erstellt die Microsoft Jet-Datenbank-Engine (Microsoft Jet-Datenbankmodul: Der Teil des Access-Datenbanksystems, der Daten aus Benutzer- und Systemdatenbanken abruft bzw. darin speichert. Das Datenbankmodul kann als Daten-Manager angesehen werden, auf den sich Datenbanksysteme, z. B. Access, stützen.) einen Index im Fremdschlüssel (Fremdschlüssel: Ein oder mehrere Tabellenfelder [Spalten], die auf das oder die Primärschlüsselfelder in einer anderen Tabelle verweisen. Ein Fremdschlüssel gibt an, wie die Tabellen verknüpft werden.), wenn dieser nicht bereits existiert, oder verwendet den vorhandenen Index.
Die Jet-Datenbank-Engine optimiert automatisch eine Abfrage, die eine Microsoft Access-Tabelle auf der Festplatte und eine ODBC (Open Database Connectivity (ODBC): Eine Standardmethode zum Freigeben von Daten zwischen Datenbanken und Programmen. ODBC-Treiber verwenden zum Zugriff auf externe Daten die Standardsprache SQL (Structured Query Language).)-Servertabelle verknüpft, wenn die Access-Tabelle klein ist und die verknüpften Felder indiziert sind. In diesem Fall verbessert Access die Leistung dadurch, dass nur die erforderlichen Datensätze vom Server angefordert werden. Stellen Sie sicher, dass Tabellen, die Sie aus unterschiedlichen Quellen verknüpfen, in den Verknüpfungsfeldern indiziert sind.
- Indizieren Sie Felder, die Sie zum Sortieren verwenden.
- Verwenden Sie in indizierten Feldern die Operatoren Zwischen...Und, In und das Gleichheitszeichen ( = ).
Felder, Berechnungen und Kriterien
- Wählen Sie beim Definieren eines Feldes in einer Tabelle den kleinsten für die Daten im Feld geeigneten Datentyp (Datentyp: Die Eigenschaft eines Felds, die bestimmt, welche Art von Daten das Feld aufnehmen kann. Als Datentypen sind Währungs- und Datumstypen sowie "Boolean", "Integer", "Long", "Single", "Double", "String" und "Variant" (Standardwert) verfügbar.). Verwenden Sie außerdem für Felder, die Sie in Verknüpfungen (Verknüpfung: Eine Verbindung zwischen einem Feld in einer Tabelle oder Abfrage und einem Feld desselben Datentyps in einer anderen Tabelle oder Abfrage. Durch Verknüpfungen können Programme erkennen, auf welche Weise Daten zueinander in Beziehung stehen. Je nach Art der Verknüpfung können nicht übereinstimmende Datensätze ein- oder ausgeschlossen werden.) verwenden, dieselben oder kompatible Datentypen, wie z. B. AutoWert und Zahl (wenn die Feldgröße-Eigenschaft auf Long Integer festgelegt ist).
- Fügen Sie beim Erstellen einer Abfrage nur die wirklich benötigten Felder hinzu. Deaktivieren Sie für Felder, die zum Festlegen von Kriterien (Kriterien: Von Ihnen angegebene Bedingungen, mit deren Hilfe die in das Resultset einer Abfrage oder eines Filters einzuschließenden Datensätze beschränkt werden.) verwendet werden, das Kontrollkästchen Anzeigen, wenn diese Felder nicht angezeigt werden sollen.
- Wenn Sie Kriterien zum Begrenzen von Werten in einem Feld verwenden, das in einer Verknüpfung zwischen Tabellen mit einer 1:n-Beziehung (1:n-Beziehung: Eine Verbindung zwischen zwei Tabellen, bei der der Primärschlüsselwert jedes Datensatzes in der Mastertabelle mit dem Wert im entsprechenden Feld bzw. den entsprechenden Feldern von mehreren Datensätzen in der verknüpften Tabelle übereinstimmt.) verwendet wird, testen Sie, wann die Abfrage schneller ausgeführt wird: wenn das Kriterium auf der "1"-Seite oder auf der "n"-Seite der Verknüpfung festgelegt wird. In manchen Abfragen wird eine bessere Leistung erzielt, wenn das Kriterium nicht zur "n"-Seite sondern zur "1"-Seite der Verknüpfung hinzugefügt wird.
- Vermeiden Sie die Verwendung von berechneten Feldern (Berechnetes Feld: Ein in einer Abfrage definiertes Feld, das statt gespeicherter Daten das Ergebnis eines Ausdrucks anzeigt. Immer wenn sich ein Wert im Ausdruck ändert, wird der Wert neu berechnet.) in Unterabfragen (Unterabfrage: Eine SQL SELECT-Anweisung, die in einer anderen Auswahl- oder Aktionsabfrage enthalten ist.). Wenn Sie zu einer Abfrage eine weitere Abfrage hinzufügen, die ein berechnetes Feld enthält, kann durch den Ausdruck (Ausdruck: Eine beliebige Kombination aus mathematischen oder logischen Operatoren, Konstanten, Funktionen sowie Namen von Feldern, Steuerelementen und Eigenschaften, die einen einzigen Wert ergibt. Mithilfe von Ausdrücken können Berechnungen ausgeführt, Zeichen bearbeitet oder Daten getestet werden.) im berechneten Feld die Leistung in der übergeordneten Abfrage verringert werden. Im folgenden Beispiel wird die Abfrage A1 als Eingabe für Abfrage A2 verwendet:
Q1: SELECT IIF([MyColumn]="Yes","Order Confirmed","Order Not Confirmed") AS X FROM MyTable;
Q2: SELECT * FROM Q1 WHERE X="Order Confirmed";
Da der Wenn-Ausdruck (IIf) in A1 nicht optimiert werden kann, kann auch A2 nicht optimiert werden. Wenn ein in einer Unterabfrage verschachtelter Ausdruck nicht optimiert werden kann, kann die gesamte Abfrage nicht optimiert werden.
Erstellen Sie die Abfrage daher folgendermaßen:
Q1: SELECT * FROM MyTable WHERE MyColumn = "Yes";
- Wenn in der Ausgabe Ausdrücke erforderlich sind, versuchen Sie, diese in einem Steuerelement (Steuerelement: Ein Objekt der grafischen Benutzeroberfläche (z. B. ein Textfeld, ein Kontrollkästchen, eine Bildlaufleiste oder eine Befehlsschaltfläche) zur Steuerung des Programms durch den Benutzer. Mithilfe von Steuerelementen können Daten bzw. eine Auswahl angezeigt werden, bestimmte Aktionen ausgeführt sowie die Lesbarkeit der Benutzeroberfläche vereinfacht werden.) in einem Formular oder Bericht abzulegen. Sie können z. B. die vorherige Abfrage in eine Parameterabfrage ändern, die den Benutzer auffordert, einen Wert aus Spalte1 einzugeben, und dann ein Formular oder einen Bericht auf der Grundlage dieser Abfrage erstellen. Im Formular oder Bericht können Sie dann ein berechnetes Steuerelement (Berechnetes Steuerelement: Ein Steuerelement in einem Formular, einem Bericht oder einer Datenzugriffsseite, das das Ergebnis eines Ausdrucks anzeigt. Immer wenn sich einer der Werte ändert, auf denen der Ausdruck basiert, wird das Ergebnis neu berechnet.) hinzufügen, das abhängig vom Wert in Spalte1 z. B. "Bestellung bestätigt" oder "Bestellung nicht bestätigt" zurückgibt.
Erstellen Sie die Abfrage wie folgt:
PARAMETERS [To see confirmed orders, enter Yes. To see unconfirmed orders, enter No.] Text; SELECT * FROM MyTable WHERE MyColumn = [To see confirmed orders, enter Yes. To see unconfirmed orders, enter No.];
Geben Sie im berechneten Steuerelement im Formular oder Bericht Folgendes ein:
=IIF([MyColumn]="Yes","Order Confirmed","Order Not Confirmed")
- Legen Sie beim Gruppieren von Datensätzen nach Werten in einem verknüpften Feld für das Feld, das sich in der gleichen Tabelle befindet wie das Feld, für das Sie Summen (oder ein Aggregat (Aggregatfunktion: Eine Funktion, z. B. "Summe", "Anzahl", "Mittelwert" oder "Varianz", die Sie zum Berechnen von Gesamtsummen verwenden.)) berechnen, Gruppierung fest. Wenn Sie z. B. eine Abfrage erstellen, die die Summe der Werte im Feld Anzahl aus der Tabelle Bestelldetails berechnet und nach BestellNr gruppiert, sollten Sie Gruppierung für das Feld BestellNr in der Tabelle Bestelldetails angeben. Wenn Sie Gruppierung für das Feld BestellNr in der Tabelle Bestellungen angeben, muss Microsoft Access vor dem Ausführen der Aggregatfunktion zuerst alle Datensätze verknüpfen statt zuerst die Aggregatfunktion auszuführen und anschließend die erforderlichen Felder zu verknüpfen.
Verwenden Sie Gruppierung immer in möglichst wenigen Feldern, um die Geschwindigkeit zu optimieren. Als Alternative hierzu können Sie auch in entsprechenden Fällen die ErsterWert-Funktion verwenden.
Wenn eine Berechnungsabfrage eine Verknüpfung beinhaltet, können Sie die Datensätze auch in einer Abfrage gruppieren und diese Abfrage dann zu einer separaten Abfrage hinzufügen, die die Verknüpfung vornimmt. Dies führt in einigen Abfragen zu einer Verbesserung der Leistung.
- Vermeiden Sie einschränkende Abfragekriterien für berechnete und nicht indizierte (Index: Ein Feature, das das Suchen und Sortieren in einer Tabelle basierend auf bestimmten Schlüsselwerten beschleunigt und die Eindeutigkeit für die Zeilen in einer Tabelle erzwingen kann. Der Primärschlüssel einer Tabelle wird automatisch indiziert. Einige Felder können aufgrund ihres Datentyps nicht indiziert werden.) Felder.
Ausdrücke und Rushmore-Optimierung
Übersicht über Rushmore-Optimierung
Microsoft Access kann einfache Ausdrücke (Ausdruck: Eine beliebige Kombination aus mathematischen oder logischen Operatoren, Konstanten, Funktionen sowie Namen von Feldern, Steuerelementen und Eigenschaften, die einen einzigen Wert ergibt. Mithilfe von Ausdrücken können Berechnungen ausgeführt, Zeichen bearbeitet oder Daten getestet werden.) oder komplexe Ausdrücke in der Zeile Kriterien des Abfrageentwurfsbereichs (Entwurfsbereich: Das Raster, mit dessen Hilfe Sie in der Entwurfsansicht einer Abfrage oder im Fenster "Spezialfilter/-sortierung" eine Abfrage oder einen Filter entwerfen. Im Zusammenhang mit Abfragen wurde dieses Raster früher als QBE-Bereich bezeichnet.) oder in einer WHERE-Klausel in einer SQL-SELECT-Anweisung optimieren. Für bestimmte Arten komplexer Ausdrücke kann Microsoft Access Rushmore verwenden. Dabei handelt es sich um eine Datenzugriffstechnologie, mit der die Microsoft Jet-Datenbank-Engine (Microsoft Jet-Datenbankmodul: Der Teil des Access-Datenbanksystems, der Daten aus Benutzer- und Systemdatenbanken abruft bzw. darin speichert. Das Datenbankmodul kann als Daten-Manager angesehen werden, auf den sich Datenbanksysteme, z. B. Access, stützen.) einen höheren Optimierungsgrad erzielt. Zudem wurde die Anzahl-Funktion stark für Abfragen über Rushmore optimiert.
Rushmore-Abfragen funktionieren zusammen mit Access-Tabellen sowie mit Microsoft FoxPro- und dBASE-Tabellen (DBF-Dateien). Sie können Rushmore nicht zusammen mit ODBC-Datenquellen (ODBC-Datenquelle: Daten und die erforderlichen Informationen für den Zugriff auf Daten aus Programmen und Datenbanken, die das ODBC-Protokoll (Open Database Connectivity) unterstützen.) verwenden, da Access diese Abfragen nicht lokal verarbeitet, sondern an die ODBC-Datenquelle sendet.
Einfache optimierbare Ausdrücke
Ein einfacher optimierbarer Ausdruck (Ausdruck: Eine beliebige Kombination aus mathematischen oder logischen Operatoren, Konstanten, Funktionen sowie Namen von Feldern, Steuerelementen und Eigenschaften, die einen einzigen Wert ergibt. Mithilfe von Ausdrücken können Berechnungen ausgeführt, Zeichen bearbeitet oder Daten getestet werden.) kann ein vollständiger Ausdruck oder ein Teil eines Ausdrucks sein. Die folgenden Formen sind möglich:
IndiziertesFeld Vergleichsoperator Ausdruck
[Order Date] = #09/15/96#
oder
Ausdruck Vergleichsoperator IndiziertesFeld
#11/1/96# < [HireDate]
In einem einfachen optimierbaren Ausdruck:
-
IndiziertesFeld kann entweder ein Feld sein, das über einen eigenen Index (Index: Ein Feature, das das Suchen und Sortieren in einer Tabelle basierend auf bestimmten Schlüsselwerten beschleunigt und die Eindeutigkeit für die Zeilen in einer Tabelle erzwingen kann. Der Primärschlüssel einer Tabelle wird automatisch indiziert. Einige Felder können aufgrund ihres Datentyps nicht indiziert werden.) verfügt, oder ein Feld, das das erste Feld in einem Index mit mehreren Feldern ist.
-
Vergleichsoperator muss einer der folgenden Operatoren sein: <, >, =, <=, >=, <>, Zwischen...Und, Wie, In.
-
Ausdruck kann ein beliebiger gültiger Ausdruck, einschließlich Konstanten, Funktionen und Feldern aus anderen Tabellen sein.
Wenn Sie Indizes für die Felder Nachname, Alter und Einstellungsdatum der Tabelle Personal erstellt haben, handelt es sich bei den folgenden Ausdrücken um einfache optimierbare Ausdrücke:
[LastName] = "Smith"
[Age] >= 21
#12/30/90# < [HireDate]
Employees.[LastName] = Customers.[LastName]
[LastName] In ("Smith", "Johnson", "Jones")
[Age] Between 18 And 65
Komplexe Ausdrücke
Ein komplexer Ausdruck (Ausdruck: Eine beliebige Kombination aus mathematischen oder logischen Operatoren, Konstanten, Funktionen sowie Namen von Feldern, Steuerelementen und Eigenschaften, die einen einzigen Wert ergibt. Mithilfe von Ausdrücken können Berechnungen ausgeführt, Zeichen bearbeitet oder Daten getestet werden.) wird durch Kombinieren zweier einfacher Ausdrücke mit dem Und-Operator oder dem Oder-Operator erstellt. Die folgenden Formen sind möglich:
EinfacherAusdruck Und EinfacherAusdruck
oder
EinfacherAusdruck Oder EinfacherAusdruck
Ein komplexer Ausdruck ist ganz oder teilweise optimierbar, je nachdem, ob einer oder beide einfachen Ausdrücke optimierbar sind und welcher Operator zum Kombinieren der Ausdrücke verwendet wurde. Ein komplexer Ausdruck kann mit Rushmore-Technologie optimiert werden, wenn alle drei der folgenden Bedingungen zutreffen:
Hinweis Sie können zusammengesetzte Indizes optimieren, wenn Sie die indizierten Felder in der Reihenfolge abfragen, in der sie im Fenster "Indizes" (Fenster "Indizes": Ein Fenster in einer Access-Datenbank, in dem Sie die Indizes einer Tabelle anzeigen oder bearbeiten oder einen zusammengesetzten Index erstellen können.) aufgeführt sind, beginnend beim ersten indizierten Feld über die benachbarten Felder (bis zu maximal 10 Felder). Wenn Sie z. B. einen zusammengesetzten Index haben, der die Felder Nachname und Vorname enthält, können Sie eine Abfrage über Nachname oder über Nachname und Vorname, nicht jedoch über Vorname optimieren.
Die folgenden unterschiedlichen Kombinationen einfacher Ausdrücke in Abfragekriterien zeigen die Ebene der Abfrageoptimierung an.
Vollständig optimierbares Abfrageergebnis (mithilfe von Rushmore)
Teilweise optimierbares Abfrageergebnis (ohne Verwendung von Rushmore)
Nicht optimierbares Abfrageergebnis
-
(nicht optimierbarer Ausdruck) Und (nicht optimierbarer Ausdruck)
-
(nicht optimierbarer Ausdruck) Oder (nicht optimierbarer Ausdruck)
-
Nicht (optimierbarer Ausdruck)
-
Nicht (nicht optimierbarer Ausdruck)
Sie können zum Gruppieren einfacher Ausdrücke auch Klammern verwenden. Die voranstehenden Regeln gelten auch für kombinierte Ausdrücke, die mit Klammern zusammengefasst sind.
Sobald Sie einfache optimierbare Ausdrücke zu komplexen Ausdrücken zusammengefasst haben, können diese komplexen Ausdrücke wieder zu noch komplexeren Ausdrücken zusammengefasst werden, die ebenfalls nach den oben stehenden Regeln optimiert werden können.
In diesen Beispielen wird davon ausgegangen, dass Indizes für die Felder Nachname und Einstellungsdatum (einfache Ausdrücke, die diese Felder verwenden, sind optimierbar), nicht jedoch für die Felder Mittelnamen oder Vorname (einfache Ausdrücke, die diese Felder verwenden, sind nicht optimierbar) verwendet werden. Die folgenden Beispiele kombinierter einfacher Ausdrücke zeigen das Ausmaß der Optimierung des Ergebnisses.
Vollständig optimierbares Abfrageergebnis (mit Hilfe von Rushmore)
[LastName] = "Smith" And [Hire Date] < #12/30/90#
[LastName] = "Smith" Or [Hire Date] < #12/30/90#
Teilweise optimierbares Abfrageergebnis (ohne Verwendung von Rushmore)
[LastName] = "Smith" And [MiddleInitial] = "C"
[FirstName] = "Terry" And [MiddleInitial] = "C"
Nicht optimierbares Abfrageergebnis
[LastName] = "Smith" Or [MiddleInitial] = "C"
[FirstName] = "Terry" Or [MiddleInitial]= "C"
Allgemeine Empfehlungen
- Speichern Sie die SQL-Anweisung als Abfrage, wenn für die Datenherkunft-Eigenschaft eines Formulars oder eines Berichts eine SQL-Anweisung (SQL-Zeichenfolge/-Anweisung: Ein Ausdruck, der eine SQL-Anweisung definiert [z. B. SELECT, UPDATE oder DELETE] und Klauseln [z. B. WHERE und ORDER BY] enthält. SQL-Zeichenfolgen/-Anweisungen werden in der Regel in Abfragen und in Aggregatfunktionen verwendet.) festgelegt wurde, und legen Sie dann die Datenherkunft-Eigenschaft auf den Namen der Abfrage fest.
- Optimieren Sie bei umfangreichen Aktualisierungsabfragen auf der Grundlage von ODBC-Datenquellen (ODBC-Datenquelle: Daten und die erforderlichen Informationen für den Zugriff auf Daten aus Programmen und Datenbanken, die das ODBC-Protokoll (Open Database Connectivity) unterstützen.) die Leistung auf dem Server durch Festlegen der BeiFehlerAbbrechen-Eigenschaft auf Ja.
- Wenn Ihre Daten sich nicht häufig ändern, verwenden Sie zum Erstellen von Tabellen auf der Basis von Abfrageergebnissen Tabellenerstellungsabfragen (Tabellenerstellungsabfrage: Eine Abfrage [SQL-Anweisung], die eine neue Tabelle erstellt und in diese Tabelle dann die in einer vorhandenen Tabelle enthaltenen Datensätze [Zeilen] kopiert.). Verwenden Sie anstelle von Abfragen die daraus resultierenden Tabellen als Grundlage für Formulare, Berichte oder andere Abfragen, und stellen Sie sicher, dass Sie Indizes (Index: Ein Feature, das das Suchen und Sortieren in einer Tabelle basierend auf bestimmten Schlüsselwerten beschleunigt und die Eindeutigkeit für die Zeilen in einer Tabelle erzwingen kann. Der Primärschlüssel einer Tabelle wird automatisch indiziert. Einige Felder können aufgrund ihres Datentyps nicht indiziert werden.) gemäß der hier empfohlenen Richtlinien hinzufügen.
- Vermeiden Sie die Verwendung von Domänen-Aggregatfunktionen (Domänenaggregatfunktion: Eine Funktion, z. B. "DomMittelwert" oder "DomMax", die zum Berechnen von Statistiken über eine bestimmte Gruppe von Datensätzen (eine Domäne) verwendet wird.), wie z. B. die DLookup-Funktion, wenn Sie auf Daten aus einer Tabelle zugreifen möchten, die nicht in der Abfrage enthalten ist. Domänen-Aggregatfunktionen sind Microsoft Access-spezifisch, d. h., die Microsoft Jet-Datenbank-Engine (Microsoft Jet-Datenbankmodul: Der Teil des Access-Datenbanksystems, der Daten aus Benutzer- und Systemdatenbanken abruft bzw. darin speichert. Das Datenbankmodul kann als Daten-Manager angesehen werden, auf den sich Datenbanksysteme, z. B. Access, stützen.) kann keine Abfragen optimieren, die Domänen-Aggregatfunktionen verwenden. Fügen Sie stattdessen die Tabelle, auf die die Funktion zugegriffen hat, zur Abfrage hinzu, oder erstellen Sie eine Unterabfrage (Unterabfrage: Eine SQL SELECT-Anweisung, die in einer anderen Auswahl- oder Aktionsabfrage enthalten ist.).
- Verwenden Sie beim Erstellen einer Kreuztabellenabfrage (Kreuztabellenabfrage: Eine Abfrage, die eine Summe, einen Mittelwert, eine Anzahl oder ein anderes Gesamtergebnis für eine Gruppe von Datensätzen berechnet und das Ergebnis dann anhand zweier Informationsarten gruppiert: eine am linken Rand des Datenblattes von oben nach unten, die andere entlang des oberen Randes.) möglichst immer feste Spaltenüberschriften.
Die Leistung von Filtern verbessern
Wenn es sehr lange dauert, die Listen in Feldern im Fenster Formularbasierter Filter (Formularbasierter Filter: Eine Methode zum Filtern von Daten, die eine Version des aktuellen Formulars oder Datenblattes mit leeren Feldern verwendet, in die Sie die Werte eingeben können, die die gefilterten Datensätze enthalten sollen.) anzuzeigen, oder wenn die Listen nicht die Werte aus der zugrunde liegenden Tabelle anzeigen, können Sie die Leistung des formularbasierten Filters für alle Tabellen, Abfragen und Formulare oder die Leistung für ein bestimmtes Formular verbessern. In beiden Fällen können Sie verhindern, dass die Listen die Feldwerte der zugrunde liegenden Tabelle anzeigen, Sie können in der Liste nur die Feldwerte für bestimmte Typen indizierter (Index: Ein Feature, das das Suchen und Sortieren in einer Tabelle basierend auf bestimmten Schlüsselwerten beschleunigt und die Eindeutigkeit für die Zeilen in einer Tabelle erzwingen kann. Der Primärschlüssel einer Tabelle wird automatisch indiziert. Einige Felder können aufgrund ihres Datentyps nicht indiziert werden.) oder nicht indizierter Felder anzeigen oder die Datensatzgrenze ändern, die festlegt, ob in der Liste die Werte eines Feldes angezeigt werden.
Verbessern der Leistung des formularbasierten Filters für alle Tabellen, Abfragen und Formulare der Datenbank
Diese Einstellungen haben für alle Tabellen und Abfragen sowie für alle Textfeld-Steuerelemente (Steuerelement: Ein Objekt der grafischen Benutzeroberfläche (z. B. ein Textfeld, ein Kontrollkästchen, eine Bildlaufleiste oder eine Befehlsschaltfläche) zur Steuerung des Programms durch den Benutzer. Mithilfe von Steuerelementen können Daten bzw. eine Auswahl angezeigt werden, bestimmte Aktionen ausgeführt sowie die Lesbarkeit der Benutzeroberfläche vereinfacht werden.) Gültigkeit, bei denen für die Filter anwenden-Eigenschaft die Einstellung Datenbankstandard festgelegt ist.
- Klicken Sie im Menü Extras auf Optionen.
- Klicken Sie auf die Registerkarte Bearbeiten/Suchen, und legen Sie dann die Standards für formularbasierte Filter entsprechend der gewünschten Leistung fest.
- Wenn es zu lange dauert, die Werteliste nur in nicht indizierten Feldern anzuzeigen, versuchen Sie, die Listen auf indizierte Felder zu beschränken. Dazu deaktivieren Sie die Kontrollkästchen Lokalen nicht indizierten Feldern und ODBC-Feldern. Wenn es zu lange dauert, die Listen in indizierten Feldern anzuzeigen, deaktivieren Sie das Kontrollkästchen Lokalen indizierten Feldern ebenfalls, da in diesem Fall zu viele Datensätze indiziert sind und die Listen daher nicht schnell angezeigt werden können.
Hinweis Wenn Sie dasselbe nicht indizierte Feld wiederholt zum Filtern von Datensätzen verwenden, können Sie den Filtervorgang und andere Suchoperationen unter Umständen beschleunigen, indem Sie dieses Feld indizieren.
-
Wenn die Listen nicht die Werte aus indizierten oder nicht indizierten Feldern anzeigen, prüfen Sie, ob die entsprechenden Kontrollkästchen unter Liste anzeigen von Werten in aktiviert sind, oder versuchen Sie die im Feld Keine Listen anzeigen, wenn mehr als diese Anzahl Zeilen gelesen wird aufgeführte Anzahl zu erhöhen, so dass diese größer oder gleich der maximalen Anzahl von Datensätzen in einem beliebigen nicht indizierten Feld der zugrunde liegenden Tabelle ist.
Verbessern der Leistung des formularbasierten Filters für ein bestimmtes Formular
Sie können für jedes Textfeld-Steuerelement (Steuerelement: Ein Objekt der grafischen Benutzeroberfläche (z. B. ein Textfeld, ein Kontrollkästchen, eine Bildlaufleiste oder eine Befehlsschaltfläche) zur Steuerung des Programms durch den Benutzer. Mithilfe von Steuerelementen können Daten bzw. eine Auswahl angezeigt werden, bestimmte Aktionen ausgeführt sowie die Lesbarkeit der Benutzeroberfläche vereinfacht werden.) in einem Formular angeben, ob die im Feld gespeicherten Werte in der entsprechenden Liste im Fenster Formularbasierter Filter angezeigt werden sollen oder nicht.
- Öffnen Sie ein Formular in der Entwurfsansicht (Entwurfsansicht: Ein Fenster, in dem der Entwurf der folgenden Datenbankobjekte angezeigt wird: Tabellen, Abfragen, Formulare, Berichte, Makros und Datenzugriffsseiten. In der Entwurfsansicht können Sie neue Datenbankobjekte erstellen und den Entwurf vorhandener Objekte ändern.).
- Zeigen Sie das Eigenschaftenfenster für ein beliebiges Textfeld-Steuerelement an.
Wie wird's gemacht?
- Öffnen Sie eine Tabelle, Abfrage, ein Formular, einen Bericht oder eine Datenzugriffsseite (Datenzugriffsseite: Eine von Access aus veröffentlichte Webseite mit Verbindung zu einer Datenbank. In einer Datenzugriffsseite können Sie die in der Datenbank gespeicherten Daten anzeigen, hinzufügen, bearbeiten und ändern. Eine Seite kann auch Daten aus anderen Quellen enthalten, z. B. aus Excel.) in der Entwurfsansicht (Entwurfsansicht: Ein Fenster, in dem der Entwurf der folgenden Datenbankobjekte angezeigt wird: Tabellen, Abfragen, Formulare, Berichte, Makros und Datenzugriffsseiten. In der Entwurfsansicht können Sie neue Datenbankobjekte erstellen und den Entwurf vorhandener Objekte ändern.).
- Öffnen Sie das Eigenschaftenfenster, indem Sie eine der folgenden Aktionen ausführen:

Formular- oder Berichtsauswahl

Bereichsauswahl
- Doppelklicken Sie für einen Bereich auf einer Datenzugriffsseite auf die Bereichsleiste.

Bereichsleiste
- Klicken Sie im Eigenschaftenfenster auf die Eigenschaft, die Sie festlegen möchten, und führen Sie dann eine der folgenden Aktionen aus:
- Wird im Eigenschaftenfeld ein Pfeil angezeigt, klicken Sie darauf, und wählen Sie aus der Liste einen Wert aus.
- Geben Sie in das Eigenschaftenfeld eine Einstellung oder einen Ausdruck (Ausdruck: Eine beliebige Kombination aus mathematischen oder logischen Operatoren, Konstanten, Funktionen sowie Namen von Feldern, Steuerelementen und Eigenschaften, die einen einzigen Wert ergibt. Mithilfe von Ausdrücken können Berechnungen ausgeführt, Zeichen bearbeitet oder Daten getestet werden.) ein.
- Falls die Generator-Schaltfläche
neben dem Feld der Eigenschaft angezeigt wird, klicken Sie darauf, um einen Generator (Generator: Ein Access-Tool, das die Ausführung einer Aufgabe erleichtert. Beispielsweise können Sie mithilfe des Ausdrucks-Generators schnell einen komplexen Ausdruck erstellen.) oder eine Liste mit Generatoren anzuzeigen.
Tipps
-
Um Hilfe zu einer Eigenschaft im Eigenschaftenfenster anzuzeigen, klicken Sie auf die Eigenschaft, und drücken Sie dann F1.
-
Wenn Sie zum Eingeben oder Bearbeiten einer Eigenschafteneinstellung mehr Platz benötigen, drücken Sie UMSCHALT+F2, um das Zoom-Fenster zu öffnen.
Hinweis Falls die Entwurfsänderungen zulassen-Eigenschaft eines Formulars auf Alle Ansichten festgelegt ist, können Sie Formulareigenschaften auch in der Formularansicht (Formularansicht: Ein Fenster, in dem ein Formular angezeigt wird, in dem Daten angezeigt oder angenommen werden können. Die Formularansicht ist das wichtigste Hilfsmittel zum Hinzufügen und Ändern von Daten in Tabellen. In dieser Ansicht kann der Entwurf eines Formulars auch geändert werden.) und in der Datenblattansicht (Datenblattansicht: Ein Fenster, das Daten aus einer Tabelle, einem Formular, einer Abfrage, einer Sicht oder einer gespeicherten Prozedur in einem Zeilen/Spalten-Format anzeigt. In der Datenblattansicht können Sie Felder bearbeiten, Daten hinzufügen oder löschen und nach Daten suchen.) festlegen.
- Legen Sie für die Eigenschaft im Filter anwenden-Eigenschaftenfeld die Einstellung fest, mit der Sie die gewünschte Leistung erzielen.
- Wenn es zu lange dauert, die Liste im Fenster Formularbasierter Filter anzuzeigen, legen Sie für die Filter anwenden-Eigenschaft entweder die Einstellung Nie oder die Einstellung Datenbankstandard fest, und führen Sie dann im Dialogfeld Optionen (Menü Extras) die entsprechenden Änderungen durch.
- Wenn die Liste im Fenster Formularbasierter Filter nicht die in diesem Feld gespeicherten Werte anzeigt, stellen Sie sicher, dass für die FilterAnwenden-Eigenschaft nicht die Einstellung Nie festgelegt ist. Wenn die Filter anwenden-Eigenschaft auf Datenbankstandard oder Immer festgelegt ist, führen Sie im Dialogfeld Optionen (Menü Extras) die entsprechenden Änderungen durch.
Die Leistung der Features Suchen und Ersetzen verbessern
Ein Index beschleunigt das Suchen und Sortieren von Datensätzen in Microsoft Access. Access verwendet Indizes in einer Tabelle, vergleichbar mit einem Index in einem Buch: Zum Suchen nach Daten sucht Access im Index nach dem Speicherort der Daten. Sie können Indizes auf der Basis eines einzelnen Feldes oder mehrerer Felder erstellen. Mithilfe von Indizes über mehrere Felder können Sie zwischen Datensätzen unterscheiden, die im ersten Feld identische Werte enthalten.
Auswählen der zu indizierenden Felder
Es empfiehlt sich, die Felder zu indizieren, in denen Sie häufig suchen, die Sie sortieren oder die Sie in Abfragen (Abfrage: Eine Anfrage nach in Tabellen gespeicherten Daten oder eine Aufforderung, eine Aktion mit den Daten auszuführen. Eine Abfrage kann Daten aus mehreren Tabellen als Datenquelle für ein Formular, einen Bericht oder eine Datenzugriffsseite zusammenführen.) mit Feldern in anderen Tabellen verknüpfen (Verknüpfung: Eine Verbindung zwischen einem Feld in einer Tabelle oder Abfrage und einem Feld desselben Datentyps in einer anderen Tabelle oder Abfrage. Durch Verknüpfungen können Programme erkennen, auf welche Weise Daten zueinander in Beziehung stehen. Je nach Art der Verknüpfung können nicht übereinstimmende Datensätze ein- oder ausgeschlossen werden.). Indizes können jedoch bestimmte Aktionsabfragen (Aktionsabfrage: Eine Abfrage, die Daten kopiert oder ändert. Aktionsabfragen sind Anfüge-, Lösch-, Tabellenerstellungs- und Aktualisierungsabfragen. Sie sind im Datenbankfenster durch ein Ausrufezeichen [!] neben ihrem Namen gekennzeichnet.), wie z. B. Anfügeabfragen (Anfügeabfrage: Eine Aktionsabfrage, die die Datensätze eines Resultsets für eine Abfrage zum Ende einer Tabelle hinzufügt.), verlangsamen, wenn zum Durchführen dieser Operationen die Indizes für viele Felder aktualisiert werden müssen.
Der Primärschlüssel (Primärschlüssel: Eines oder mehrere Felder [Spalten], die die einzelnen Datensätze in einer Tabelle eindeutig identifizieren. Ein Primärschlüssel lässt keine Null-Werte zu und muss immer einen eindeutigen Index haben. Ein Primärschlüssel wird verwendet, um eine Beziehung zwischen einer Tabelle und den Fremdschlüsseln in anderen Tabellen zu erstellen.) einer Tabelle wird automatisch indiziert. Felder vom Datentyp (Datentyp: Die Eigenschaft eines Felds, die bestimmt, welche Art von Daten das Feld aufnehmen kann. Als Datentypen sind Währungs- und Datumstypen sowie "Boolean", "Integer", "Long", "Single", "Double", "String" und "Variant" (Standardwert) verfügbar.) "OLE-Objekt" (OLE-Objekt-Datentyp: Ein Felddatentyp, den Sie für Objekte verwenden, die in anderen Anwendungen erstellt wurden und die in einer Access-Datenbank verknüpft bzw. in diese eingebettet werden können.) können nicht indiziert werden. Für alle anderen Felder sollten Sie unter folgenden Voraussetzungen einen Index in Erwägung ziehen:
- Der Datentyp des Feldes lautet Text, Zahl, Währung oder Datum/Uhrzeit.
- Sie gehen davon aus, dass Sie nach Werten suchen müssen, die in diesem Feld gespeichert sind.
- Sie gehen davon aus, dass Sie Werte in diesem Feld sortieren werden.
- Sie gehen davon aus, dass in diesem Feld viele verschiedene Werte gespeichert werden. Wenn viele Werte im Feld identisch sind, wird ein Index Abfragen nicht deutlich beschleunigen.
Zusammengesetzte Indizes
Wenn Sie davon ausgehen, dass Sie häufig in zwei oder mehr Feldern gleichzeitig suchen oder diese gleichzeitig sortieren müssen, können Sie einen Index erstellen, der beide Felder kombiniert. Angenommen, Sie legen häufig in der gleichen Abfrage Kriterien für die Felder Nachname und Vorname fest, ziehen Sie in einem solchen Fall in Erwägung, über beide Felder einen zusammengesetzten Index zu erstellen.
Wenn Sie eine Tabelle über einen zusammengesetzten Index sortieren, sortiert Microsoft Access zuerst über das im Index zuerst definierte Feld. Wenn es Datensätze mit identischen Werten in diesem ersten Feld gibt, sortiert Microsoft Access anschließend über das zweite im Index definierte Feld usw.
Zusammengesetzte Indizes können bis zu 10 Felder umfassen.
Die Leistung von Formularen und Unterformularen verbessern
Es gibt verschiedene Möglichkeiten, Ihre Formulare schneller ausführen zu lassen.
Allgemeine Tipps
- Vermeiden Sie überlappende Steuerelemente.
- Sortieren Sie die Datensätze in einer zugrunde liegenden Abfrage (Abfrage: Eine Anfrage nach in Tabellen gespeicherten Daten oder eine Aufforderung, eine Aktion mit den Daten auszuführen. Eine Abfrage kann Daten aus mehreren Tabellen als Datenquelle für ein Formular, einen Bericht oder eine Datenzugriffsseite zusammenführen.) nur dann, wenn die Sortierreihenfolge von Bedeutung ist, insbesondere in Abfragen, die auf mehreren Tabellen basieren.
- Wenn die zugrunde liegende Datenquelle (Datenherkunft: Die zugrunde liegende Quelle der Daten für ein Formular, einen Bericht oder eine Datenzugriffsseite. In einer Access-Datenbank kann es sich hierbei um eine Tabelle, eine Abfrage oder eine SQL-Anweisung handeln. In einem Access-Projekt kann die Datenherkunft eine Tabelle, eine Ansicht, eine SQL-Anweisung oder eine gespeicherte Prozedur sein.) viele Datensätze umfasst und Sie das Formular hauptsächlich zum Eingeben neuer Datensätze verwenden möchten, legen Sie die DatenEingeben-Eigenschaft des Formulars auf Ja fest, so dass das Formular mit einem leeren Datensatz geöffnet wird. Wenn Sie ein Formular öffnen und dabei alle Datensätze anzeigen, muss Microsoft Access jeden Datensatz lesen, bevor der leere Datensatz am Ende des Recordsets angezeigt werden kann.
- Schließen Sie Formulare, die nicht benötigt werden.
Tipps für Formulare mit Bildern und Objekten
- Verwenden Sie Bitmaps und andere Grafikobjekte sparsam.
- Konvertieren Sie Objektfelder, die Grafiken anzeigen, in Bild-Steuerelemente.
- Verwenden Sie schwarzweiße statt farbiger Bitmaps.
Tipps für Formulare mit Code
Ein Formular ohne Formularmodul (Formularmodul: Ein Modul mit Code für alle Ereignisprozeduren, die von Ereignissen ausgelöst werden, die für ein bestimmtes Formular oder dessen Steuerelemente eintreten können.) wird schneller geladen und benötigt weniger Speicherplatz. Wenn weder das Formular noch die Steuerelemente des Formulars Ereignisprozeduren (Ereignisprozedur: Eine Prozedur, die nach Eintreten eines durch den Benutzer, durch Programmcode oder durch das System ausgelösten Ereignisses automatisch ausgeführt wird.) verwenden, benötigt das Formular kein Formularmodul.
Anmerkungen
-
Wenn Sie sich entschließen, den Code sämtlicher Ereignisprozeduren eines Formulars zu löschen, müssen Sie die Eigenschaft EnthältModul auf Nein einstellen, um das Formularmodul vollständig zu entfernen.
- Sie können in einem Formular, das kein Formularmodul besitzt, weiterhin Code verwenden, indem Sie Funktionen aus einem Standardmodul mit Hilfe eines Ausdrucks (Ausdruck: Eine beliebige Kombination aus mathematischen oder logischen Operatoren, Konstanten, Funktionen sowie Namen von Feldern, Steuerelementen und Eigenschaften, die einen einzigen Wert ergibt. Mithilfe von Ausdrücken können Berechnungen ausgeführt, Zeichen bearbeitet oder Daten getestet werden.) aufrufen. (Sub-Prozeduren können nicht verwendet werden, da sie nicht über einen Ausdruck aufgerufen werden können.) Definieren Sie hierzu eine Funktion in einem Standardmodul, und rufen Sie die Funktion dann über eine Ereigniseigenschaft (Ereigniseigenschaft: Ein benanntes Attribut eines Steuerelements, Formulars, Berichts, einer Datenzugriffsseite oder eines Abschnitts, mit dem Sie auf ein zugeordnetes Ereignis reagieren können. Sie können eine Prozedur oder ein Makro bei Auftreten eines Ereignisses ausführen, indem Sie die zugehörige Ereigniseigenschaft festlegen.) des Formulars oder Steuerelements auf. Um z. B. mit Hilfe einer Befehlsschaltfläche eine Funktion aufzurufen, die ein Formular öffnet, fügen Sie einen Ausdruck zur BeimKlicken-Eigenschaft der Befehlsschaltfläche hinzu, z. B. =OpenDataEntry().
Tipps für Unterformulare
- Basieren Sie Unterformulare auf Abfragen anstatt auf Tabellen, und fügen Sie nur absolut notwendige Felder aus der Datenquelle (Datenherkunft: Die zugrunde liegende Quelle der Daten für ein Formular, einen Bericht oder eine Datenzugriffsseite. In einer Access-Datenbank kann es sich hierbei um eine Tabelle, eine Abfrage oder eine SQL-Anweisung handeln. In einem Access-Projekt kann die Datenherkunft eine Tabelle, eine Ansicht, eine SQL-Anweisung oder eine gespeicherte Prozedur sein.) hinzu. Zusätzliche Felder können die Leistung des Unterformulars verringern.
- Indizieren (Index: Ein Feature, das das Suchen und Sortieren in einer Tabelle basierend auf bestimmten Schlüsselwerten beschleunigt und die Eindeutigkeit für die Zeilen in einer Tabelle erzwingen kann. Der Primärschlüssel einer Tabelle wird automatisch indiziert. Einige Felder können aufgrund ihres Datentyps nicht indiziert werden.) Sie alle Felder im Unterformular, die mit dem Hauptformular (Hauptformular: Ein Formular, das ein oder mehrere Unterformulare enthält.) verknüpft sind.
- Indizieren Sie alle Felder des Unterformulars, die für Kriterien verwendet werden.
- Stellen Sie die Eigenschaften BearbeitenZulassen, AnfügenZulassen und LöschenZulassen des Unterformulars auf Nein ein, wenn die Datensätze in dem Unterformular nicht bearbeitet werden, oder stellen Sie die Eigenschaft Datensatzgruppentyp auf Snapshot ein.
Die Leistung von Listenfeldern und Kombinationsfeldern verbessern
Es gibt verschiedene Möglichkeiten, Ihre Listenfelder, Kombinationsfelder und Dropdown-Listenfelder (Dropdown-Listenfeld: Ein Steuerelement in einer Datenzugriffsseite, auf das Sie klicken können, um eine Liste anzuzeigen, aus der Sie einen Wert auswählen können. In Dropdown-Listenfeldern können keine neuen Werte eingegeben werden.) schneller ausführen zu lassen.
- Basieren Sie das Listenfeld, das Kombinationsfeld oder das Dropdown-Listenfeld auf einer gespeicherten Abfrage (Abfrage: Eine Anfrage nach in Tabellen gespeicherten Daten oder eine Aufforderung, eine Aktion mit den Daten auszuführen. Eine Abfrage kann Daten aus mehreren Tabellen als Datenquelle für ein Formular, einen Bericht oder eine Datenzugriffsseite zusammenführen.) anstatt auf einer SQL-Anweisung. Wenn Sie in einem Formular einen Assistenten verwenden, um ein Listen- oder Kombinationsfeld zu erstellen, legt Microsoft Access die Datensatzherkunft-Eigenschaft des Steuerelements automatisch auf eine SQL-Anweisung fest. Sie ändern die Datensatzherkunft-Eigenschaft in eine gespeicherte Abfrage, indem Sie auf die Generator-Schaltfläche
neben dem Eigenschaftenfeld Datensatzherkunft klicken. Klicken Sie, während das Abfrage-Generatorfenster geöffnet ist, im Menü Datei auf Speichern, und geben Sie einen Namen für die Abfrage ein. Wenn Sie das Abfrage-Generatorfenster schließen, klicken Sie auf Ja, wenn Microsoft Access Sie fragt, ob Sie die Eigenschaft aktualisieren möchten.
- Basieren Sie das Dropdown-Listenfeld auf einer Gespeicherten Abfrage anstatt auf einer Tabelle. Wenn Sie auf einer Datenzugriffsseite einen Assistenten verwenden, um ein Dropdown-Listenfeld zu erstellen, legt Access automatisch die ListRowSource-Eigenschaft des Steuerelements auf die Tabelle fest, die Sie im Assistenten angegeben haben. Um Zeilen aus einer Abfrage anstatt aus einer Tabelle abzurufen, wählen Sie den Abfragenamen aus dem Einstellungsfeld der ListRowSource-Eigenschaft aus.
- Fügen Sie zu der Abfrage, die im Einstellungsfeld der Datensatzherkunft- oder ListRowSource-Eigenschaft angegeben ist, nur die Felder hinzu, die Sie unbedingt benötigen. Zusätzliche Felder können die Leistung verringern.
- Indizieren (Index: Ein Feature, das das Suchen und Sortieren in einer Tabelle basierend auf bestimmten Schlüsselwerten beschleunigt und die Eindeutigkeit für die Zeilen in einer Tabelle erzwingen kann. Der Primärschlüssel einer Tabelle wird automatisch indiziert. Einige Felder können aufgrund ihres Datentyps nicht indiziert werden.) Sie sowohl das erste Feld des Kombinations- oder Listenfelds oder des Dropdown-Listenfeldes als auch das gebundene Feld (falls diese Felder nicht identisch sind).
- Stellen Sie in Kombinationsfeldern in Formularen die Eigenschaft AutomatischErgänzen auf Nein ein, wenn Sie die automatische Eingabeergänzung nicht benötigen.
- Wenn in einem Formular die Eigenschaft Automatisch ergänzen eines Kombinationsfeldes mit Ja festgelegt ist, sollte das erste angezeigte Feld den Datentyp Text und nicht Zahl enthalten. Um eine Entsprechung in der Liste zu suchen, werden nummerische Werte von Microsoft Access in Text konvertiert. Wenn der Datentyp Text ist, muss Microsoft Access diese Konvertierung nicht durchführen.
- Wenn das gebundene Feld eines Nachschlage-Kombinationsfelds in einem Formular nicht das angezeigte Feld ist, beachten Sie Folgendes:
- Erstellen Sie keine Listenfelder, Kombinationsfelder oder Dropdown-Listenfelder auf der Grundlage von Daten in verknüpften Tabellen (Verknüpfte Tabelle: Eine Tabelle, die in einer Datei außerhalb der geöffneten Datenbank gespeichert ist, auf deren Datensätze Access jedoch zugreifen kann. Sie können Datensätze in einer verknüpften Tabelle hinzufügen, löschen und bearbeiten, jedoch nicht die Tabellenstruktur ändern.), wenn sich diese Daten nicht ändern. Es ist in diesem Fall sinnvoller, diese Daten in die Datenbank zu importieren.
Hinweis Der Abfrage-Generator ist in einer Datenzugriffsseite nicht verfügbar. Assistenten stehen in Einzel-Datenzugriffsseiten oder dann, wenn eine Datenzugriffsseite auf eine andere Datenbank als die gerade geöffnete zeigt, nicht zur Verfügung. In beiden Fällen müssen Sie selbst ein Listenfeld oder ein Dropdown-Listenfeld erstellen.
Die Leistung von Datenzugriffsseiten verbessern
Es gibt mehrere Möglichkeiten, um das Laden von Datenzugriffsseiten in der Datenzugriffsseiten-Ansicht (Datenzugriffsseiten-Ansicht: Ein Access-Fenster, in dem Sie den Inhalt der Datenzugriffsseite durchsuchen können. Die Seiten besitzen in der Datenzugriffsseiten-Ansicht dieselbe Funktionalität wie in Microsoft Internet Explorer 5.0 oder höher.) oder in Microsoft Internet Explorer 5.01 mit Service Pack 2 (SP2) oder höher zu beschleunigen.
Allgemeine Tipps
- Schließen Sie beim Verwenden einer Datenzugriffsseite innerhalb von Microsoft Access alle nicht verwendeten Datenbankobjekte. Wenn Sie eine Datenzugriffsseite in Internet Explorer verwenden, schließen Sie alle Fenster, die nicht verwendet werden.
- Legen Sie auf Datenzugriffsseiten, die zur Dateneingabe verwendet werden, die DataEntry-Eigenschaft der Seite auf True fest, damit die Seite mit einem leeren Datensatz geöffnet wird.
- Indizieren Sie alle Felder, die Sie sortieren oder gruppieren oder auf die Sie einen Filter anwenden möchten.
- Binden Sie eine Datenzugriffsseite an eine XML-Datendatei, so dass die Seite die Daten aus einer Datei erhält, die sich auf dem lokalen Client befindet, anstatt auf den Datenbankserver zugreifen zu müssen.
Steuerelemente
- Vermeiden Sie überlappende Steuerelemente.
- Verwenden Sie gebundene Span-Element-Steuerelemente anstelle von Textfeldern, um nicht aktualisierbare Daten anzuzeigen - z. B., um automatisch nummerierte Werte, aus Ausdrücken gewonnene Werte sowie Hyperlinks anzuzeigen.
Sicherheit Verwenden Sie gebundene Span-Steuerelemente oder Hyperlinksteuerelemente mit Vorsicht. Nicht autorisierte Benutzer können gefährlichen HTML-Text in diese Steuerelemente einfügen. Das Verarbeiten dieses Textes ohne Überprüfung oder Änderung kann zu einem Verlust von persönlichen Informationen oder anderen Daten führen. Um das Rendern des in einem Steuerelement enthaltenen HTML-Textes zu verhindern, können Sie den Inhalt des Steuerelements verschlüsseln.
Bilder und Objekte
- Verwenden Sie Bitmaps und andere Grafikobjekte sparsam. Verwenden Sie schwarzweiße statt farbiger Bitmaps.
Gruppierte Seiten
- Stellen Sie sicher, dass die ExpandedByDefault-Eigenschaft für die höchste Gruppenebene auf False festgelegt ist. Wenn sie für niedrigere Gruppenebenen auf False festgelegt ist, werden nach dem Öffnen der Seite andere Interaktionen beschleunigt.
- Stellen Sie sicher, dass die DataPageSize-Gruppenebeneneigenschaft eher auf einen niedrigen als auf einen hohen Wert oder auf Alle festgelegt ist. Je niedriger die Anzahl, desto schneller werden die Datensätze angezeigt.
- Auf einer Seite, die Datensätze mit einer 1:n-Beziehung enthält, gruppieren Sie Datensätze nach Tabellen anstatt nach einem Feld oder Ausdruck.
- Binden Sie auf einer Seite, die auf Tabellen mit einer 1:n-Beziehung basiert, jeden Abschnitt an eine Tabelle statt an eine Abfrage. In Microsoft Access werden die Datensätze erst aus einer Tabelle abgerufen, wenn sie auf der Seite angezeigt werden sollen. Bei einer Abfrage ruft Access sämtliche Datensätze ab, bevor Datensätze auf der Seite angezeigt werden. Verwenden Sie nur dann eine Abfrage, wenn Sie die auf der Seite verwendete Datenmenge beschränken, Aggregatwerte berechnen oder eine Aufgabe ausführen möchten, die nur in einer Abfrage möglich ist.
Über das Umwandeln Ihrer Datenbank in eine MDE-Datei zur Leistungsverbesserung informieren
Wenn eine Datenbank VBA-Code (Microsoft Visual Basic für Applikationen) (Visual Basic für Applikationen (VBA): Eine Makrosprachenversion von Microsoft Visual Basic zum Programmieren von Windows-Anwendungen, die in verschiedenen Microsoft-Anwendungen enthalten ist.) enthält, werden beim Speichern der Microsoft Access-Datenbank (Datenbank: Eine Datensammlung mit Bezug zu einem bestimmten Thema oder Zweck. In einer Datenbank sind Informationen zu einer bestimmten Entität, z. B. zu einem Mitarbeiter oder einer Bestellung, in Tabellen, Datensätzen und Feldern kategorisiert.) als MDE-Datei alle Module kompiliert, der gesamte bearbeitbare Quellcode entfernt und die Zieldatenbank komprimiert. Der Visual Basic-Code kann weiter ausgeführt, jedoch nicht angezeigt oder bearbeitet werden. Sicherheit Durch das Speichern einer Datenbank als MDE-Datei werden Ihre Formulare und Berichte besser geschützt, ohne dass Benutzer sich anmelden oder die Benutzerkonten (Benutzerkonto: Ein durch einen Benutzernamen und eine persönliche ID (PID) identifiziertes Konto, das erstellt wird, um in einer Access-Arbeitsgruppe die Berechtigungen des Benutzers für den Zugriff auf Datenbankobjekte zu verwalten.) und Berechtigungen (Berechtigungen: Eine Gruppe von Attributen, die angeben, welche Zugriffsrechte ein Benutzer für die Daten oder Objekte in einer Datenbank hat.) erstellt und verwaltet werden müssen, die für die Sicherheit auf Benutzerebene (Sicherheit auf Benutzerebene: Mithilfe von Sicherheit auf Benutzerebene in einer Access-Datenbank kann ein Datenbankadministrator oder der Eigentümer eines Objekts einzelnen Benutzern sowie Benutzergruppen bestimmte Berechtigungen für Tabellen, Abfragen, Formulare, Berichte und Makros erteilen.) erforderlich sind.
Die Datenbank funktioniert weiter wie gewohnt: Sie können weiterhin Daten aktualisieren und Berichte ausführen. Darüber hinaus wird die Größe der Datenbank wegen des entfernten Codes verringert, so dass die Speicherverwendung optimiert und die Systemleistung verbessert wird.
Das Speichern einer Access-Datenbank als MDE-Datei verhindert die folgenden Aktionen:
- Anzeigen, Ändern oder Erstellen von Formularen, Berichten oder Modulen in der Entwurfsansicht.
- Hinzufügen, Löschen oder Ändern von Verweisen auf Objektbibliotheken oder Datenbanken.
- Ändern von Code, da eine MDE-Datei keinen Quellcode enthält.
- Importieren oder Exportieren von Formularen, Berichten oder Modulen. Tabellen, Abfragen, Datenzugriffsseiten (Datenzugriffsseite: Eine von Access aus veröffentlichte Webseite mit Verbindung zu einer Datenbank. In einer Datenzugriffsseite können Sie die in der Datenbank gespeicherten Daten anzeigen, hinzufügen, bearbeiten und ändern. Eine Seite kann auch Daten aus anderen Quellen enthalten, z. B. aus Excel.) und Makros können jedoch aus Nicht-MDE-Datenbanken importiert bzw. in Nicht-MDE-Datenbanken exportiert werden.
Überlegungen zur Notwendigkeit von Änderungen am Entwurf von Formularen, Berichten oder Modulen
Achten Sie darauf, eine Kopie Ihrer ursprünglichen Access-Datenbank zu speichern. Wenn der Entwurf von Formularen, Berichten oder Modulen in einer MDE-Datei geändert werden muss, müssen Sie die ursprüngliche Datenbank ändern und anschließend als MDE-Datei speichern. Das Speichern einer Access-Datenbank mit Tabellen als MDE-Datei führt bei einer späteren Änderung des Entwurfs der Formulare, Berichte oder Module zu Komplikationen, da unterschiedliche Versionen der Daten in Einklang gebracht werden. Aus diesem Grunde eignet sich das Speichern einer Access-Datenbank als MDE-Datei am besten für die Front-End-Datenbank einer Front-End/Back-End-Anwendung (Front-End/Back-End-Anwendung: Eine Anwendung, die aus zwei Datenbankdateien besteht: der Back-End-Datenbankdatei, die Tabellen enthält, und der Front-End-Datenbankdatei, die alle anderen Datenbankobjekte sowie Verknüpfungen zu den Tabellen in der Back-End-Datenbank enthält.).
Überlegungen vor dem Speichern einer Datenbank als MDE-Datei
Einige Einschränkungen hindern Sie möglicherweise daran, Ihre Access-Datenbank als MDE-Datei zu speichern:
Wenn Sie zudem ein Datenbankkennwort oder Sicherheit auf Benutzerebene definieren, bevor Sie eine Access-Datenbank als MDE-Datei speichern, gelten diese Funktionen weiterhin für eine aus dieser Datenbank erstellte MDE-Datei. Falls für Ihre Access-Datenbank ein Datenbankkennwort oder Sicherheit auf Benutzerebene definiert ist und Sie diese Funktionen entfernen möchten, müssen Sie dies vor dem Speichern der Datenbank als MDE-Datei tun.
Bevor Sie damit fortfahren können, eine Access-Datenbank als MDE-Datei zu speichern, für die Sicherheit auf Benutzerebene festgelegt wurde, müssen folgende Bedingungen erfüllt sein:
Informationen zu Verweisen und MDE-Dateien
Wenn Sie versuchen, eine MDE-Datei aus einer Microsoft Access-Datenbank (MDB-Datei) oder einem Add-In (MDA-Datei) (Add-In: Ein zusätzliches Programm zum Hinzufügen von benutzerdefinierten Befehlen oder Features zu Microsoft Office.) zu erstellen, die bzw. das auf eine andere Access-Datenbank oder ein anderes Add-In verweist, zeigt Access eine Fehlermeldung an, und Sie können den Vorgang nicht abschließen. Zum Speichern einer Datenbank, die auf eine andere Datenbank verweist, als MDE-Datei müssen Sie alle Datenbanken in der Verweiskette als MDE-Dateien speichern und dabei mit der ersten Datenbank beginnen, auf die verwiesen wird. Nach dem Speichern der ersten Datenbank als MDE-Datei aktualisieren Sie den Verweis in der nächsten Datenbank so, dass er auf die neue MDE-Datei zeigt, bevor Sie diese Datenbank als MDE-Datei speichern, usw.
Wenn z. B. DATENBANK1.MDB auf DATENBANK2.MDB verweist, die wiederum auf DATENBANK3.MDA verweist, verfahren Sie folgendermaßen:
- Speichern Sie DATENBANK3.MDA als DATENBANK3.MDE.
- Öffnen Sie DATENBANK2.MDB, und ändern Sie deren Verweis so, dass er auf die neue DATENBANK3.MDE zeigt.
- Speichern Sie DATENBANK2.MDB als DATENBANK2.MDE.
- Öffnen Sie DATENBANK1.MDB, und ändern Sie deren Verweis so, dass er auf die neue DATENBANK2.MDE zeigt.
- Speichern Sie DATENBANK1.MDB als DATENBANK1.MDE.
Informationen zum Speichern einer replizierten Datenbank als MDE-Datei
Eine replizierte Datenbank (entweder ein Replikat (Replikat: Eine Kopie einer Datenbank, die ein Mitglied einer Replikatgruppe ist und mit anderen Replikaten in der Gruppe synchronisiert werden kann. Änderungen an den Daten in einer replizierten Tabelle in einem Replikat werden an die anderen Replikate gesendet und auf diese angewendet.) oder ein Designmaster (Designmaster: Das einzige Mitglied der Replikatgruppe, in dem Sie Änderungen an der Struktur einer Datenbank vornehmen können, die an andere Replikate weitergegeben werden.)) kann nicht als MDE-Datei gespeichert werden. Um eine replizierte Datenbank als MDE-Datei zu speichern, müssen Sie zunächst die Replikation (Replikation: Das Kopieren einer Datenbank, sodass zwei oder mehr Kopien Aktualisierungen an Daten oder replizierten Objekten austauschen können. Dieser Austausch wird als Synchronisierung bezeichnet.) entfernen.
Wenn eine Datenbank als MDE-Datei gespeichert wurde, kann sie repliziert werden; diese Replikation ist jedoch nur sinnvoll, wenn zukünftig keine Änderungen an der Originaldatenbank vorgenommen werden müssen. Es gibt keine Möglichkeit, Änderungen am Entwurf von Formularen, Berichten oder Code in der Designmaster-MDE-Datei vorzunehmen. Außerdem können in der Originaldatenbank vorgenommene Entwurfsänderungen nicht mit vorher existierenden MDE-Replikaten synchronisiert (Synchronisierung: Das Aktualisieren von zwei Mitgliedern einer Replikatgruppe durch Austauschen aller aktualisierten Datensätze und Objekte jedes Mitglieds. Zwei Replikatgruppenmitglieder sind synchronisiert, wenn die Änderungen an einem Mitglied auf das jeweils andere angewendet wurden.) werden. Deshalb müssen Sie jede notwendige Entwurfsänderung an einer Replikatgruppe (Replikatgruppe: Der Designmaster und alle Replikate, die denselben Datenbankentwurf und dieselbe eindeutige Replikatgruppenbezeichner verwenden.) von MDE-Dateien in der Originaldatenbank vornehmen, diese erneut als MDE-Datei speichern und anschließend eine vollkommen neue Replikatgruppe aus der neuen MDE-Datei erstellen und diese verteilen.
Über das Komprimieren einer Access-Datenbank
In Microsoft Access erfolgt das Komprimieren und Reparieren einer Access-Datei (Microsoft Access-Datei: Eine Access-Datenbank- oder Access-Projektdatei. Eine Access-Datenbank speichert Datenbankobjekte und Daten in einer MDB-Datei. Projektdateien enthalten keine Daten. Sie werden verwendet, um eine Verbindung mit einer Microsoft SQL Server-Datenbank herzustellen.) innerhalb eines einzigen Vorgangs.
Komprimieren einer Access-Datei
Wenn Sie Daten oder Objekte in einer Access-Datenbank (Microsoft Access-Datenbank: Eine Sammlung von Daten und Objekten [beispielsweise Tabellen, Abfragen oder Formulare], die sich auf ein bestimmtes Thema oder einen bestimmten Zweck beziehen.) löschen, oder wenn Sie Objekte in einem Access-Projekt (Microsoft Access-Projekt: Eine Access-Datei, die mit einer Microsoft SQL Server-Datenbank verbunden ist und verwendet wird, um Client/Server-Anwendungen zu erstellen. Projektdateien enthalten keine Daten oder Objekte auf Datendefinitionsbasis, wie beispielsweise Tabellen oder Ansichten.) löschen, kann dies zur Fragmentierung der Datei und zu einer ineffizienten Speicherplatznutzung führen. Durch das Komprimieren der Access-Datei wird eine Kopie der Datei erstellt und die Art der Speicherung der Datei auf dem Datenträger neu geordnet. Durch die Komprimierung einer Datenbank aus einer früheren Access-Version wird die Datenbank nicht in das Access 2002 - 2003-Format konvertiert.
Durch die Komprimierung wird die Leistung sowohl von Access-Datenbanken als auch von Access-Projekten optimiert. In einem Access-Projekt wirkt sich die Komprimierung jedoch nicht auf Datenbankobjekte (Datenbankobjekte: Eine Access-Datenbank enthält Objekte wie Tabellen, Abfragen, Formulare, Berichte, Seiten, Makros und Module. Ein Access-Projekt enthält Objekte wie Formulare, Berichte, Seiten, Makros und Module.) wie Tabellen oder Sichten aus, die sich nicht im Access-Projekt selbst, sondern in der Microsoft SQL Server-Datenbank (Microsoft SQL Server-Datenbank: Eine Datenbank in Microsoft SQL Server, die aus Tabellen, Ansichten, Indizes, gespeicherten Prozeduren, Funktionen sowie Triggern besteht.) befinden.
Die Komprimierung wirkt sich nicht auf die automatische Nummerierung in einem Access-Projekt aus. Wenn Sie jedoch in einer Access-Datenbank Datensätze am Ende einer Tabelle gelöscht haben, die über ein AutoWert-Feld (AutoWert-Datentyp: In einer Microsoft Access-Datenbank ein Felddatentyp, der für jeden Datensatz, der zu einer Tabelle hinzugefügt wird, automatisch eine eindeutige Zahl speichert. Dabei können drei Arten von Zahlen generiert werden: aufeinanderfolgende Zahlen, Zufallszahlen und Replikations-IDs.) verfügt, wird durch das Komprimieren der Datenbank der Wert dieses Feldes neu festgelegt. Der AutoWert-Wert des nächsten hinzugefügten Datensatzes ist dann um 1 größer als der AutoWert-Wert des letzten nicht gelöschten Datensatzes in der Tabelle.
Reparieren einer Access-Datei
In den meisten Fällen erkennt Microsoft Access, ob eine Access-Datei beschädigt ist, sobald Sie versuchen, die Datei zu öffnen. In diesem Fall erhalten Sie die Möglichkeit, die Datei sofort zu reparieren. Wenn die aktuelle Access-Datei einen Verweis auf eine andere Access-Datei enthält, die beschädigt ist, versucht Access nicht, die andere Datei zu reparieren. In einigen Fällen ist es möglich, dass Access die Beschädigung einer Datei nicht erkennt. Falls eine Access-Datei ein unvorhersehbares Verhalten aufweist, sollten Sie sie komprimieren und reparieren.
Access kann Folgendes reparieren:
Um Beschädigungen an Access-Dateien zu vermeiden, sollten Sie die folgenden Richtlinien einhalten:
-
Komprimieren und reparieren Sie Access-Dateien in regelmäßigen Abständen. Sie können festlegen, dass Access eine Datei automatisch komprimiert, wenn sie geschlossen wird.
-
Sichern Sie die Access-Dateien regelmäßig.
-
Vermeiden Sie die unsachgemäße Beendigung von Access. So sollten Sie Access z. B. nicht unvermittelt durch Abschalten des Computers beenden.
-
Falls Netzwerkprobleme auftreten, sollten Sie die Verwendung einer freigegebenen Access-Datenbank, die sich auf einem Netzwerkserver befindet, so lange vermeiden, bis die Probleme beseitigt wurden. Falls möglich, sollten Sie die Access-Datenbank auf einen Computer verschieben, der Ihnen den lokalen Zugriff auf die Datenbank ermöglicht.
Reparieren von Dateien, nachdem Access unerwartet beendet wurde
Falls ein schwerwiegendes Problem auftritt und dazu führt, dass Microsoft Access beendet wird, wird Access neu gestartet, eine Kopie der zuvor geöffneten Datei erstellt und diese Datei Dateiname_Backup.mdb oder Dateiname_Backup.adp benannt, wobei Dateiname dem Namen der Originaldatei entspricht. Wenn die Datei Dateiname_Backup.mdb oder Dateiname_Backup.adp bereits vorhanden ist, werden Sie von Access aufgefordert, den Namen der Datei anzugeben. Access versucht daraufhin, die Originaldatei zu komprimieren und zu reparieren.
|