Můžete použít ALTER TABLE
příkaz povolit kompresi na existující tabulce na serveru SQL.
Chcete-li to provést, musíte použít REBUILD WITH
a zároveň specifikujte požadovaný typ komprese.
Příklad
Zde je příklad k demonstraci.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);
V tomto případě jsem tabulku přestavěl pomocí komprese řádků.
Následující text jej znovu sestaví pomocí komprese stránky.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);
Použít kompresi na jeden oddíl
Pokud je vaše tabulka rozdělena na oddíly, můžete určit oddíl, který se má znovu sestavit pomocí komprese.
ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW);
Jak odstranit kompresi
Kompresi můžete odstranit pomocí NONE
jako typ komprese.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);
Tabulky sloupců
Pokud používáte tabulky columnstore (tabulky uložené s seskupeným indexem columnstore), výše uvedené typy komprese neplatí. V tomto případě jsou možnosti komprese COLUMNSTORE
a COLUMNSTORE_ARCHIVE
.
Omezení/omezení
U systémových tabulek nelze povolit kompresi.
Pokud je tabulka haldou (tabulkou bez seskupeného indexu), operace opětovného sestavení pro ONLINE
režim bude jednovláknový. Pro operaci opětovného sestavení haldy s více vlákny použijte OFFLINE
režimu.
Při používání dělených tabulek také platí následující omezení:
- Pokud tabulka obsahuje nezarovnané indexy, nemůžete změnit nastavení komprese jednoho oddílu.
ALTER TABLE <table> REBUILD PARTITION ...
syntaxe znovu sestaví zadaný oddíl.ALTER TABLE <table> REBUILD WITH ...
syntaxe znovu sestaví všechny oddíly.