Informationen zur Abfrageleistung in einer Access-Datenbank

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 209126 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Moderat: Erfordert grundlegende Makros, Kodierung und Interoperabilität Fähigkeiten.

Dieser Artikel gilt nur für Microsoft Access-Datenbank (.mdb).

Für den Zugriff 97-Version dieses Artikels finden Sie unter 112112.
Alles erweitern | Alles schließen

Auf dieser Seite

EINFÜHRUNG

Dieser Artikel beschreibt das Optimieren der Abfrageleistung in Microsoft Access 2000, Microsoft Access 2002 und in Access Microsoft Office 2003 Die folgenden Themen werden behandelt:
  • Der Abfrageoptimierer für die Microsoft Jet-Datenbank Modul
  • Abfrage timing
  • Analysieren der Leistung
  • Tipps zur Verbesserung der Abfrageleistung
Dieser Artikel setzt voraus, dass die Datenbank lokale Tabellen anstelle von Tabellen, verknüpfte verbunden sind (oder). Wenn die Tabellen sind verknüpft, dies Informationen gilt weiterhin. Es gibt jedoch zusätzliche Probleme, die Auswirkungen auf Abfrageleistung bei verknüpften Tabellen. Weitere Informationen zu verbessern Leistung bei verknüpften Tabellen, können Sie der Microsoft Knowledge Base durch suchen. verwenden die folgende Zeichenfolge ein:
ODBC und optimieren und Tabellen

Weitere Informationen

Der Abfrageoptimierer für das Microsoft Jet-Datenbankmodul

Das Jet-Datenbankmodul enthält mehrere Komponenten, aber die meisten wichtige Komponente Abfragen (und die komplexesten) ist der Optimierer. Die Optimizer basiert auf Kosten. Dies bedeutet, dass der Optimierer Zeitkosten zuweist jede Aufgabe Abfragen und wählt dann die kostengünstigste Liste der auszuführenden Aufgaben generiert das beabsichtigte Ergebnis festlegen. Je länger eine Aufgabe ausführen, nimmt die teurer ist diese Aufgabe.

Entscheiden, welche Strategie für die Abfrage zu verwenden, der Optimierer verwendet Statistiken. Die folgenden Faktoren sind einige der Faktoren auf diese Statistiken basieren:
  • Die Anzahl der Datensätze in einer Tabelle
  • Die Anzahl der Datenseiten in einer Tabelle
  • Der Speicherort der Tabelle
  • Gibt an, ob Indizes vorhanden sind.
  • Wie eindeutige Indizes sind
Wählt der Optimierer die besten klicken Sie dann auf der Grundlage dieser Statistiken interne Abfrage Strategie für den Umgang mit einer bestimmten Abfrage.

Die Statistiken werden aktualisiert, wenn eine Abfrage kompiliert wird. Eine Abfrage ist für gekennzeichnet. Kompilieren, wenn Sie Änderungen an der Abfrage (oder der zugrunde liegenden Tabellen) zu speichern und Wenn die Datenbank komprimiert wird. Wenn eine Abfrage, für die Aufbereitung gekennzeichnet ist, die Tritt auf, das nächste Mal, das die Abfrage ist, kompilieren und Aktualisieren von Statistiken ausführen. Kompilieren in der Regel dauert zwischen Sekunde bis zu vier Sekunden.

If Sie eine erhebliche Anzahl von Datensätzen zu Ihrer Datenbank hinzufügen, müssen Sie öffnen und anschließend speichern Sie Ihre Abfragen, um die Abfragen neu zu kompilieren. Angenommen, Sie entwerfen und Testen Sie eine Abfrage mit eine kleine Reihe von Beispieldaten, Sie müssen erneut kompilieren der Abfrage nach zusätzliche Datensätze zur Datenbank hinzugefügt werden. Wenn Sie dies tun, Sie sicherstellen, dass eine optimale Abfrageleistung erreicht wird bei der Anwendung wird verwendet.

Hinweis Jet Datenbank Engine Optimization-Schemata und Sie nicht angezeigt werden Optimieren eine Abfrage angeben Allerdings können Sie die Datenbank verwenden. Um zu bestimmen, ob Indizes vorhanden sind und wie eindeutig einen Index Dokumentierer ist.

Weitere Informationen über das Problem, das auftreten kann, wenn Sie den Datenbank-Dokumentierer verwenden Klicken Sie in Access 2000 auf die folgende Artikelnummer klicken, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
207782ACC2000: Fehler bei der Verwendung der Datenbank Dokumentierer Wenn Objekte geöffnet sind

Abfrage timing

