Požadavky: V databázi SQL Server existuje tabulka (např. logovací tabulka, tabulka požadavků), která zabírá velmi velké místo na disku, možná stovky GB, jak snížit využití místa v tabulce? Komprese dat (úspora místa) může být povolena pro vysoce opakující se text (např. HTML, JSON, logy).
Komprese řad
Komprese změní fyzické úložiště dat, ale ne jejich logickou strukturu. Proces komprese linií:
Identifikujte datový typ každého sloupce a převeďte jej na proměnnou délku Nakonec se počet požadavků na úložný prostor snižuje na skutečnou poptávku Po kompresi se množství uložených dat na každé stránce zvýší Po kompresi snižte množství metadat Například pokud je datový typ sloupce smallint, systém ve výchozím nastavení přidělí 2 bajty Ve skutečnosti se však používá pouze 1 bajt prostoru, a pokud je komprese na tabulce povolena, lze ji alokovat na vyžádání
Komprese PAGE
Komprese stránek provádí další operace pro zlepšení komprese řádků Hlavní operace: komprese řádků, komprese prefixů, komprese slovníku
Spotřeba CPU: komprese PAGE > komprese řádků
Test
Vytvořte nové tabulky Users1 a Users2, obě vložíte 100 000 dat, a SQL skript je následující:
Pro zobrazení obsazenosti místa v tabulce, která má všechny 3,27 MB, je příkaz následující:
Jak je uvedeno níže:
Pro zobrazení stavu komprese tabulky Users2 je příkaz následující:
Jak je uvedeno níže:
sp_estimate_data_compression_savingsOdhadněte úspory, které mohou nastat, když povolíte tabulky nebo oddíly pro řádky, stránky, úložiště sloupců, archivy sloupců nebo kompresi XML. Příkaz je následující:
Výstup je následující:
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 zabírá ≈ 3,29 MB s aktuálními nastaveními komprese size_with_requested_compression_setting (KB) 1296 KB Odhadovaná plocha ≈ 1,27 MB, pokud povolíte novou kompresní metodu, kterou požadujete, například PAGE nebo ROW Pro provedení komprese stránky je příkaz následující:
Porovnání účinků:Tabulka Users2 má před kompresí 3,27 MB a po kompresi 1,23 MB, jak je znázorněno na obrázku níže:
Vizualizace je následující:
Odkaz:
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné. |