SQL Server Indexing Basics

Ich habe Ihre Tipps für die Indizierung gesehen und ich denke, sie sind groß. Ich bin relativ neu in SQL Server und die Grundlagen verstehen müssen. Ich brauche einige zusätzliche Hintergrundinformationen zu verstehen, welche Arten von Indizierungsoptionen zur Verfügung stehen. Hoffentlich kann mich führen in einige der zusätzlichen Tipps. Kannst du mir helfen?







Wie Sie zu entwerfen und entwickeln Datenbanken beginnen, sollten Sie die Indizierung in diesen Bemühungen einzubeziehen. Eine durchdachte Indexierungsstrategie kann erheblich die Datenzugriffsschicht und allgemeine Benutzerfreundlichkeit verbessern. Doch für die Datenbankindizes Pflege ist kein einmaliges Ereignis. Wie Ihre Anwendung sowie ändert sich, wenn Benutzer starten Sie die Anwendung in neue und andere Möglichkeiten zu nutzen, müssen die Indizes um diese Änderungen widerzuspiegeln. Zusätzlich kann, wie mit allem anderen müssen Indizes beibehalten werden. So sollten Sie Ihre Indizes in der regelmäßigen Wartung einbezogen haben.

Mit all dies gesagt ist, wollen wir einige der grundlegenden Indexinformationen zur Deckung beginnen. In diesem Tipp werden wir versuchen, eine Reihe von komplexen und voneinander abhängigen Themen zu vereinfachen. Als solches ist das Ziel dieser Spitze, die Themen einführen und zusätzliche Hinweise für eine erweiterte Informationen. Wenn Sie für mehr Fortgeschrittene und Informationen suchen, überprüfen Sie die Indizierung Kategorie aus. Darüber hinaus überprüfen Sie diese Ressourcen aus, wenn Sie die Volltextsuche oder XML-Indizes suchen in zu herkömmlicher relationaler Modul Indizes gegenüber. Mit diesem wird gesagt, sie springt in!

Clustered-Indizes

Ein Clustered-Index speichert die Daten für die Tabelle auf der Basis der Spalten in der Anweisung create index definiert. Als solches kann nur ein Clustered-Index für die Tabelle definiert werden, da die Daten nur dann gespeichert werden können und sortierten eine Möglichkeit, pro Tisch. Aufgrund der Lagerung und Sortierung Auswirkungen, sollten Sie die beste Spalte für diesen Index sorgfältig zu bestimmen.

Obwohl viele Implementierungen nur eine einzige Spalte für den Clustered-Index haben, in Wirklichkeit kann ein Clustered-Index mehrere Spalten haben. Genau darauf achten, die richtigen Spalten auszuwählen, basierend auf, wie die Daten verwendet wird. Die Anzahl der Spalten in dem gruppierten (oder nicht geclustert) Index können erhebliche Auswirkungen auf die Leistung haben mit schweren INSERT, UPDATE und DELETE-Aktivität in Ihrer Datenbank.

Eine uralte Frage ist, ob eine Tabelle, die einen gruppierten Index haben muss. Die Antwort ist nein, aber in den meisten Fällen ist es eine gute Idee, einen Clustered-Index auf dem Tisch haben, um die Daten in einer bestimmten Reihenfolge zu speichern. Wenn eine Tabelle nur nicht gruppierte Indizes hat, ist es ein Haufen genannt. Weitere Informationen finden Sie auf Clustered Tabellen vs Heap-Tabellen.







Nicht gruppierte Indizes

Ein nicht gruppierten Index kann aus einer oder mehreren Spalten bestehen, aber der Datenspeicher ist nicht abhängig von diesem Index-Anweisung erzeugen, wie im Fall der gruppierten Index ist. Für eine Tabelle ohne Clustered-Index, der einen Haufen, die nicht gruppierten Indexpunkte der Reihe (data) bezeichnet wird. In dem Umstand, wo der Tisch einen gruppierten Index hat, dann die nicht gruppierten Index zeigt auf den gruppierten Index für die Zeile (Daten).

