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

Index unterstützen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Manchmal liegt es an einer ganz unauffälligen und versehentlichen Kleinigkeit, dass die Nutzung eines Index verhindert und damit die Abfragegeschwindigkeit reduziert wird.

Transkript

Eine der wichtigsten Forderungen im Zusammenhang mit Datenbanken lautet eigentlich, den Index zu unterstützen. Den hebeln Sie schneller aus, als Sie vermuten. Wir können z. B. eine Abfrage machen, die nach einer Zahl sortiert. Und Sie können eine Abfrage machen, die nach einer berechneten Zahl sortiert. Auf den ersten Blick denkt man, das ist ja gar nicht so schlimm. Es ist ärgerlich, aber jetzt nicht wirklich schlimm. Wenn ich nach der Zahl sortiere, dann brauche ich gute 400 ms. Und wenn ich eine berechnete Zahl nehme, dann sind es 600 ms. Das ist natürlich ein Verlust. Sie haben 150 % Dauer. Das heißt, die Hälfte länger. Aber es fühlt sich erst einmal noch nicht schlimm an. Bis Sie den feinen Unterschied entdecken zwischen einer Abfrage, die nach einer indizierten Zahl sortiert und diese dann berechnet. Die indizierte Zahl, bzw. die Daten der Abfrage, kriegen Sie nämlich nach 16 ms zurück. Und das andere dauert immer noch 610 ms. Erst jetzt haben Sie den Index ausgehebelt. Und das ist jetzt eine Verschlechterung auf 3.800 %. Aber wie kommen Sie daran, so zufällig und meistens versehentlich den Index auszuschließen? Gucken wir einmal in der Datenbank an, wie dieser feine Unterschied aussieht. Ich habe hier bereits die Abfrage vorbereitet, die nach einer Zahl sortiert. Wenn Sie sich das im Entwurf ansehen wollen, da ist nichts originelles drin. Das sind die Daten. Ich will alle Daten sehen und aufsteigend nach diesem einem Parameter sortieren. Soweit so unauffällig. Jetzt achten Sie einmal hier hinten auf das letzte Stückchen, wenn ich jetzt die berechnete Zahl nehme. Sehen Sie, was da berechnet wird? Nichts! Formal funktioniert das natürlich. Da ist eine Berechnung drin. Ich addiere auf die Zahl eine 0. Aber inhaltlich ändert sich nichts. Das passiert einen ganz schnell, wenn man irgendwo ein berechnetes Feld hat, dass man dort irgend etwas unauffälliges macht. Und Sie sehen hier, rechnerisch ist das gar kein Aufwand. Aber das reicht, um den Index auszuhebeln. Sie sehen es hier schon. Die normale Abfrage hat die üblichen 31 ms. Wenn man Glück hat, ist es auch ein bisschen schneller. Und mit der Berechnung braucht es, das spürt man schon beim Ausführen, so viel länger, dass es wirklich weh tut. Und es kommen die gleichen Ergebnisse raus, weil hier eben eine +0 drin steht. Aber das sorgt dafür, dass die JetEngine dieses Feld nicht mehr mit einem Index benutzen kann, weil eben an der Stelle eine mögliche Veränderung stattfindet. Also achten Sie drauf, wann immer Sie irgendwelche Felder berechnen, dann hebeln Sie sofort den Index raus. Und das recht sich dann, wenn Sie daraufhin sortieren, oder filtern. Das ist genau so schlimm.

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!