Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Access Performance bei Abfragen

Begonnen von la.bestia.negra, Dezember 06, 2018, 11:45:38

⏪ vorheriges - nächstes ⏩

la.bestia.negra

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

MzKlMu

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.
Gruß Klaus

la.bestia.negra

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

MzKlMu

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.



Gruß Klaus

ebs17

#4
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

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 ...).
Mit freundlichem Glück Auf!

Eberhard