Access: Abfragen mit SQL

Distinct oder Group By

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Befehle "DISTINCT" und "GROUP BY" haben zwar ähnliche Ergebnisse, aber möglicherweise sehr unterschiedliche Ausführungsgeschwindigkeiten.

Transkript

Eigentlich machen GROUP BY und SELECT DISTINCT das Gleiche. Im Normalfall, wenn Sie dort keine berechneten Felder haben, diese aggregierenden, zusammenfassenden Felder in der GROUP BY. SELECT DISTINCT zeigt hier von allen Orten nur die eindeutigen. Und SELECT Ort mit GROUP BY nach dem Ort macht genau das Gleiche. Warum gibt es dann beides? Zum einen können Sie beim GROUP BY zusätzliche Aggregatfunktionen einsetzen, COUNT oder ähnliche. Und zum zweiten kann es einen Zeitunterschied ausmachen. Der ist natürlich bei 500 Datensätzen überhaupt nicht nachzumessen. Aber ich habe hier mal künstlich sehr viele, nämlich über eine Viertelmillion Datensätze erzeugt. Und wenn Sie jetzt die Dauer angucken, hier oben nämlich, ich lasse es einmal ausführen. Dann werden Sie Unterschiede feststellen. Hier sind es knapp unter 400 Millisekunden. Sowas muss man immer ein paar Mal hintereinander machen, weil ein interner Optimierungsplan dafür sorgen kann, dass die Daten schon geladen sind, Im Hauptspeicher und ähnliches, also inzwischen 375 Millisekunden. Und beim letzten Mal wieder 391, also sagen wir mal unter 400 Millisekunden. Wenn ich jetzt wechsle in SELECT DISTINCT, die gleiche Abfrage mit dem gleichen Teilfeld darin und diese ausführe, dann werden Sie feststellen, statt eben 400 Sekunden sind es knapp 600. Das ist schon ein erheblicher Unterschied, auch jetzt 578, es pendelt sich auf knapp unter 600 Millisekunden ein. D.h. das DISTINCT ist fühlbar von 400 auf 600 Millisekunden ist 50% langsamer. Es ist also, wenn Sie wirklich nur eindeutige brauchen, an dieser Stelle das GROUP BY sinnvoller. Das kann man leider nicht immer so ganz allgemeingültig sagen, vor allem ist das K.O.-Kriterium häufig, dass Sie zusätzlich zu der Gruppierungsangabe, zu dem Feld was gruppiert werden soll, auch noch berechnete Felder haben und das geht bei DISTINCT ja nicht. Wenn Sie allerdings mal irgendwann das Gefühl haben, dass eine Abfrage mit DISTINCT oder GROUP BY sehr, sehr langsam ist, dann sollten Sie das jeweils andere Gegenstück probieren, wenn es irgendwie machbar ist.

Access: Abfragen mit SQL

Nutzen Sie die mächtige Abfragesprache SQL in Microsoft Access. Anhand einer Beispiel-Datenbank lernen Sie die Möglichkeiten und Finessen von SQL im Detail kennen.

3 Std. 14 min (64 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieses Training ist für alle Access-Versionen verwendbar. Das vermittelte SQL-Wissen lässt sich mit geringen Abweichungen auch für andere relationale Datenbanksysteme nutzen.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!