Es gibt zwei bedeutende Zeitmessungen für eine Select-Abfrage:
  • Zeit, um die Daten des ersten Bildschirms anzeigen
  • Zeit, um den letzten Datensatz zu beziehen
Wenn eine Abfrage nur einen Bildschirm von Daten, diese zwei Mal zurückgibt Messungen sind identisch. Wenn eine Abfrage viele Datensätze diese Zeit zurückgibt Messungen können sehr unterschiedlich sein.

Wenn zwei Messungen sind die wird dieselbe, wenn Sie eine Select-Abfrage in der Datenblattansicht anzeigen, nun einen Bildschirm von Daten und eine Gesamtzahl der Datensätze, die von der Abfrage, wie z. B. "Datensatz 1 zurückgegeben werden der N." Wenn sie für das Jet-Datenbankmodul schneller ist im ersten Bildschirm des Daten als zum Ausführen der Abfrage anzeigen und dann den letzten Datensatz abrufen, sehen Sie einen Bildschirm von Daten, aber keine N im "Datensatz 1 von N". Die N Wert ist leer, bis die Abfrage abgeschlossen ist oder bis Sie einen Bildlauf nach unten Sie bis zum letzten Datensatz.

Dieses Verhalten ist das Ergebnis der Jet Datenbank-Engine, die Auswahl einer der zwei Performance-Strategien:
  • Führen Sie die Abfrage, und zeigen Sie Daten
  • Anzeigen von Daten, und führen Sie die Abfrage
Sie können nicht die Strategie festlegen, die verwendet wird. Die Jet-Datenbank Datenbankmodul wählt die Strategie, die am effizientesten ist.

Analysieren der Leistung

Bei Verwendung von Microsoft Access 7.0, Access 97, Access 2000 Access 2002 oder Access 2003 können Sie die Performance-Analyzer analysieren Abfragen in der Datenbank. Da die Abfrage-Performance-Analyse eng ist an das Jet-Datenbankmodul gebunden sind, schlägt der Assistent zur Leistungsanalyse hinzufügen Indizes nur, wenn die Indizes tatsächlich von der Jet-Datenbankmodul verwendet wird Optimierung die Abfrage. Dies bedeutet, dass der Assistent zur Leistungsanalyse bereitstellen können mit Ihrer Datenbank spezifischer als die allgemeine Performance-Tipps Vorschläge im Abschnitt "Tipps zur Verbesserung der Abfrageleistung" unten.

Der Assistent zur Leistungsanalyse in in Access 7.0, in Access 97 ausführen In Access 2002 oder Access 2003, Access 2000 gehen Sie folgendermaßen vor:

Auf Das Dialogfeld Tools Menü, klicken Sie auf Analysieren, und klicken Sie dann auf Leistung.

Tipps zur Verbesserung der Abfrageleistung

