Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: la.bestia.negra am Dezember 06, 2018, 11:45:38

Titel: Access Performance bei Abfragen
Beitrag von: la.bestia.negra am Dezember 06, 2018, 11:45:38
Hallo zusammen,

gibt es einen Trick oder Einstellung um die Performance von Access zu verbessern?
Die Abfrage die ich ausführen möchte, dauert 16 Minuten.
Die gesamte Datenbank hat ca. 1 GB.
Der Server auf dem Access läuft, hat 64 GB Arbeitsspeicher.

Viele Grüße
Titel: Re: Access Performance bei Abfragen
Beitrag von: MzKlMu am Dezember 06, 2018, 11:49:06
Hallo,
wie sieht es mit Indexierungen aus ?
Wie viele Datensätze sind es ?
Und nicht zuletzt, was die Abfrage macht wäre das Wichtigste gewesen, aber das hast Du unterschlagen.
Titel: Re: Access Performance bei Abfragen
Beitrag von: la.bestia.negra am Dezember 06, 2018, 11:59:22
Hallo, danke für deine Antwort.

Was meinst du mit Indexierungen?

Die Datenbank ist so aufgebaut, dass sich Abfrage auf Abfrage bezieht.
Die besagte Abfrage hat 17 Spalten/Felder:
davon möchte ich 11 Felder gruppieren, 2 Felder Anzahl, 2 Felder Erster Wert, 2 Felder Letzter Wert

Das Ergebnis besteht aus ca. 20.000 Datensätzen.

VG
Titel: Re: Access Performance bei Abfragen
Beitrag von: MzKlMu am Dezember 06, 2018, 12:16:35
Hallo,
die Anzahl der Datensätze im Ergebnis ist unwichtig. Wie viele Datensätze sind in der Ausgangstabelle ?
Und die Erläuterung der Abfrage ist auch dürftig. Zeige bitte die SQL Texte der Abfragen.

Was willst Du eigentlich mit "Erster Wert" ?
Das hat nicht mit dem 1. Wert eines Eintrags zu tun, Erster Wert ermittelt einen zufälligen Datensatz. Das gilt auch für Letzter Wert ?

Du beschäftigst Dich mit Datenbanken und weißt nicht was ein Index ist ?

Felder mit den gerechnet, sortiert oder gruppiert wird, müssen in der Tabelle indexiert sein. Bei hohen Datensatzzahlen ist das geradezu unerlässlich.
Das muss im Entwurf der Tabelle gemacht werden.



Titel: Re: Access Performance bei Abfragen
Beitrag von: ebs17 am Dezember 06, 2018, 14:10:33
Zitatgibt es einen Trick oder Einstellung um die Performance ... zu verbessern?
Der generelle Tipp ist:
- möglichst wenig Bytes bewegen
- möglichst wenig Plattenzugriffe,
- möglichst wenig Datentraffic / Netzwerklast
Das ist übrigens nicht auf Access beschränkt.

ZitatWas meinst du mit Indexierungen?
Grundlagen - SQL ist leicht ( 8 ) - Index (https://www.ms-office-forum.net/forum/showthread.php?t=317707)

ZitatDie Datenbank ist so aufgebaut, dass sich Abfrage auf Abfrage bezieht.
Tolle Erklärung. Muss man Deine Abfragen kennen, so dass Du sie nicht zeigen brauchst?
Sowie: Eine Abfrage, die man irgendwie durch Herumklicken zustande gebracht hat, muss nicht gut sein, auch wenn sie an sich funktioniert. Beispiel: Den Weg von Dortmund nach Schalke könnte man auch über Wladiwostok nehmen. Das funktioniert, dauert aber etwas länger.
Auch das hat weniger mit Access zu tun, sondern vor allem mit den Fähigkeiten des Entwicklers.
Auch: Wenn eine Abfrage weitere Abfragen verwendet, müssen die auch ausgeführt werden. Da kann es schnell dazu kommen, dass sich Ungeschicklichkeiten summieren und potenzieren und somit viel Zeit brauchen.
Wegen des direkten Weges: Zeige das Datenmodell und beschreibe, wie das Ergebnis aussehen soll.

ZitatDie besagte Abfrage hat 17 Spalten/Felder:
davon möchte ich 11 Felder gruppieren, 2 Felder Anzahl, 2 Felder Erster Wert, 2 Felder Letzter Wert
Das heißt auf deutsch: Da wurden Werte über Verknüpfungen erst vervielfacht, um sie dann wieder mehr schlecht als recht zusammenzufassen (bis Moskau kommst Du da schon mal ...).