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
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%
Tags und Links sql-server include indexing database-design composite