Um die Abfrageleistung zu verbessern, versuchen Sie diese Tipps:
  • Komprimieren Sie Ihre Datenbank

    Beim Komprimieren der Datenbank, die Sie Abfragen beschleunigen können. Beim Komprimieren der Datenbank Datensätze der Tabelle werden neu angeordnet, so dass die Datensätze in angrenzenden Datenbank gespeichert sind Seiten, die nach dem Primärschlüssel der Tabelle sortiert sind. Dies verbessert die Performance sequenzieller Scans von Datensätzen in der Tabelle da nur die minimale Anzahl von Datenbankseiten haben nun gelesen werden, um die Datensätze abzurufen Sie möchten. Nachdem Sie Ihre Datenbank komprimieren, führen Sie jede Abfrage kompiliert der Fragen Sie ab, so dass jede Abfrage jetzt die aktualisierte Tabellenstatistik hat.
  • Indizieren Sie ein Feld

    Alle, mit der festgelegt, Indexfeld Kriterien für die Abfragefelder und die Indexfelder auf beiden Seiten einer Verknüpfung. Oder, Erstellen Sie eine Beziehung zwischen diesen beiden Feldern. Beim Erstellen einer Beziehung mit referenzielle Integrität erzwungen erstellt das Jet-Datenbankmodul einen Index für den Fremdschlüssel, wenn nicht bereits vorhanden ist. Andernfalls verwendet das Jet-Datenbankmodul den vorhandenen Index.

    Hinweis Die Jet Datenbank-Engine optimiert automatisch eine Abfrage, die eine Access-Tabelle auf der Festplatte und eine ODBC-Servertabelle verknüpft, wenn der Zugriff Tabelle ist klein und die verknüpften Felder indiziert sind. In diesem Fall zugreifen verbessert die Leistung von nur die erforderlichen Datensätze vom Server anfordern. Stellen Sie sicher, dass Tabellen, die Sie aus unterschiedlichen Quellen verknüpfen auf die Verknüpfung indiziert sind Felder.
  • Wählen Sie den kleinsten Datentyp, die entsprechende

    Wenn Sie ein Feld in einer Tabelle definieren, wählen Sie die kleinste Datentyp, der für die Daten in das Feld geeignet ist. Stellen Sie außerdem sicher, dass Felder, die Sie in Verknüpfungen verwenden möchten haben die gleichen Datentypen oder kompatibel Datentypen, z. B. AutoWert und Zahl (wenn die Eigenschaft Feldgröße auf Long Integerfestgelegt ist).
  • Fügen Sie nur die Felder, die Sie benötigen

    Wenn Sie Erstellen Sie eine Abfrage, fügen Sie nur die Felder, die Sie benötigen. In Feldern, die verwendet werden Wenn Sie Kriterien festlegen, deaktivieren Sie die Anzeigen das Kontrollkästchen, wenn Sie tun Diese Felder angezeigt werden soll.
  • Die SQL-Anweisung als Abfrage speichern

    Wenn die Eigenschaft RecordSource für ein Formular oder Bericht auf eine SQL-Anweisung festgelegt ist, Speichern Sie die SQL-Anweisung als Abfrage, und legen Sie die RecordSource -Eigenschaft auf den Namen der Abfrage.
  • Berechnete Felder vermeiden

    Vermeiden Sie berechnete Felder in Unterabfragen. Wenn Sie eine Abfrage hinzufügen, die ein berechnetes Feld in ein anderes enthält Abfrage der Ausdruck im berechneten Feld möglicherweise verlangsamen in der Abfrage der obersten Ebene. Im folgenden Beispiel wird die Abfrage Q1 als Eingabe für verwendet. Abfrage a2:
    F1: SELECT IIF([MyColumn]="Yes","Order Confirmed","Order Not Confirmed") AS X FROM MyTable;
    F2: Wählen Sie * aus Q1 bei X = "Bestellung bestätigt";
    Da der Ausdruck ( IIF ) im 1. Quartal optimiert werden kann, darf nicht im 2. Quartal auch sein. optimiert. Wenn ein Ausdruck, der nicht optimiert werden kann, die in einer Unterabfrage geschachtelt ist alle Abfrage kann optimiert werden.

    Eine alternative Möglichkeit zum Erstellen die Abfrage lautet wie folgt:
    F1: Wählen Sie * FROM MyTable, Spalte1 = "Ja";
    Wenn in der Ausgabe Ausdrücke erforderlich sind, versuchen Sie es um die Ausdrücke in einem Steuerelement in einem Formular oder Bericht. Beispielsweise können Sie ändern die vorherige Abfrage zu einer Parameterabfrage, die den Wert des MyColumn abfragt, und dann ein Formular oder einen Bericht auf die Abfrage basieren. Auf dem Formular oder Bericht Sie können dann ein berechnetes Steuerelement hinzufügen, das "Hello" oder "Goodbye," anzeigt Je nach dem Wert in Spalte1.

    Erstellen Sie die Abfrage als folgt:
    Parameter [To see confirmed Orders, enter Yes. Um nicht bestätigte Bestellungen anzuzeigen, geben Sie "Nein".] Text;
    WÄHLEN SIE *
    FROM MyTable
    WHERE MyColumn = [To see confirmed Orders, enter Yes. Um nicht bestätigte Bestellungen anzuzeigen, geben Sie No];
    Geben Sie in das berechnete Steuerelement im Formular oder Bericht:
    = IIF([MyColumn]="Yes","Order Confirmed","Order Not Confirmed")
  • Geben Sie die Gruppe von

    Beim Gruppieren von Datensätzen durch die Geben Sie Werte in einem verknüpften Feld Gruppieren nach für das Feld, das in der gleichen Tabelle als das Feld, das Sie Summen werden (oder ein Aggregat berechnen). Für Beispiel, in der Beispieldatenbank "Nordwind.mdb", wenn Sie eine Abfrage erstellen das Feld Menge in die Tabelle Order Details und dann Gruppen von Summen Bestell-Nr, können Sie Gruppierung für das Feld Bestellnr in der Order Details angeben Tabelle. Wenn Sie Gruppierung für das Feld Bestellnr in der Tabelle Bestellungen angeben, Access muss zuerst alle Datensätze verknüpfen und dann stattdessen die Aggregatfunktion auszuführen Ausführen der Aggregatfunktion, und klicken Sie dann die erforderlichen Felder zu verknüpfen.

    Verwenden Sie Gruppierung immer in möglichst wenigen Feldern, um die Geschwindigkeit zu optimieren. Alternativ verwenden Sie die erste Funktion, falls dies möglich ist.

    Wenn Sie eine Berechnungsabfrage eine Verknüpfung enthält, Möglichkeit der Datensätze in einer Abfrage gruppieren und dann diese Abfrage eine Trennen Sie die Abfrage, die die Verknüpfung ausführt. Wenn Sie dies tun, kann die Leistung werden. Bei einigen Abfragen verbessert.
  • Vermeiden Sie einschränkende Abfragekriterien

    Vermeiden von Einschränkungen Abfragekriterien für berechnete Felder und Felder nicht indiziert, wenn möglich. Verwendung Kriterienausdrücke, die Sie optimieren können.
  • Testen Sie die Abfrageleistung in ein Feld in einer Join zwischen Tabellen

    Bei Verwendung von Kriterien zum Begrenzen von Werten in einer Feld, das in einer Verknüpfung zwischen Tabellen mit einer 1: n-Beziehung verwendet wird, Testen Sie, ob die Abfrage das Kriterium auf der "1"-Seite schneller ausgeführt wird oder auf der "n"-Seite der Verknüpfung. In einigen Abfragen können Sie schneller erkennen Leistung durch die Kriterien in das Feld "1"-Seite der Verknüpfung hinzufügen statt auf der "n"-Seite der Verknüpfung.
  • Index Sortierfelder

    Indizieren Sie Felder, die Sie verwenden für die Sortierung.
  • Verwenden Sie zum Erstellen von Tabellen Tabellenerstellungsabfragen

    Wenn Ihre Daten nur selten ändern, verwenden Sie Tabellenerstellungs-Abfragen zum Erstellen von Tabellen aus der Abfrage Ergebnisse. Verwenden Sie die daraus resultierenden Tabellen anstelle von Abfragen als Grundlage für Ihre Formulare, Berichte oder andere Abfragen. Stellen Sie sicher, dass Sie Indizes hinzufügen gemäß den Richtlinien, die Sie in diesem Artikel zu lesen.
  • Verwenden Sie keine Domänen-Aggregatfunktionen

    Verwenden Sie keine Domänen-Aggregatfunktionen, wie z. B. die DLookup -Funktion Zugriff auf Daten aus einer Tabelle, die nicht in der Abfrage ist. Domänen-Aggregatfunktionen sind spezifisch für Zugriff, und dies bedeutet, dass das Jet Datenbank-Engine kann keine Abfragen optimieren, die Aggregatfunktionen für Domänen verwenden. Stattdessen fügen Sie die Abfrage der Tabelle, die die Funktion zugegriffen hat, oder erstellen Sie ein Unterabfrage.
  • Feste Spaltenüberschriften verwenden

    Wenn Sie erstellen ein Kreuztabellenabfrage, feste Spaltenüberschriften, wann immer möglich verwenden.
  • Verwenden von Operatoren

    Verwenden Sie die zwischen...Und -Operator, der Operator In und den Operator = bei indizierten Feldern.
  • Optimieren der Leistung auf dem server

    Für Massenaktualisierung Abfragen von ODBC-Datenquellen, Optimierung der Performance auf dem Server durch Wenn die Eigenschaft FailOnError auf Ja.

