Was ist der Unterschied zwischen der Suche nach Clustered Index (CI) und der Suche nach Non Clustered Index (NCI)? Ist einer besser als der andere?
Der Grund, warum ich das frage, ist, dass ich eine Tabelle mit 50 Millionen Zeilen und 150 Spalten habe. Es hat eine Spalte mit dem Namen ID
Clustered Index. Es gibt ein weiteres NCI mit derselben Indexschlüssel-ID und sieben include
-d-Spalten. Es scheint mir, dass der NC-Index hier ein Duplikat ist und sicher gelöscht werden kann.
Ich möchte also einige Expertenmeinungen / Ratschläge, wenn es sicher fallen gelassen werden kann oder intakt bleiben soll.
sql-server
sql-server-2012
index-tuning
SQLPRODDBA
quelle
quelle
Antworten:
Ein nicht gruppierter Index mit denselben Schlüsseln * wie der gruppierte Index kann weiterhin nützlich sein, da der nicht gruppierte Index normalerweise kleiner und dichter ist. Denken Sie daran, dass ein Clustered-Index alle In-Row-Daten enthält, sodass er normalerweise der breiteste (am wenigsten dichte) Index ist.
* Dieselben Schlüsselspalten in derselben Reihenfolge wurden auf dieselbe Weise sortiert (auf / ab).
Bei einer Singleton-Suche (eine Suche unter Verwendung eines Gleichheitsprädikats in einem eindeutigen Index) besteht der Hauptunterschied in der angenommenen größeren Wahrscheinlichkeit, dass die Indexseite (n) benötigt wird, um festzustellen, dass sich dieser einzelne Datensatz bereits im Speicher befindet. Wenn alle Dinge gleich sind, hat ein nicht gruppierter Index mit 100 Seiten eine bessere Chance als ein gruppierter Index, der auf 10.000 Seiten gespeichert ist.
Für jede andere Art der Suche außer einem Singleton gibt es auch eine Scan-Komponente. Der Scanbereich profitiert auch von der größeren Dichte des nicht gruppierten Index (mehr Zeilen pro Seite). Selbst wenn die Seiten aus einem dauerhaften Speicher stammen müssen, ist das Lesen weniger Seiten schneller.
Sie sollten die Systemdokumentation überprüfen, die Person, die den Index hinzugefügt hat, fragen und / oder nach Codekommentaren suchen, um zu verstehen, warum dieser Index vorhanden ist. Sie müssen auch die vollständigen Indexdefinitionen einschließlich der Komprimierung sorgfältig prüfen und sich die Indexwartungsskripte ansehen. Es kann andere besondere Gründe für den nicht gruppierten Index geben (z. B. die Möglichkeit, online neu zu erstellen).
quelle