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

Filter-Operatoren für Texte

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Textfilter mit dem LIKE-Operator verhalten sich sehr überraschend, je nachdem, wo das Sternchen als Jokerzeichen steht.

Transkript

Wenn Sie eine Abfrage ungefiltert vergleichen, mit einer solchen, die einen Textfilter hat, und zwar auf exakte Gleichheit, dann werden Sie feststellen, ohne Index braucht die ungefilterte 16 ms und diejenige mit dem Textfilter 78 ms. Das ist eine Verschlechterung auf 488 %. Wobei man an dieser Stelle durchaus noch einmal im Vergleich erwähnen darf, bei dem Zahlenfilter ist die Differenz zwischen den ungefilterten und dem Gleich-42-Exakt-Filter tatsächlich das zehnfache. Da verschlechtert sich die Antwortzeit auf 981 %. Das heißt, so auf den ersten Blick scheint ein Textfilter mit exaktem Vergleich, doppelt so schnell zu sein. Nicht wirklich schnell, aber im Vergleich zu einem Zahlenfilter doppelt so schnell. Bevor Sie nun aber auf die Idee kommen, Zahlen einfach in Textfeldern zu speichern müssen wir schon einmal genauer hingucken. Erstens ist es sowieso keine gute Idee, die Daten im falschen Datentyp zu speichern. Aber zweitens werden Sie gleich sehen, dass es schlechter wird - bedeutend schlechter - - wenn Sie nämlich nicht einfach nur einen exakten Text vergleichen, sondern einen ähnlichen, mit dem Like-Operator, wobei diese beiden sogar zu identischen Ergebnissen kommen, werden Sie sehen, dass gar keine Sternchen vorkommen. Like "Text" gibt das gleiche Ergebnis wie Gleich "Text". Es ist aber langsamer. Natürlich! Weil das Gleich "Text" schneller zu prüfen ist. Das sind hier 78 ms. Und ein Like "Text" braucht 235 ms. Das ist das dreifache. Und wenn Sie bei dem Like auch noch Sternchen dahinter machen -also einmal im Vergleich ohne Sternchen und einmal ein Sternchen dahinter- dann wird es noch ein bisschen schlechter. Nicht wirklich viel schlimmer, aber ganz unwesentliches Stückchen schlechter. Von 235 ms auf 250 ms ist noch im Rahmen dessen, was man noch sinnvoll messen kann. Also sagen wir einmal, ein LIKE ist mit und ohne Sternchen gleich schnell. Nein, ist es nicht! Der feine Unterschied liegt nämlich darin, wo das Sternchen ist. Wenn Sie vergleichen, wie es mit einem Sternchen dahinter, oder einem Sternchen davor die Daten findet, dann werden Sie überraschend feststellen: Dahinter sind die 250 ms. Davor weitere Verschlechterung. Das sind jetzt 359 ms. Das heißt, insgesamt auf 153 % von einem sowieso schon schlechten Ergebnis. Oder, um es noch einmal von vorne zu formulieren: Gemessen an dem exakten Gleich "Text" - Vergleich, führt das schlechteste Like, nämlich mit dem Sternchen davor, zu einer Verschlechterung von 78 ms auf 359 ms. Das sind insgesamt das fünffache - 460 %. Und zwar nur deswegen so günstig, sage ich einmal, -auch wenn natürlich eine fünffache Laufzeit nicht besonders günstig ist - nur deswegen so günstig, weil da kein Index auf der Tabelle ist. Wenn Sie nämlich den Text-Vergleich mit dem Index machen, dann ist der exakte Text-Vergleich Gleicht-Text im Vergleich zu dem mit dem Sternchen vor der Suche so unglaublich schnell - nämlich unter 1 ms - während sich das Like mit dem Sternchen davor überhaupt nicht ändert. Es bleibt bei den 359 ms, sodass Sie einen unglaublichen Verlust haben, nämlich 35.900 %. Das ist das dreihundertneunundfünfzig- fache der ursprünglichen Laufzeit. Es bleibt Ihnen nichts anderes übrig, wenn Sie das Sternchen bei dem Like vor dem Such-String haben. Aber daraus können Sie folgern, dass es keine gute Idee ist, Zahlen einfach in Textfeldern zu speichern. Und dass es auch keine gute Idee ist, das Sternchen vorne stehen zu haben, wenn Sie denn überhaupt eine Auswahl für Ihre Suchkriterien haben.

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!