Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL: Datenbankabfragen beschleunigen

UNION/ALL-Abfrage beschleunigen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Eine Union-Abfrage ist tendenziell erst einmal langsam, bis sie auf die Sortierung und die eindeutigen Datensätze verzichten.

Transkript

Oftmals ist es so, dass Sie ähnliche Daten in verschiedenen Tabellen gespeichert haben. Da kann man drüber diskutieren, ob das vielleicht sogar ein Design-Fehler ist. Aber wenn die dort gespeichert sind, beispielsweise, weil Sie vorhandene Tabellen übernehmen müssen, dann muss man damit umgehen. Das ist klassischerweise so, wenn Sie eine Tabelle für die Lieferanten und deren Adresse haben und vielleicht eine andere Tabelle für die Kunden und deren Adresse. Jetzt ist Ihre Firma umgezogen und Sie wollen alle Informieren. Da brauchen Sie natürlich die Adressen in einer einzigen Liste. Dafür wählt man klassischerweise Union-Abfragen. Ich habe das hier simuliert mit zwei fast beliebigen Tabellen, die eigentlich für andere Zwecke gedacht waren. Es gibt einmal eine Tabelle, wo der Datentyp FALSCH benutzt ist, nämlich da Datum in einem Textfeld. Das sind die 275.000 Datensätze. Und das gleiche mit dem Datum in einem echten Datumsfeld. Auch 275.000 Datensätze. Die will ich jetzt hinter einander darstellen. Das sind meine fiktiven Adressen, so zu sagen. Dafür bietet sich die Union-Abfrage an. Das würde dann so aussehen. Also hier das erste SELECT und mit dem passenden Feldnamen Union das zweite SELECT. Und wenn Sie das ausführen, werden Sie schon merken, das dauert erstaunlich lange. Tatsächlich ist nämlich die Union-Abfrage nicht unbedingt ein UNION als Schlüsselwort. Das wird zwar gerne immer so benutzt, aber Sie würden es schon an der Datenmenge sehen. Wenn ich das jetzt ausführe, das dauert nicht nur erstaunlich lange, sondern liefert nur 468 Datensätze zurück. Sie erinnern sich, beide Tabellen hatten jeweils 275.000. Wir müssten also weit über eine halbe Million an Datensätzen bekommen. Das brauchbarere Schlüsselwort - denn ich habe nichts davon gesagt, dass ich nur die eindeutigen Datumswerte sehen will, das ist hier passiert - das brauchbarere Schlüsselwort heißt nicht UNION, sondern UNION ALL. Und das sehen Sie schon an der Geschwindigkeit. Das bedeutet, dass die Daten sofort da sind. Jetzt ist auch die zu erwartende Datenmenge angekommen - über eine halbe Million. Das heißt, obwohl es mehr Daten sind, geht es noch bedeutend schneller. Wenn es also um Union-Abfragen geht, sollten Sie immer drüber nachdenken, ob Sie wirklich nur eine Union-Abfrage mit eindeutigen Datensätzen haben wollen, oder lieber mit UNION ALL. Weil Sie nämlich nicht eindeutig sein müssen, ist das Datenbank-Programm nicht gezwungen, die vorher zu sortieren. Das schlägt sich auch in der Zeit nieder. Mit Union, also mit Sortierung, brauchen Sie über 1 Sekunde. Und mit UNION ALL deutlich weniger. Das ist einmal eben so eine Verdoppelung. Natürlich ist es auch klar von der Datenmenge abhängig. Aber wenn Sie Daten nicht sortiert und nicht eindeutig zurück haben müssen, sondern einfach nur hinter einander - häufig sind die schon längst eindeutig - dann sollten Sie unbedingt ein UNION ALL schreiben.

SQL: Datenbankabfragen beschleunigen

Entdecken Sie, wo das Beschleunigungspotenzial für SQL-Datenbanken liegt und lernen Sie die Rezepte für bessere Performance.

2 Std. 15 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.03.2015

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!