Composite-Index und INCLUDE-Covering-Index in SQL Server

8

Ich verstehe, dass zusammengesetzte Indizes immer von links nach rechts verwendet werden (zB wenn ein Index auf Stadt, Staat, WHERE Stadt="Blah" oder WHERE Stadt="Blah" UND Staat="AA", aber WO-Staat)="AA" würde nicht).

Gilt das gleiche Prinzip für INCLUDE-Indizes?

Vielen Dank im Voraus!

Ton

    
PseudoToad 07.10.2010, 16:59
quelle

2 Antworten

13

Mit Include-Spalten können nur Spalten für den SELECT -Anteil der Abfrage bereitgestellt werden. Sie können nicht als Teil des Index zum Filtern verwendet werden.

BEARBEITEN : Um meinen Punkt zu verdeutlichen, betrachten Sie dieses Beispiel:

Ich erstelle eine einfache Tabelle und fülle sie:

%Vor%

Betrachten Sie nun diese 3 Indizes und ihre entsprechenden Ausführungspläne für ein einfaches SELECT.

%Vor%

Fall 1 : Ein Index für gerade ID führt zu einem TABLE SCAN.

%Vor%

Fall 2 : Ein Index für die ID einschließlich des Namens. Etwas besser, weil der Index die Abfrage abdeckt, aber ich bekomme trotzdem eine SCAN-Operation.

%Vor%

Fall 3 : Ein Index für Name einschließlich ID. Das ist das beste. Der Index baut auf der Spalte in meiner WHERE-Klausel auf, daher erhalte ich eine SEEK-Operation, und der Index deckt die Abfrage wegen der eingeschlossenen Spalte ab.

%Vor%

    
Joe Stefanelli 07.10.2010, 17:03
quelle
1

Nein, Felder sind nicht geordnet.

Hier sind einige zusätzliche Design-Überlegungen:

Ссылка

    
BradC 07.10.2010 17:01
quelle