Du vil finde andre fordele ved at normalisere dataene udover hastigheden af forespørgsler, der kører imod dem... såsom størrelse og vedligeholdelse, hvilket alene burde retfærdiggøre normalisering af det...
Det vil dog sandsynligvis også forbedre hastigheden af forespørgsler; i øjeblikket at have en enkelt række med 300 tekstkolonner er massivt, og det er næsten sikkert forbi 8.060 byte-grænse for lagring af rækkedatasiden
... og bliver i stedet gemt i ROW_OVERFLOW_DATA
eller LOB_DATA
Tildelingsenheder.
Ved at reducere størrelsen af hver række gennem normalisering, såsom at erstatte redundante tekstdata med en TINYINT
fremmed nøgle, og ved også at fjerne kolonner, der ikke er afhængige af denne store tabels primære nøgle, til en anden tabel, bør dataene ikke længere flyde over, og du vil også være i stand til at gemme flere rækker pr. side.
For så vidt angår overhead tilføjet ved at udføre JOIN
for at få de normaliserede data... hvis du korrekt indekserer dine tabeller, burde dette ikke tilføje en væsentlig mængde overhead. Men hvis det tilføjer en uacceptabel overhead, kan du derefter selektivt denormalisere dataene efter behov.