Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 173|Svar: 0

[Tips] SQL Server-databastabellsradkomprimering och sidkomprimering

[Kopiera länk]
Publicerad på 2026-01-09 11:20:06 | | | |
Krav: I SQL Server-databasen finns det en tabell (t.ex. loggtabell, begäran loggtabell) som tar upp ett mycket stort diskutrymme, kanske hundratals GB, hur kan man minska användningen av tabellutrymmet? Datakomprimering (utrymmesbesparing) kan aktiveras för mycket repetitiv text (t.ex. HTML, JSON, loggar).

ROW-kompression

Komprimering kommer att förändra den fysiska lagringen av datan, men inte den logiska strukturen av datan. Processen för linjekompression:

Identifiera datatypen för varje kolumn och konvertera den till en variabel längd
Slutligen reduceras mängden lagringsutrymmesförfrågningar till faktisk efterfrågan
Efter komprimering ökar mängden lagrad data på varje sida
Efter komprimering, minska mängden metadata
Till exempel, om datatypen för en kolumn är smallint, allokerar systemet som standard 2 byte
Men i verkligheten används bara 1 byte utrymme, och om komprimering är aktiverat i tabellen kan det allokeras på begäran

PAGE-komprimering

Sidkomprimering utför ytterligare operationer för att förbättra radkomprimeringen
Huvudoperationer: radkomprimering, prefixkomprimering, ordbokskomprimering

CPU-förbrukning: PAGE-komprimering > radkomprimering

Test

Skapa nya Users1- och Users2-tabeller, båda infogar 100 000 data, och SQL-skriptet är följande:
För att se bordsutrymmets beläggning, som alla är 3,27 MB, är kommandot följande:
Som visas nedan:



För att se komprimeringsstatusen för Users2-tabellen är kommandot följande:
Som visas nedan:



sp_estimate_data_compression_savingsUppskatta de besparingar som kan uppstå när du aktiverar tabeller eller partitioner för rader, sidor, kolumnlager, kolumnarkiv eller XML-komprimering. Kommandot är följande:
Resultatet är följande:
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 Indexet upptar ≈ 3,29 MB med nuvarande komprimeringsinställningar
size_with_requested_compression_setting (KB) 1296 KB Uppskattad fotavtryck ≈ 1,27 MB om du aktiverar den nya komprimeringsmetoden du begär, såsom PAGE eller ROW
För att utföra sidkomprimering är kommandot följande:
Jämförelse av effekter:Users2-tabellen är 3,27 MB före komprimering och 1,23 MB efter komprimering, som visas i figuren nedan:



Visualiseringen är följande:



Hänvisning:

Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.




Föregående:Databasens mjuka radering (tombod) fältunikhetsproblem
Nästa:Windows Defender Credential Guard tillåter inte användning av sparade inloggningsuppgifter
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com