Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Normaliser une table extrêmement grande

Vous trouverez d'autres avantages à normaliser les données en plus de la rapidité des requêtes qui s'y rapportent... comme la taille et la maintenabilité, qui à elles seules devraient justifier de les normaliser...

Cependant, cela améliorera probablement également la vitesse des requêtes. avoir actuellement une seule ligne contenant 300 colonnes de texte est énorme et dépasse presque certainement le Limite de 8 060 octets pour le stockage de la page de données de ligne ... et est à la place stocké dans le ROW_OVERFLOW_DATA ou LOB_DATA Unités d'allocation.

En réduisant la taille de chaque ligne grâce à la normalisation, par exemple en remplaçant les données textuelles redondantes par un TINYINT clé étrangère, et en supprimant également les colonnes qui ne dépendent pas de la clé primaire de cette grande table dans une autre table, les données ne devraient plus déborder et vous pourrez également stocker plus de lignes par page.

En ce qui concerne la surcharge ajoutée en effectuant JOIN pour obtenir les données normalisées ... si vous indexez correctement vos tables, cela ne devrait pas ajouter une quantité substantielle de frais généraux. Cependant, si cela ajoute une surcharge inacceptable, vous pouvez alors dénormaliser sélectivement les données si nécessaire.