Ich stimme Cade Roux zu .
Dieser Artikel soll Sie auf den richtigen Weg bringen:
Zu beachten ist, dass Clustered-Indizes einen eindeutigen Schlüssel (eine Identitätsspalte, die ich empfehlen würde) als erste Spalte haben sollten. Grundsätzlich hilft es Ihnen, Ihre Daten am Ende des Index einzufügen und nicht viele Festplatten-E / A- und Seitensplits zu verursachen.
Zweitens, wenn Sie andere Indizes für Ihre Daten erstellen und diese geschickt erstellt werden, werden sie wiederverwendet.
Stellen Sie sich beispielsweise vor, Sie durchsuchen eine Tabelle in drei Spalten
Bundesland, Landkreis, Postleitzahl.
- Sie suchen manchmal nur nach Bundesland.
- Sie suchen manchmal nach Bundesstaat und Landkreis.
- Sie suchen häufig nach Bundesstaat, Landkreis, Postleitzahl.
Dann ein Index mit Bundesland, Landkreis, Postleitzahl. wird in allen drei Suchvorgängen verwendet.
Wenn Sie häufig nur nach zip suchen, wird der obige Index nicht verwendet (ohnehin von SQL Server), da zip der dritte Teil dieses Index ist und der Abfrageoptimierer diesen Index nicht als hilfreich ansieht.
Sie können dann einen Index nur für Zip erstellen, der in dieser Instanz verwendet wird.
Übrigens können wir die Tatsache nutzen, dass bei der mehrspaltigen Indizierung die erste Indexspalte immer für die Suche verwendet werden kann. Wenn Sie nur nach "Status" suchen, ist sie effizient, aber nicht so effizient wie der Status "Einspaltiger Index ein" '
Ich denke, die Antwort, nach der Sie suchen, ist, dass es von Ihren where-Klauseln Ihrer häufig verwendeten Abfragen und auch von Ihren Gruppen nach abhängt.
Der Artikel wird viel helfen. :-)