Požiadavky: V databáze SQL Server existuje tabuľka (napr. log tabuľka, tabuľka požiadaviek log), ktorá zaberá veľmi veľký priestor na disku, možno stovky GB, ako znížiť využitie priestoru v tabuľke? Kompresia dát (úspora miesta) môže byť povolená pre veľmi opakujúci sa text (napr. HTML, JSON, logy).
Kompresia ROW
Kompresia zmení fyzické úložisko dát, ale nie ich logickú štruktúru. Proces kompresie čiar:
Identifikujte dátový typ každého stĺpca a preveďte ho na variabilnú dĺžku Nakoniec sa množstvo požiadaviek na úložný priestor zníži na skutočný dopyt Po kompresii sa množstvo uložených dát na každej stránke zvýši Po kompresii znížte množstvo metadát Napríklad, ak je dátový typ stĺpca smallint, systém štandardne pridelí 2 bajty V skutočnosti sa však využíva iba 1 bajt priestoru a ak je kompresia na tabuľke povolená, môže byť alokovaná na požiadanie
Kompresia PAGE
Kompresia stránky vykonáva ďalšie operácie na zlepšenie kompresie riadkov Hlavné operácie: kompresia riadkov, kompresia prefixov, kompresia slovníka
Spotreba CPU: kompresia PAGE > kompresia riadkov
Test
Vytvorte nové tabuľky Users1 a Users2, obe vložíte 100 000 dát, a SQL skript je nasledovný:
Na zobrazenie obsadenia miesta v tabuľke, ktoré majú všetky 3,27 MB, je príkaz nasledovný:
Ako je uvedené nižšie:
Na zobrazenie stavu kompresie tabuľky Users2 je príkaz nasledovný:
Ako je uvedené nižšie:
sp_estimate_data_compression_savingsOdhadnite úspory, ktoré môžu nastať, keď povolíte tabuľky alebo partície pre riadky, stránky, úložiská stĺpcov, archívy úložiska stĺpcov alebo kompresiu XML. Príkaz je nasledovný:
Výstup je nasledovný:
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 Index zaberá ≈ 3,29 MB s aktuálnymi nastaveniami kompresie size_with_requested_compression_setting (KB) 1296 KB Odhadovaná plocha ≈ 1,27 MB, ak povolíte novú požadovanú metódu kompresie, napríklad PAGE alebo ROW Na vykonanie kompresie stránky je príkaz nasledovný:
Porovnanie účinkov:Tabuľka Users2 je 3,27 MB pred kompresiou a 1,23 MB po kompresii, ako je znázornené na obrázku nižšie:
Vizualizácia je nasledovná:
Referencia:
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné. |