Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak włączyć kompresję w istniejącej tabeli w SQL Server (T-SQL)

Możesz użyć ALTER TABLE instrukcja, aby włączyć kompresję w istniejącej tabeli w SQL Server.

Aby to zrobić, musisz użyć REBUILD WITH opcji, określając żądany typ kompresji.

Przykład

Oto przykład do zademonstrowania.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);

W tym przypadku przebudowałem tabelę za pomocą kompresji wierszy.

Poniżej odbudowuje go z kompresją strony.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);

Zastosuj kompresję do pojedynczej partycji

Jeśli twoja tabela jest podzielona na partycje, możesz określić, że partycja ma zostać odbudowana z kompresją.

ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW);

Jak usunąć kompresję

Możesz usunąć kompresję, używając NONE jako typ kompresji.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);

Tabele kolumnowe

Jeśli używasz tabel magazynu kolumn (tabele przechowywane z klastrowanym indeksem magazynu kolumn), powyższe typy kompresji nie mają zastosowania. W tym przypadku twoje opcje kompresji to COLUMNSTORE i COLUMNSTORE_ARCHIVE .

Ograniczenia/ograniczenia

Nie można włączyć kompresji tabel systemowych.

Jeśli tabela jest stertą (tabelą bez indeksu klastrowego), operacja przebudowy dla ONLINE tryb będzie jednowątkowy. W przypadku wielowątkowej operacji odbudowy sterty użyj OFFLINE tryb.

Ponadto podczas korzystania z tabel partycjonowanych obowiązują następujące ograniczenia:

  • Nie możesz zmienić ustawień kompresji pojedynczej partycji, jeśli tabela ma niewyrównane indeksy.
  • ALTER TABLE <table> REBUILD PARTITION ... składnia odbudowuje określoną partycję.
  • ALTER TABLE <table> REBUILD WITH ... składnia odbudowuje wszystkie partycje.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak podłączyć serwer sql za pomocą sterownika JTDS w systemie Android

  2. Sporadyczne awarie połączenia ODBC

  3. jakikolwiek limit liczby połączeń SQL Server?

  4. Zresetuj AutoIncrement w SQL Server po usunięciu

  5. UNION wyniki wielu procedur składowanych