Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 173|Odpověď: 0

[Tipy] Komprese řádků tabulek v databázi SQL Server a komprese stránek

[Kopírovat odkaz]
Zveřejněno 09.01.2026 11:20:06 | | | |
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é.




Předchozí:Problém s unikátností pole v databázi soft deletion (tombod)
Další:Windows Defender Credential Guard neumožňuje použití uložených přihlašovacích údajů
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com