Informationsquellen

Klicken Sie auf Weitere Informationen zum Optimieren der Leistung in Microsoft Access 2000 Microsoft Access-Hilfe auf derHilfe im Menü Optimieren Systemmonitor in den Office- oder Antwort-Assistent, und klicken Sie dann auf Suche um das Thema anzuzeigen.
Weitere Informationen zum Optimieren der Leistung Klicken Sie in Microsoft Access 2002 Microsoft Access-Hilfe auf derHilfe im Menü Verbessern der Leistung einer Access Datenbank in den Office- oder Antwort-Assistent, und klicken Sie dann auf Suche um das Thema anzuzeigen.

Weitere Informationen zum Verbessern der Leistung in Access 2003, klicken Sie auf Microsoft Office-Access-Hilfe auf der Hilfe im Menü Verbessern der Leistung einer Access-Datenbank Klicken Sie im Dialogfeld Suche nach im Hilfefenster ein, und klicken Sie dann auf Suche starten um das Thema anzuzeigen.

Weitere Informationen zur Verwendung von Indizes in Access 2000, klicken Sie auf die folgende Artikelnummer klicken, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
209564ACC2000: Zusammengesetzte Indizes müssen ersten indizierten Feld zu beschränken.

Eigenschaften

Artikel-ID: 209126 - Geändert am: Dienstag, 30. Oktober 2012 - Version: 4.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
Keywords: 
kbquery kbhowto kbperformance kbinfo kbusage kbmt KB209126 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 209126
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com