Wer hat die richtige Indizes zu einer SQL-Datenbank hinzufügen

SQL Performance-Probleme sind so alt wie SQL selbst-einige sogar könnte sagen, dass SQL von Natur aus langsam ist. Obwohl dies in den frühen Tagen des SQL wahr gewesen sein könnte, ist es auf jeden Fall nicht mehr wahr. Dennoch sind SQL Performance-Probleme nach wie vor weit verbreitet. Wie kommt es dazu?

Die SQL-Sprache ist vielleicht die erfolgreichste der vierten Generation Programmiersprache (4GL). Sein Hauptvorteil ist die Fähigkeit, „was“ und „wie“ zu trennen. Eine SQL-Anweisung ist eine gerade Beschreibung, was ohne Anweisungen bezüglich benötigt wird, wie es getan. Betrachten Sie das folgende Beispiel:

Die SQL-Abfrage liest wie ein englischer Satz, der die angeforderten Daten erklärt. Das Schreiben von SQL-Anweisungen erfordert im Allgemeinen keine Kenntnis über das Innenleben der Datenbank oder das Speichersystem (wie Laufwerke, Dateien, etc.). Es besteht keine Notwendigkeit, die Datenbank zu sagen, welche Dateien zu öffnen oder, wie Sie die gewünschten Zeilen zu finden. Viele Entwickler haben langjährige Erfahrung SQL aber sie wissen sehr wenig über die Verarbeitung, die in der Datenbank geschieht.

Es stellt sich heraus, dass das einzige, was Entwickler lernen müssen, ist, wie Index. Datenbankindizierung ist in der Tat eine Entwicklungsaufgabe. Das ist, weil die wichtigsten Informationen für die richtige Indizierung nicht die Speichersystemkonfiguration oder das Hardware-Setup ist. Die wichtigsten Informationen für die Indizierung ist, wie die Anwendung die Daten abfragt. Dieses Wissen über den Zugangsweg, ist nicht sehr zugänglich für Datenbankadministratoren (DBAs) oder externe Berater. Ganz wird einige Zeit benötigt, um diese Informationen durch Reverse Engineering der Anwendung zu sammeln: Entwicklung, auf der anderen Seite, hat diese Informationen sowieso.

Dieses Buch umfasst alles, was Entwickler über Indizes-und wissen muß nichts mehr. Um genauer zu sein, deckt das Buch der wichtigsten Indextypen nur: der B-Tree-Index.

In meinem eigenen Namen

Wenn Sie diesen Artikel mögen, können Sie gerne auch mein Buch SQL Performance Explained oder meine Ausbildung.

Die Struktur des Buches ist maßgeschneidert für Entwickler; die meisten Kapitel entsprechen einem bestimmten Teil einer SQL-Anweisung.

Das erste Kapitel ist die einzige, die SQL speziell nicht abdeckt; es geht um die Grundstruktur eines Index. Ein Verständnis der Indexstruktur ist wichtig, um im Anschluss an den späteren Kapiteln-nicht diese überspringen!

Obwohl das Kapitel eher kurz nur etwa acht Seiten-nach durch das Kapitel Arbeiten verstehen Sie bereits das Phänomen der langsamen Indizes.

Dies ist, wo wir alle Register ziehen. In diesem Kapitel werden alle Aspekte der Where-Klausel, von sehr einfachen einzelnen Spalte Lookups bis hin zu komplexen Klauseln für Bereiche und Sonderfälle wie LIKE.

Dieses Kapitel macht den Hauptteil des Buches auf. Wenn Sie lernen, diese Techniken zu verwenden, schreiben Sie viel schneller SQL.

Dieses Kapitel ist ein kleiner Exkurs über Performance-Messungen und Datenbank Skalierbarkeit. Sehen Sie, warum Hardware hinzuzufügen, ist nicht die beste Lösung Abfragen zu verlangsamen.

Zurück zu SQL: hier finden Sie eine Erklärung finden, wie Indizes zu verwenden, eine schnelle Join-Tabelle auszuführen.

Haben Sie sich jemals gefragt, ob es einen Unterschied besteht darin, eine einzelne Spalte oder alle Spalten zwischen der Auswahl? Hier ist die Antwort-zusammen mit einem Trick noch bessere Leistung zu erzielen.

Auch um durch und Gruppe von Indizes verwenden können.

In diesem Kapitel wird erläutert, wie aus einer „Pipeline“ Ausführung profitieren, wenn Sie die vollständige Ergebnismenge nicht brauchen.

Wie kann Indizes Schreibleistung auswirken? Indizes kommen nicht für sie frei verwenden, mit Bedacht!

Fragt die Datenbank, wie es eine Anweisung ausführt.

Führt einigen gemeinsamen Mythos und erklärt die Wahrheit. Verlängert werden, wie das Buch wächst.

Alle erstellen und Anweisungen für die Tabellen aus dem Buch einfügen.