Füllfaktor

Wenn Sie einen Index der Füllfaktor Option erstellen gibt an, wie voll die Blattebene Seiten sind, wenn der Index erstellt wird oder wieder aufgebaut. Gültige Werte sind 0 bis 100. Diese Werte stellen einen Prozentsatz der Blattebene Seiten verwendet wird, wenn der Index erstellt wird oder wieder aufgebaut. Ein Füllfaktor von 0 bedeutet, dass alle der Blattebene Seiten voll sind. Das gleiche gilt mit einem Füllfaktor gleich 100.

Hier sind ein paar Aspekte zu berücksichtigen, wenn Sie Ihren Füllfaktor wählen:

Weitere Informationen zu den Füllfaktor Erwägungen finden Sie unter:

bedecken Indizes

Index bestellen

Der Index Bestellung kann entweder in aufsteigender oder absteigender Reihenfolge. Je nachdem, wie Sie Ihre Abfragen geben diktiert die Daten, wie der Index erstellt werden soll. Nachdem die Bestellung korrekt Index kann die Leistung von Abfragen in vielen Fällen besonders verbessern, wenn Sie einen abdeckenden Index haben. Schauen Sie sich acht Beispiele in den Gebäude SQL Server Indizes in aufsteigende vs absteigende Sortierung Tipp für detaillierte Performance-Metriken.

Instandhaltung

Indizes, wie gerade so ziemlich alles andere in der Welt, brauchen Wartung. Indizes müssen Wartung, weil sie fragmentiert werden. F ragmentation durch INSERT, UPDATE und DELETE-Aktivität auf einer Tabelle Splitting Seiten verursacht, so dass die logische und physische Reihenfolge der Seiten nicht übereinstimmen. Um dieses Problem zu beheben, fragmentierte Indizes sollte in regelmäßigen Abständen wieder aufgebaut werden.

Bei MSSQLTips kümmern wir uns sehr viel über die Fragmentierung, so überprüfen Sie diese Tipps:

Zusatzoptionen

Obwohl wir nur die Oberfläche mit Indizes gekratzt haben, wollen wir auch sicherstellen, dass Sie die folgenden Indizierungs Themen bewusst sind:

Nächste Schritte

Große Spitze. Half mir Indizes viel verstehen. Ich habe nur eine Frage, wenn Sie sagen, „aber in den meisten Fällen ist es eine gute Idee, einen Clustered-Index auf dem Tisch haben, um die Daten in einer bestimmten Reihenfolge zu speichern“, alles, was ich über bestimmte Reihenfolge in SQL Server lesen sagen, dass wir müssen keine besonderen oner betrachten. Können Sie erklären, dass ein bisschen mehr sein? Danke im Voraus!

Vielen Dank für die Eingabe. Hier ist eine Spitze, die einen besseren gruppierten Index auf Daten aus der DMVs basierend bestimmen können.

Ich hätte haben Verweise auf Artikel gesehen mag sagen, welche Spalte (n) in dem gruppierten Index sein sollte - zum Beispiel Spalte (n) häufig in einem Bereich suchen oder in einer ORDER BY-Klausel verwendet. Ebenso Referenzen für Artikel sagen, welche Spalte (n) einen nicht gruppierten Index machen gegeben werden soll.

Der Satz „Indizes Abdeckung besteht typischerweise aus zwei oder mehr Spalten und hat alle Indizes benötigt, um eine Abfrage zu erfüllen.“ sagen sollte wirklich „Covering Indizes alle Spalten enthalten benötigt, um eine Abfrage zu erfüllen.“ Sie sollten auch zwischen der Schlüsselspalte (n), verwendet in der WHERE-Prädikat und die Spalten in der SELECT-Klausel, im Preis enthalten * * in der Blattebene distinguised haben.

SQL Server Indexing Basics







In Verbindung stehende Artikel