Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 173|Odgovoriti: 0

[Napitnine] Stiskanje vrstic tabel baze podatkov SQL Server in stiskanje strani

[Kopiraj povezavo]
Objavljeno na 9. 01. 2026 11:20:06 | | | |
Zahteve: V bazi podatkov SQL Server obstaja tabela (npr. log tabela, tabela log zahtev), ki zavzame zelo velik prostor na disku, morda več sto GB, kako zmanjšati porabo prostora v tabeli? Stiskanje podatkov (varčevanje s prostorom) je mogoče omogočiti za zelo ponavljajoče se besedilo (npr. HTML, JSON, dnevniki).

Kompresija vrstic

Stiskanje spremeni fizično shranjevanje podatkov, ne pa tudi logične strukture podatkov. Postopek kompresije linij:

Identificirajte tip podatkov vsakega stolpca in ga pretvorite v spremenljivo dolžino
Nazadnje se količina zahtevkov za skladiščni prostor zmanjša na dejansko povpraševanje
Po stiskanju se količina shranjenih podatkov na vsaki strani poveča
Po stiskanju zmanjšajte količino metapodatkov
Na primer, če je podatkovni tip stolpca smallint, sistem privzeto dodeli 2 bajta
V resnici pa se uporablja le 1 bajt prostora, in če je stiskanje omogočeno na tabeli, ga je mogoče razporediti po potrebi

Stiskanje PAGE

Stiskanje strani izvaja dodatne operacije za izboljšanje stiskanja vrstic
Glavne operacije: stiskanje vrstic, stiskanje predpon, stiskanje v slovarju

Poraba procesorja: stiskanje strani > stiskanje vrstic

Preizkus

Ustvarite novo tabelo Users1 in Users2, obe vstavite 100.000 podatkov, SQL skripta pa je naslednja:
Za ogled zasedenosti prostora v tabeli, ki znaša vse 3,27 MB, je ukaz naslednji:
Kot je prikazano spodaj:



Za ogled stanja stiskanja tabele Users2 je ukaz naslednji:
Kot je prikazano spodaj:



sp_estimate_data_compression_savingsOcenite prihranke, ki se lahko zgodijo, ko omogočite tabele ali particije za vrstice, strani, shrambe stolpcev, arhive stolpčnega shranjevanja ali stiskanje XML. Ukaz je naslednji:
Izhod je naslednji:
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 Indeks zavzema ≈ 3,29 MB z trenutnimi nastavitvami stiskanja
size_with_requested_compression_setting (KB) 1296 KB Ocenjena velikost ≈ 1,27 MB, če omogočite novo metodo stiskanja, ki jo zahtevate, kot sta PAGE ali ROW
Za izvedbo stiskanja strani je ukaz naslednji:
Primerjava učinkov:Tabela Users2 je 3,27 MB pred stiskanjem in 1,23 MB po stiskanju, kot je prikazano na spodnji sliki:



Vizualizacija je naslednja:



Referenčni:

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.




Prejšnji:Težava z unikatnostjo polja pri mehkem brisanju baze podatkov (tombod)
Naslednji:Windows Defender Credential Guard ne dovoljuje uporabe shranjenih poverilnic
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com