SQL Grundkurs 1: Die Sprache erlernen

Funktionsweise

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wann Sie einen Index erstellen sollten und wie er sich auswirkt, das sind die Themen, die in diesem Film behandelt werden.

Transkript

Ich möchte Ihnen nun einen Grobüberblick über das Thema Index geben. Indices werden zur Beschleunigung von Suchvorgängen in Datenbanken verwendet. Dies ist vor allem dann von Interesse, wenn Tabellen große Datenmengen enthalten. Die Beschleunigung tritt dadurch in Kraft, dass die Daten der indizierten Spalte in einer Baumstruktur geordnet sind. Dadurch können schnellere Zugriffe erfolgen. Ohne Index würde sequentiell gesucht werden und jeder Wert jeder Spalte müsste angesehen werden. Man spricht von einem sog. "Full Table Scan". Bei einem Index wird idealerweise bei jedem Vergleichsvorgang die Hälfte der möglichen Treffer ausgeschieden. Dadurch reduziert sich die Anzahl der Vergleiche drastisch bis man zu einem Ergebnis kommt. Dazu ist es notwendig, dass der komplette Inhalt der indizierten Spalte oder Spalten könnte auch ein zusammengesetzter Index sein, in diesem Index enthalten ist. Generell gibt es neben den klassischen Indexformen auch Spezialformen bei den unterschiedlichen Systemen, z.B. einen kopierten Index oder einen Bitmap Index. Das ist aber unterschiedlich bei den einzelnen Herstellern. Diese Daten, die hier noch einmal gespeichert sind, befinden sich in einem eigenen Objekt, das aber fix mit der Tabelle verbunden ist. In diesem Baum befinden sich nicht nur die Daten, sondern auf letzter Ebene, dem sog. leaf level, befindet sich ein Verweis auf die physischen Gesamtdaten. D.h., wenn Sie z.B. nach einem Nachnamen im Index suchen und aber den ganzen Kundendatensatz angezeigt bekommen möchten, wird im Index nach dem Namen gesucht und über einen Pointer, einen Verweis auf einen Datensatz, können die restlichen Daten dann ausgelesen werden. Wenn Sie eine Tabelle löschen, wird ein Index automatisch automatisch mitentfernt. Welche Strategien sollten Sie beim Einsatz von Indices verfolgen? Generell sollten Sie beachten, dass ein Index dann verwendet werden kann, wenn die indizierte Spalte als linker Vergleichsausdruck in der Werkklausel verwendet wird. Ich habe hier bewusst den Ausdruck "kann verwendet werden". Das liegt daran, dass allein die Tatsache, dass ein Index vorhanden ist, noch lange nicht bedeutet, dass das System diesen Index verwendet. Ein Index wird nämlich vom System nur dann verwendet, wenn die erwartete Trefferanzahl sehr gering ist. Ich möchte das mit einem Buch vergleichen: Wenn Sie ein 500 Seiten dickes Buch haben und Sie brauchen aus diesem Buch drei Informationen, dann werden Sie diese drei Informationen im Index hinten am Ende des Buches suchen und dann jeweils zur richtigen Seite nach vorne blättern, um die zusätzlichen Informationen zu dem indizierten Begriff zu lesen. Wenn Sie aus diesem Buch nicht drei, sondern 100 Informationen benötigen, dann wird das Hin- und Herspringen zwischen dem Index und den einzelnen Seiten irgendwann einmal aufwendig. Da werden Sie eher dazu übergehen ab einem gewissen Punkt, das ganze Buch von vorn nach hinten eher sequentiell zu überfliegen und jene Informationen, die Sie nicht benötigen, einfach überspringen. In Summe werden Sie dann mit der Methode schneller sein. Und ungefähr so tickt, wenn man so sagen kann, auch ein Datenbanksystem. Aufgrund einer Wertverteilungsstatistik kann das System vor dem Ausführen einer Abfrage abschätzen, wie viele Treffer es geben wird. Und nur wenn die Trefferanzahl gering ist, verwendet das System den Index. Wir als Benutzer haben darauf keinen Einfluss. Sie können einen Index auch zusammengesetzt aus mehreren Spalten erzeugen. Der Vorteil ist, dass dieser Index auf unterschiedliche Art und Weise verwendet werden kann: Denn er wird einerseits verwendet, wenn nach allen im Index enthaltenen Spalten gesucht wird oder nach führenden Kopfspalten. Was ist gemeint mit "führenden Kopfspalten"? Wenn Sie einen Index für Nachname, Vorname und Postleitzahl in dieser Reihenfolge erstellt haben, kann er auch verwendet werden, wenn Sie nur nach "Nachname" oder "Nachname" und "Vorname" suchen. Außerdem: Wenn Sie häufig nur auf wenige Spalten einer Tabelle zugreifen, können Sie unter Umständen diese in einem Index zusammenfassen. Dann kann das Ergebnis einer Abfrage direkt aus dem Index erzeugt werden, ohne die Echtdaten lesen zu müssen. Das ist ungefähr so, wie wenn Sie in einem Buch den Index durchblättern und schon die Informationen haben, die Sie benötigen, und schon gar nicht mehr nach vorne auf die entsprechende Seite springen müssen. Indices produzieren aber auch einen gewissen Overhead. Indices beanspruchen Speicherplatz, denn der Inhalt der indizierten Spalte wird komplett noch einmal in einer Baumstruktur abgelegt. Außerdem müssen diese Indices bei Datenänderungen aktualisiert werden. Deshalb macht es in der Praxis nur Sinn, Indices für jene Spalten zu erzeugen, nach denen Sie häufig suchen. Generell alle Spalten einer Tabelle zu indizieren frei nach dem Motto: Na ja, vielleicht möchte ich dort einmal etwas suchen und dann soll das schnell sein, ist stark übertrieben und sollte auf keinen Fall angewandt werden. Denn hier überwiegen die Nachteile gegenüber den Vorteilen bei Weitem. Sie haben in diesem Video einen Grobüberblick über das Thema "Index" erhalten. Indices sollten Sie immer für Spalten erzeugen, in denen häufig gesucht wird und die erwartete Trefferanzahl gering ist. Bedenken Sie, dass Indices auch Overhead produzieren und gehen Sie deshalb sparsam mit ihnen um. Wahllos Spalten zu indizieren ist eine sehr schlechte Strategie.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...

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!