Indizieren von SQL Server-Datums- / Uhrzeitspalten für die Leistung

8

Erhöht das Hinzufügen eines Index zu einer datetimeSpalte die Leistung, wenn WHERE myDateColumn BETWEEN @startDate and @endDatehäufig eine Klausel auf diese datetimeSpalte angewendet wird?

Wenn ja, sollte der Index geclustert oder nicht geclustert sein und warum?

Petrus Theron
quelle
Wenn Sie Bereichsabfragen durchführen, ist eine datetimeSpalte häufig eine sehr gute Verwendung einer Clustered-Index-IMO.
Martin Smith
Es könnte - je nachdem, was Sie aus dieser Tabelle auswählen, und je nachdem, wie selektiv Ihr Datumsbereich ist ...
marc_s

Antworten:

5

Durch Hinzufügen eines Index wird die Leistung von SELECT-Anweisungen erhöht, vorausgesetzt, Ihr Datumsbereich ist nicht groß genug, um einen Index-Scan im Gegensatz zu einer Index-Suche zu erzwingen. Durch Hinzufügen eines Index wird die Leistung bei INSERT-, UPDATE- und DELETE-Vorgängen verringert, da dieser neue Index beibehalten werden muss. Die gruppierte / nicht gruppierte Frage hängt stark davon ab, wie viele andere Spalten aus der Tabelle Sie in die SELECT-Klausel aufnehmen.

Wenn diese Frage mehr als eine Hausaufgabenfrage ist und Sie Beispiele haben, die Sie aufnehmen möchten, würde dies dazu beitragen, dass meine Antwort vollständiger wird.

Hoffe das hilft,

Matt

Matt M.
quelle