Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 173|Svare: 0

[Tips] SQL Server databasetabell-radkomprimering og sidekomprimering

[Kopier lenke]
Publisert på 09.01.2026 11:20:06 | | | |
Krav: I SQL Server-databasen finnes det en tabell (f.eks. loggtabell, forespørselsloggtabell) som tar opp en veldig stor diskplass, kanskje hundrevis av GB, hvordan kan man redusere bruken av tabellplass? Datakomprimering (plasssparing) kan aktiveres for svært repeterende tekst (f.eks. HTML, JSON, logger).

ROW-kompresjon

Komprimering vil endre den fysiske lagringen av dataene, men ikke den logiske strukturen til dataene. Prosessen med linjekomprimering:

Identifiser datatypen for hver kolonne og konverter den til variabel lengde
Til slutt reduseres mengden lagringsplassforespørsler til faktisk etterspørsel
Etter komprimering øker mengden lagrede data på hver side
Etter komprimering, reduser mengden metadata
For eksempel, hvis datatypen til en kolonne er smallint, allokerer systemet som standard 2 byte
Men i realiteten brukes bare 1 byte plass, og hvis komprimering er aktivert på tabellen, kan det tildeles på forespørsel

PAGE-komprimering

Sidekomprimering utfører ekstra operasjoner for å forbedre radkomprimeringen
Hovedoperasjoner: linjekomprimering, prefikskomprimering, ordbokkomprimering

CPU-forbruk: PAGE-komprimering > radkomprimering

Prøve

Opprett nye Users1- og Users2-tabeller, begge setter inn 100 000 databiter, og SQL-skriptet er som følger:
For å se bordplassen, som alle er 3,27 MB, er kommandoen som følger:
Som vist nedenfor:



For å se komprimeringsstatusen til Users2-tabellen, er kommandoen som følger:
Som vist nedenfor:



sp_estimate_data_compression_savingsAnslå besparelsene som kan oppstå når du aktiverer tabeller eller partisjoner for rader, sider, kolonnelagre, kolonnearkiver eller XML-komprimering. Kommandoen er som følger:
Resultatet er som følger:
object_name schema_name index_id partition_number size_with_current_compression_setting(KB) size_with_requested_compression_setting(KB)        sample_size_with_current_compression_setting(KB) sample_size_with_requested_compression_setting(KB)
Users2 dbo 1 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB Indeksen opptar ≈ 3,29 MB med de nåværende komprimeringsinnstillingene
size_with_requested_compression_setting (KB) 1296 KB Estimert fotavtrykk ≈ 1,27 MB hvis du aktiverer den nye komprimeringsmetoden du ber om, som PAGE eller ROW
For å utføre sidekomprimering er kommandoen som følger:
Sammenligning av effekter:Users2-tabellen er 3,27 MB før komprimering og 1,23 MB etter komprimering, som vist i figuren nedenfor:



Visualiseringen er som følger:



Referanse:

Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.




Foregående:Database soft deletion (tombod) feltunikhetsproblem
Neste:Windows Defender Credential Guard tillater ikke bruk av lagrede legitimasjoner
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com