Ich habe eine große Datenbank (200 GB +), die einige Protokollinformationen enthält. Und ich möchte SELECT
Abfragen 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
Where
Klauseln (between
,>
,<
)Die Spalte wird in
ROW_NUMBER() OVER (ORDER BY d.GeneratedOnUtc asc) AS Row
Abfragen 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.
GeneratedOnUtc
Feld enthalten würden?
SELECT
Abfragen 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.