Ich habe eine große Datenbank (200 GB +), die einige Protokollinformationen enthält. Und ich möchte SELECTAbfragen und gespeicherte Prozeduren beschleunigen . Ich habe eine Tabelle mit einer GeneratedOnUtc Datums- / Uhrzeitspalte und einen nicht gruppierten Index.
Ich denke daran, es in einen Clustered-Index zu ändern.
Gründe für:
Große Datenmenge (~ 40 Millionen Zeilen)
Spalte in mehreren verwendet
WhereKlauseln (between,>,<)Die Spalte wird in
ROW_NUMBER() OVER (ORDER BY d.GeneratedOnUtc asc) AS RowAbfragen verwendet
Grund gegen:
- Eine große Anzahl von Einsätzen (~ 60.000 pro Tag) kann zu häufigen Umbauten von B-Bäumen führen.
GeneratedOnUtcFeld enthalten würden?
SELECTAbfragen und gespeicherte Prozeduren zu beschleunigen, würde ich mich an die Antwort von @ MaxVernon halten. Wenn die 60.000 Einfügungen pro Tag über mehrere Stunden verteilt sind, sollte die Spitze der Einfügungen / Sek. Keine Sorge sein, aber hier habe ich keine Daten. Das Partitionieren der Tabelle könnte ebenfalls von Interesse sein.