Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 173|Antwoord: 0

[Tips] SQL Server-databasetabellencompressie en paginacompressie

[Link kopiëren]
Geplaatst op 09-01-2026 11:20:06 | | | |
Vereisten: In een SQL Server-database is er een tabel (bijvoorbeeld logtabel, verzoek-logtabel) die een zeer grote schijfruimte inneemt, misschien honderden GB, hoe kun je het gebruik van tabelruimte verminderen? Datacompressie (ruimtebesparing) kan worden ingeschakeld voor sterk repetitieve tekst (bijv. HTML, JSON, logs).

ROW-compressie

Compressie verandert de fysieke opslag van de data, maar niet de logische structuur van de data. Het proces van lijncompressie:

Identificeer het datatype van elke kolom en zet dit om naar een variabele lengte
Ten slotte wordt het aantal opslagruimteverzoeken teruggebracht tot de daadwerkelijke vraag
Na compressie wordt de hoeveelheid opgeslagen data op elke pagina vergroot
Na compressie verminder je de hoeveelheid metadata
Als bijvoorbeeld het datatype van een kolom smallint is, wijst het systeem standaard 2 bytes toe
Maar in werkelijkheid wordt er slechts 1 byte ruimte gebruikt, en als compressie op de tafel is ingeschakeld, kan deze op aanvraag worden toegewezen

PAGE-compressie

Paginacompressie voert extra bewerkingen uit om de rijcompressie te verbeteren
Belangrijkste bewerkingen: lijncompressie, prefixcompressie, woordenboekcompressie

CPU-verbruik: PAGE-compressie > rijcompressie

Test

Maak een nieuwe Users1- en Users2-tabel aan, beide voegen 100.000 datastukken in, en het SQL-script is als volgt:
Om de bezetting van de tafel te bekijken, die allemaal 3,27 MB bedraagt, volgt het commando:
Zoals hieronder getoond:



Om de compressiestatus van de Users2-tabel te bekijken, is het commando als volgt:
Zoals hieronder getoond:



sp_estimate_data_compression_savingsSchat de besparingen die kunnen ontstaan wanneer je tabellen of partities inschakelt voor rijen, pagina's, kolomopslagplaatsen, kolomopslagarchieven of XML-compressie. Het commando is als volgt:
De output is als volgt:
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 De index beslaat ≈ 3,29 MB met de huidige compressie-instellingen
size_with_requested_compression_setting (KB) 1296 KB Geschatte footprint ≈ 1,27 MB als je de nieuwe compressiemethode inschakelt die je aanvraagt, zoals PAGE of ROW
Om paginacompressie uit te voeren, is het commando als volgt:
Vergelijking van effecten:De Users2-tabel is 3,27 MB vóór compressie en 1,23 MB na compressie, zoals getoond in de onderstaande figuur:



De visualisatie is als volgt:



Referentie:

De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.




Vorig:Database soft deletion (tombod) velduniciteitsprobleem
Volgend:Windows Defender Credential Guard staat het gebruik van opgeslagen inloggegevens niet toe
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com