SQL: Datenbankabfragen beschleunigen

Domänenfunktionen vermeiden

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wer einmal gesehen hat, wie massiv die oft eingesetzten Domänenfunktionen die Performance ruinieren, wird sie nicht mehr so oft einsetzen.

Transkript

Im Zusammenhang mit dem SQL-Tuning, also der Geschwindigkeits-Optimierung, sind Domänenfunktionen mein absolutes Lieblingsthema. Ich habe hier beispielhaft eine Abfrage ohne Domänenfunktion. Da können wir einmal kurz reingucken. Ich mache das oben ein bisschen kleiner. Dann sehen Sie, da passiert im Grunde nichts. Hier wird eine ID angezeigt und das viele Zahlen Feld wird eigentlich nur umbenannt in ein Egal-Feld. Danach wird dann sortiert. Also eigentlich passiert da nichts Besonderes. Wenn ich das jetzt schließe und mir im Vergleich ansehe, die Abfrage mit Domänenfunktion, auch hier im Entwurf, dann wird das Egal-Feld nicht mehr nur auf viele Zahlen basieren, sondern da ist so eine Domänenfunktion drin. Da gibt es einige von: Dom-Wert, Dom-Summe, Dom-Mittelwert, usw. Die wird, weil hier nämlich eine ID aus den Hauptdaten, aus der Tabelle viele Daten, benutzt wird, in jeder Zeile ausgeführt. Wenn ich das hier schließe, dann will ich Ihnen und vor allem mir ersparen, das hier zu testen. Das ist nämlich langsam. Die ohne Domänenfunktion, die kann ich mal eben ausführen, Immer dann, wenn Sie beim Anzeigen von Daten irgendwo einzelne Zellen hereintropfen sehen. Sie können also zusehen, wie diese einzelne Zelle unter einander gemalt wird. Dann haben Sie ein Problem. Hier können Sie mehr als zu sehen. Deswegen will ich es und ersparen. Vielleicht gucken wir einfach nur einmal auf die Zahlen, wie ich sie gemessen habe. Es gibt also einmal die Version der Abfrage ohne eine Domänenfunktion. Das Feld wird trotzdem sortiert. Und einmal die Abfrage mit der Domänenfunktion. Ohne Domänenfunktion, das war einfach das Zahlenfeld, was jetzt egal hieß, das braucht 422 ms. Sitzen Sie gut? Jetzt kommt es mit Domänenfunktion. Das braucht 230.000 ms. Das sind über den Daumen 4 Minuten. Das ist also eine Verschlechterung auf sagenhafte 54.000 %. Oder anders formuliert, es dauert mehr als 550 mal so lang. Das ist der absolute Spitzenreiter unter allen Verschlechterungen. Oder anders formuliert, wenn Sie Ihre Datenbank so viel optimieren, wie Sie wollen, sobald Sie irgendwo in einer Abfrage eine Domänenfunktion verwenden, ist die Arbeit völlig um sonst. Sie können sich alles damit versauen, was Sie sonst an Optimierungen drin haben, weil das so unglaublich langsam ist. Das ist nicht einfach nur der Spitzenreiter, sondern es ist mit einem unglaublichen Abstand der Spitzenreiter zu allen Verschlechterungen, dass es sich gar nicht lohnt, über irgend etwas anders nach zu denken, so lange Sie Domänenfunktionen benutzen. Ich würde ganz gerne formulieren, benutzen Sie nie Domänenfunktionen. Ich muss das aber einschränken auf ein Formular für einen einzigen Datensatz und ausnahmsweise kann man das Mal machen. Die haben ja durchaus ihre Berechtigung. Aber ich würde im Gegenzug sagen, sobald Sie mehr als 10 na ja vielleicht 50 Datensätze mit einer Domänenfunktion verwenden, haben Sie ein Problem. Und zwar, wie Sie sehen, ein richtig großes Problem. Die Domänenfunktion macht nämlich jedes mal diese andere Tabelle auf guckt ihr Wert nach und macht sie wieder zu. Und in unserem Fall macht sie 275.000 mal eine andere Tabelle auf. Das kostet Zeit. Gemessen an dem Zugriff auf eine Tabelle ist das Öffnen der Tabelle mit Abstand das Aufwendigste, wenn man das einzeln misst. Wenn Sie einen Wert aus einer Tabelle holen und die Tabelle vorher öffnen, dann braucht das Öffnen ungefähr das fünfzehnfache an Zeit gegenüber dem Zugriff auf den Wert. Und das macht eine Domänenfunktion in jedem Datensatz. Deswegen ist sie so unglaublich langsam. Also ganz deutlich! Keine Domänenfunkiton! Das macht alles kaputt, was Sie sonst irgendwo optimieren können.

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!