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

Datumsfelder vergleichen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Sehr beliebt ist, ein Datumsfeld einfach mit einer Zeichenkette zu vergleichen. Leider ist das mit Abstand die langsamste Version, daher sollten Sie darauf verzichten.

Transkript

Datumswerte sind ein steter Quell von Problemen. Zum einen natürlich, weil sie landestypisch geschrieben werden müssen und zum anderen, weil das Datum gerne in anderen Datentypen benutzt wird. Hier ist z. B. das Feld schon mit dem richtigen Datentyp Datum/Uhrzeit. Und auch der Filter benutzt den Datentyp Datum/Uhrzeit. Das wird aber meistens anders gemacht. Ich sehe eigentlich in fast allen Datenbanken so eine Schreibweise, dass auch ein Datumsfeld mit einer Zeichenkette verglichen wird. Das muss hier zwingend ein LIKE sein, weil sonst eine Datentyp- Verletzung bemerkt wird. Aber es wird sowieso häufig ein *1955 eingesetzt, um alle Daten aus dem Jahr 1955 zu finden. Jetzt könnten man natürlich argumentieren, das ist sowieso langsam, weil das LIKE, das WIE da drin ist. Also möchte ich hier auch die alternative Schreibweise probieren. Das Gleichheitszeichen darf ich benutzen, wenn ich den Datums-Datentyp hier mit diesem kleinen Trick, indem ich einen Leer-String anhänge, indem ich also diesen Datentyp Datum in Zeichenkette umwandle. Und schließlich ist ein Datum ja eigentlich nur eine verkappte Zahl. Wenn ich also aus dem gesuchten Tag, Weihnachten 1955, die so genannte serielle Zahl, das serielle Datum mache, also die Anzahl der Tage seit Neujahr 1900, dann ist das 20.474. Vielleicht bringt es ja etwas, dass nicht die Datenbank erst das Datum in diese Zahl umrechnen muss, sondern ich weiß die schon und kann sie schon liefern. Gucken wir einmal, was sich davon lohnt. Fangen wir an mit den weit verbreiteten Text-Vergleichen. Also einmal mit dem identischen Text, also der mit der Verkettung, mit dem Leer-String ein Gleichheitszeichen benutzen darf, oder mit dem ähnlichen Text, der mit dem LIKE arbeitet. Das lohnt sich ganz klar nicht. Beide brauchen 313 ms. Es ist überhaupt kein Unterschied. Oder den Vergleich, ob Sie das Datum als Text filtern, oder ehrlich mit einem Datums-Datentyp vergleichen. Das lohnt sich. Der Text braucht 313 ms, egal in welcher Schreibweise. Das Datum als echter Datentyp ist doppelt so schnell. Vielleicht lässt es sich mit der seriellen Zahl noch mehr beschleunigen. Also statt das ausgeschriebene Datum zu benutzen, direkt diese Zahlen zu schreiben. Das lohnt sich nicht. Das Datum selber braucht 156 ms. Die serielle Zahl ist geringfügig schlechter, aber noch in dem Rahmen, wo ich sagen würde, das fällt nicht auf. Vielleicht gucken wir noch einmal im Überblick die ganzen Varianten. Also die = Datumstyp Schreibweise bringt 156 ms. Die beiden Text-Schreibweisen brauchen doppelt so lange. Und die serielle Zahl ist fast identisch. Das Bild wandelt sich aber drastisch, wenn Sie auf das Datumsfeld einen Index setzen. Dann sind die beiden echten Vergleiche, also mit dem Datum, oder der seriellen Zahl, unschlagbar schnell. Und die anderen beiden ignorieren offenbar den Index, was erklärbar ist, weil z. B. ein umgerechnetes Datenfeld nie auf den Index zugreifen kann. Das heißt ganz deutlich, vergleichen Sie nie ein Datum mit einer Zeichenkette.

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!