sql >> Database >  >> RDS >> Sqlserver

Een extreem grote tafel normaliseren

Naast de snelheid van de query's die er tegenaan lopen, zult u andere voordelen ondervinden van het normaliseren van de gegevens... zoals grootte en onderhoudbaarheid, wat alleen al zou moeten rechtvaardigen om het te normaliseren...

Het zal echter waarschijnlijk ook de snelheid van zoekopdrachten verbeteren; momenteel een enkele rij met 300 tekstkolommen is enorm, en is vrijwel zeker voorbij de 8060 bytelimiet voor het opslaan van de rijgegevenspagina ... en wordt in plaats daarvan opgeslagen in de ROW_OVERFLOW_DATA of LOB_DATA Toewijzingseenheden.

Door de grootte van elke rij te verkleinen door normalisatie, zoals het vervangen van overtollige tekstgegevens door een TINYINT externe sleutel, en door ook kolommen die niet afhankelijk zijn van de primaire sleutel van deze grote tabel naar een andere tabel te verwijderen, zouden de gegevens niet langer moeten overlopen en kunt u ook meer rijen per pagina opslaan.

Wat betreft de overhead die wordt toegevoegd door JOIN . uit te voeren om de genormaliseerde gegevens te krijgen ... als u uw tabellen correct indexeert, zou dit geen substantiële hoeveelheid overhead moeten toevoegen. Als het echter een onaanvaardbare overhead toevoegt, kunt u de gegevens zo nodig selectief de-normaliseren.



  1. 2 tellen(*)+groeperen op+hebben+meedoen

  2. Aggregatie van Oracle-tekenreeksen

  3. Genereer een datumbereik met SQL

  4. Uitdagingsoplossingen voor generatorreeksen - deel 1