Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 173|Atbildi: 0

[Padomi] SQL Server datu bāzes tabulas rindu saspiešana un lappušu saspiešana

[Kopēt saiti]
Publicēts 09.01.2026 11:20:06 | | | |
Prasības: SQL Server datu bāzē ir tabula (piemēram, žurnāla tabula, pieprasījumu žurnāla tabula), kas aizņem ļoti lielu vietu diskā, varbūt simtiem GB, kā samazināt tabulas vietas izmantošanu? Datu saspiešanu (vietas taupīšanu) var iespējot ļoti atkārtotam tekstam (piemēram, HTML, JSON, žurnāliem).

ROW saspiešana

Saspiešana mainīs datu fizisko glabāšanu, bet ne datu loģisko struktūru. Līnijas saspiešanas process:

Katras kolonnas datu tipa identificēšana un konvertēšana mainīgā garumā
Visbeidzot, krātuves vietas pieprasījumu apjoms tiek samazināts līdz faktiskajam pieprasījumam
Pēc saspiešanas katrā lapā saglabāto datu apjoms tiek palielināts
Pēc saspiešanas samaziniet metadatu apjomu
Piemēram, ja kolonnas datu tips ir smallint, sistēma pēc noklusējuma piešķir 2 baitus
Bet patiesībā tiek izmantots tikai 1 baits vietas, un, ja uz galda ir iespējota saspiešana, to var piešķirt pēc pieprasījuma

PAGE saspiešana

Lappuses saspiešana veic papildu darbības, lai uzlabotu rindu saspiešanu
Galvenās darbības: līnijas saspiešana, prefiksa saspiešana, vārdnīcas saspiešana

CPU patēriņš: PAGE saspiešana > rindu saspiešana

Tests

Izveidojiet jaunas tabulas Lietotāji1 un Lietotāji2, abas ievieto 100 000 datu vienību, un sql skripts ir šāds:
Lai skatītu galda vietas aizņemtību, kas visas ir 3,27 MB, komanda ir šāda:
Kā parādīts zemāk:



Lai skatītu tabulas Users2 saspiešanas statusu, komanda ir šāda:
Kā parādīts zemāk:



sp_estimate_data_compression_savingsAprēķiniet ietaupījumus, kas var rasties, iespējojot tabulas vai nodalījumus rindām, lapām, kolonnu krātuvēm, kolonnu krātuves arhīviem vai XML saspiešanai. Komanda ir šāda:
Rezultāts ir šāds:
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)
Lietotāji2 dbo 1 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB Indekss aizņem ≈ 3,29 MB ar pašreizējiem saspiešanas iestatījumiem
size_with_requested_compression_setting (KB) 1296 KB Aptuvenais nospiedums ≈ 1,27 MB, ja iespējojat jauno pieprasīto saspiešanas metodi, piemēram, PAGE vai ROW
Lai izpildītu lapas saspiešanu, komanda ir šāda:
Ietekmes salīdzinājums:Tabulas Users2 lielums ir 3,27 MB pirms saspiešanas un 1,23 MB pēc saspiešanas, kā parādīts attēlā:



Vizualizācija ir šāda:



Atsauce:

Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.




Iepriekšējo:Datu bāzes mīkstās dzēšanas (tombod) lauka unikalitātes jautājums
Nākamo:Windows Defender akreditācijas datu aizsardzība neatļauj izmantot saglabātos akreditācijas datus
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com