Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 173|Răspunde: 0

[Bacșișuri] Compresia de rânduri a tabelelor de baze de date SQL Server și comprimarea paginilor

[Copiază linkul]
Postat pe 09.01.2026 11:20:06 | | | |
Cerințe: În baza de date SQL Server, există un tabel (de exemplu, tabel de log, tabel de log de cereri) care ocupă un spațiu de disc foarte mare, poate sute de GB, cum să reduci utilizarea spațiului de tabel? Compresia datelor (economisirea spațiului) poate fi activată pentru text foarte repetitiv (de exemplu, HTML, JSON, jurnale).

Compresia ROW

Compresia va schimba stocarea fizică a datelor, dar nu și structura logică a acestora. Procesul de compresie a liniilor:

Identificați tipul de date al fiecărei coloane și convertiți-l la o lungime variabilă
În cele din urmă, cantitatea de spațiu de stocare solicitată este redusă la cererea reală
După compresie, cantitatea de date stocate pe fiecare pagină crește
După compresie, reduceți cantitatea de metadate
De exemplu, dacă tipul de date al unei coloane este smallint, sistemul alocă implicit 2 octeți
Dar, în realitate, se folosește doar 1 octet de spațiu, iar dacă compresia este activată pe masă, acesta poate fi alocat la cerere

Compresia PAGE

Compresia paginilor efectuează operații suplimentare pentru a îmbunătăți compresia rândurilor
Operațiuni principale: compresia liniei, compresia prefixului, compresia dicționarului

Consum CPU: compresia PAGE > compresia rândurilor

Testa

Creează un nou tabel Users1 și Users2, fiecare inserând 100.000 de date și scriptul sql este următorul:
Pentru a vedea ocuparea spațiului tabelelor, toate având 3,27 MB, comanda este următoarea:
Așa cum se arată mai jos:



Pentru a vizualiza starea compresiei tabelului Users2, comanda este următoarea:
Așa cum se arată mai jos:



sp_estimate_data_compression_savingsEstimează economiile care pot apărea atunci când activezi tabele sau partițiile pentru rânduri, pagini, depozite de coloane, arhive de depozit de coloane sau compresie XML. Comanda este următoarea:
Rezultatul este următorul:
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)
Utilizatori2 dbo 1 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB Indicele ocupă ≈ 3,29 MB cu setările actuale de compresie
size_with_requested_compression_setting (KB) 1296 KB Amprenta estimată ≈ 1,27 MB dacă activezi noua metodă de compresie pe care o soliciti, cum ar fi PAGE sau ROW
Pentru a executa compresia paginii, comanda este următoarea:
Comparație a efectelor:Tabelul Users2 are 3,27 MB înainte de compresie și 1,23 MB după compresie, așa cum se arată în figura de mai jos:



Vizualizarea este următoarea:



Referință:

Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.




Precedent:Problema de unicitate a câmpului de ștergere soft (tombod) a bazei de date
Următor:Windows Defender Credential Guard nu permite utilizarea acreditărilor salvate
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com