Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Normalisieren einer extrem großen Tabelle

Abgesehen von der Geschwindigkeit der Abfragen, die darauf ausgeführt werden, werden Sie weitere Vorteile der Normalisierung der Daten finden ... wie Größe und Wartbarkeit, die allein eine Normalisierung rechtfertigen sollten ...

Es wird jedoch wahrscheinlich auch die Geschwindigkeit von Abfragen verbessern; derzeit eine einzelne Zeile mit 300 Textspalten zu haben, ist enorm und liegt mit ziemlicher Sicherheit über dem 8.060 Byte-Grenze zum Speichern der Zeilendatenseite ... und wird stattdessen in ROW_OVERFLOW_DATA gespeichert oder LOB_DATA Zuordnungseinheiten.

Indem die Größe jeder Zeile durch Normalisierung reduziert wird, z. B. durch Ersetzen redundanter Textdaten durch ein TINYINT Fremdschlüssel, und indem Sie auch Spalten, die nicht vom Primärschlüssel dieser großen Tabelle abhängig sind, in eine andere Tabelle entfernen, sollten die Daten nicht mehr überlaufen, und Sie können auch mehr Zeilen pro Seite speichern.

Was den Overhead betrifft, der durch Ausführen von JOIN hinzugefügt wird um die normalisierten Daten zu erhalten ... wenn Sie Ihre Tabellen richtig indizieren, sollte dies keinen erheblichen Aufwand verursachen. Wenn es jedoch einen inakzeptablen Overhead hinzufügt, können Sie die Daten nach Bedarf selektiv denormalisieren.