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.