Ich kenne die Hauptunterschiede zwischen geclusterten und nicht geclusterten Indizes und verstehe, wie sie tatsächlich funktionieren. Ich verstehe, wie geclusterte und nicht geclusterte Indizes die Leseleistung verbessern. Ich bin mir jedoch nicht sicher, aus welchen Gründen ich einen über den anderen wählen würde.
Beispiel: Wenn eine Tabelle keinen Clustered-Index hat, sollte man einen Nicht-Clustered-Index erstellen und was ist der Vorteil davon?
Antworten:
Ich möchte nur ein Wort der Warnung einbringen: Bitte wählen Sie Ihren Clustered-Index sehr sorgfältig aus ! Jede "reguläre" Datentabelle sollte einen Clustered-Index haben, da ein Clustered-Index tatsächlich viele Operationen beschleunigt - ja, beschleunigen , sogar einfügen und löschen! Aber nur, wenn Sie einen guten Clustered-Index auswählen .
Dies ist die am häufigsten replizierte Datenstruktur in Ihrer SQL Server-Datenbank. Der Clustering-Schlüssel ist auch Teil jedes nicht geclusterten Index in Ihrer Tabelle.
Bei der Auswahl eines Clustering-Schlüssels sollten Sie äußerst vorsichtig sein - es sollte sein:
schmal (4 Bytes ideal)
einzigartig (es ist schließlich der "Zeilenzeiger". Wenn Sie ihn nicht eindeutig machen, erledigt SQL Server dies im Hintergrund für Sie und kostet Sie ein paar Bytes für jeden Eintrag multipliziert mit der Anzahl der Zeilen und der Anzahl der nicht gruppierten Indizes Sie haben - das kann sehr teuer sein!)
statisch (niemals ändern - wenn möglich)
Idealerweise immer größer, damit Sie nicht zu einer schrecklichen Indexfragmentierung kommen (eine GUID ist das genaue Gegenteil eines guten Clustering-Schlüssels - aus diesem speziellen Grund).
es sollte nicht nullbar sein und idealerweise auch eine feste Breite haben - a
varchar(250)
macht einen sehr schlechten Clustering-SchlüsselAlles andere sollte hinter diesen Punkten wirklich die zweite und dritte Bedeutungsebene haben ...
Sehen Sie sich einige Blog-Beiträge von Kimberly Tripp ( Die Königin der Indexierung ) zu diesem Thema an - alles, was sie in ihrem Blog geschrieben hat, ist von unschätzbarem Wert - lesen Sie es, verdauen Sie es - leben Sie danach!
quelle
non clustered
Index für uns? Was ist ihre Bedeutung ..?