Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 173|Atsakyti: 0

[Patarimai] SQL serverio duomenų bazės lentelės eilučių glaudinimas ir puslapio glaudinimas

[Kopijuoti nuorodą]
Paskelbta 2026-01-09 11:20:06 | | | |
Reikalavimai: SQL serverio duomenų bazėje yra lentelė (pvz., žurnalo lentelė, užklausų žurnalo lentelė), kuri užima labai daug vietos diske, galbūt šimtus GB, kaip sumažinti lentelės vietos naudojimą? Duomenų glaudinimas (vietos taupymas) gali būti įjungtas labai pasikartojančiam tekstui (pvz., HTML, JSON, žurnalams).

ROW suspaudimas

Suspaudimas pakeis fizinį duomenų saugojimą, bet ne loginę duomenų struktūrą. Linijos suspaudimo procesas:

Kiekvieno stulpelio duomenų tipo nustatymas ir konvertavimas į kintamąjį ilgį
Galiausiai saugyklos vietos užklausų kiekis sumažinamas iki faktinio poreikio
Po suspaudimo kiekviename puslapyje saugomų duomenų kiekis padidėja
Po glaudinimo sumažinkite metaduomenų kiekį
Pavyzdžiui, jei stulpelio duomenų tipas yra smallint, sistema pagal numatytuosius nustatymus paskirsto 2 baitus
Tačiau iš tikrųjų naudojamas tik 1 baitas vietos, o jei lentelėje įjungtas glaudinimas, jį galima paskirstyti pagal poreikį

PAGE glaudinimas

Puslapio glaudinimas atlieka papildomas operacijas, kad pagerintų eilučių glaudinimą
Pagrindinės operacijos: eilutės glaudinimas, priešdėlio glaudinimas, žodyno glaudinimas

Procesoriaus suvartojimas: PAGE glaudinimas > eilučių glaudinimas

Bandymo

Sukurkite naujas lenteles Users1 ir Users2, įterpkite 100 000 duomenų vienetų, o sql scenarijus yra toks:
Norėdami peržiūrėti stalo vietos užimtumą, kuris yra 3,27 MB, komanda yra tokia:
Kaip parodyta žemiau:



Norėdami peržiūrėti lentelės Users2 glaudinimo būseną, komanda yra tokia:
Kaip parodyta žemiau:



sp_estimate_data_compression_savingsĮvertinkite, kiek galima sutaupyti įgalinus eilučių, puslapių, stulpelių saugyklų, stulpelių saugyklų archyvų lenteles arba skaidinius. Komanda yra tokia:
Išvestis yra tokia:
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)
Vartotojai2 dbo 1 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB Indeksas užima ≈ 3,29 MB su dabartiniais glaudinimo parametrais
size_with_requested_compression_setting (KB) 1296 KB Numatomas plotas ≈ 1,27 MB, jei įgalinsite naują prašomą glaudinimo metodą, pvz., PAGE arba ROW
Norėdami atlikti puslapio glaudinimą, komanda yra tokia:
Poveikio palyginimas:Lentelė Users2 yra 3,27 MB prieš glaudinimą ir 1,23 MB po glaudinimo, kaip parodyta toliau pateiktame paveikslėlyje:



Vizualizacija yra tokia:



Nuoroda:

Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.




Ankstesnis:Duomenų bazės minkšto ištrynimo (tombod) lauko unikalumo problema
Kitą:"Windows Defender Credential Guard" neleidžia naudoti išsaugotų kredencialų
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com