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

Nur benötigte Felder anzeigen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Während der Zugriff auf Daten schnell erfolgt, kommt es anschließend darauf an, wie viele Felder Sie wirklich anzeigen lassen. Logisch, dass man nur die tatsächlich benötigten Felder darstellen lässt.

Transkript

Ich habe eigentlich sehr gute Erfahrungen gemacht mit Access, was die Optimierung von Abfragen angeht. Wenn ich beispielsweise eine Tabelle habe, auf der basiert eine Abfrage A, auf dieser wiederum basiert eine Abfrage B und darauf basiert eine Abfrage C, das passiert in größeren Datenbanken schon einmal. Dann habe ich schließlich eine Abfrage D, die auf C B A und der Tabelle basiert, und da will ich nur ein einziges Feld herausfiltern. Dann wird, das merkt man bei sehr großen Datenmengen, offensichtlich so gut optimiert, dass nicht alle anderen Felder zwischendurch durch diesen Flaschenhals müssen, um am Ende ein einziges Feld zu erwischen. Aber diese Optimierung sollten Sie nicht unbedingt strapazieren. Je weniger Felder Sie benötigen, desto schneller dürfte das Ergebnis kommen. Insbesondere dann, wenn die Felder erst zwischendurch entstehen. Ich habe hier einmal eine normale Abfrage ohne Berechnung, das ist nichts anderes als die Tabelle viele Daten, noch einmal aufgerufen, so wie praktisch die gleiche Abfrage, aber zusätzlich ist hier ein berechnetes Feld. Das ist einfach ein zusammengesetzter Text aus Vorname, Nachname, Geburtsdatum. Dann gucken wir doch einmal, wie das auf die Performance wirkt und wo man da was herausholen kann. Es gibt verschiedene Varianten. Hier also, was ich schon vorbereitet habe, diese Felder alle anzuzeigen mit dem Sternchen (*), und zwar mit der Abfrage ohne Berechnung. Das ist die erste Variante. Das wirkt wie die Tabelle selber, aber es wird eben eine SQL-Abfrage ausgeführt und sortiert. Das gibt es nicht nur für alle Felder ohne Berechnung, sondern auch für ein einziges Feld. Da ist hier jetzt kein Sternchen, sondern konkret ein einziges Feld enthalten. Und im Vergleich dasselbe noch einmal, nämlich alle Felder mit einer Berechnung. Und dann ganz gezielt ein einziges Feld mit einer Berechnung. Dann gucken wird doch einmal was da zeitlich rauskommt. Fangen wir an mit der Variante alle Felder, oder nur ein bestimmtes. Also alle Felder auswählen, oder nur ein einziges. Und der Unterschied ist praktisch nicht festzustellen. Alle Felder brauchen 16 ms. Ein einziges Feld auch. Das ist also überhaupt kein Unterschied. Der Unterschied taucht auf, wenn es nicht um das Analysieren geht, nur die Daten, die Sie herausholen, sondern wenn es auch um das Anzeigen geht. Also alle Felder anzeigen auf dem Bildschirm, oder in Feld anzeigen auf dem Bildschirm. Alle Felder brauchen 47 ms. Ein einziges Feld braucht 31 ms. Das ist schon einmal ein Fortschritt, indem Sie jetzt nur noch 2/3 der Zeit, also 66 % brauchen. Viel deutlicher wird es, wenn es um das Sortieren geht. Ob Sie ein Tabellen-Feld sortieren, oder ein berechnetes Abfragefeld sortieren. Das lohnt sich! Das Tabellen-Feld braucht beim Sortieren 468 ms. Wenn Sie ein berechnetes Feld nehmen, nämlich ein in einer Abfrage berechnetes Feld, dann haben Sie über 1,5 Sekunden. Das ist ein massiver Geschwindigkeitseinbruch, nämlich 340 %. Das heißt, Sie brauchen die 3,4-fache Zeit. Also ganz klare Empfehlung. Im Zweifelsfall möglichst wenige Felder. Vor allem dann, wenn es um deren Anzeige geht. Das ist also hier ein ganz deutlicher Unterschied. Wenn ich das hier noch einmal zeigen darf. Es geht an dieser Stelle nicht um die Zahl für die Ermittlung der Daten, sondern um diese immer größere Zahl für die Anzeige. Und je mehr Felder Sie anzeigen, desto länger dauert das. Das ist eine ganz normale Erkenntnis, auch im Zusammenhang mit Programmieren. Alles was auf den Bildschirm muss, braucht Zeit, weil dort Pixel gemalt werden. Und je größer die Bildschirme und je mehr Daten Sie dort sehen, und dann auch in vielen Spalten, desto mehr Zeit braucht das. Und die zweite Erkenntnis an dieser Stelle heißt dann eben auch, berechnete Felder in Abfragen sind zusätzlich noch einmal langsamer. Wenn Sie auf die verzichten können, dann sollten Sie auf jeden Fall wirklich nur Abfragen schreiben, die sich ganz schmal auf die Spalten beschränken, die Sie nachher auch brauchen.

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!