Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como habilitar a compactação em uma tabela existente no SQL Server (T-SQL)


Você pode usar o ALTER TABLE instrução para habilitar a compactação em uma tabela existente no SQL Server.

Para fazer isso, você precisa usar o REBUILD WITH opção, enquanto especifica o tipo de compactação desejado.

Exemplo


Aqui está um exemplo para demonstrar.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);

Nesse caso, reconstruí a tabela usando compactação de linha.

O seguinte o reconstrói com compactação de página.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);

Aplicar compactação a uma única partição


Se sua tabela for particionada, você poderá especificar essa partição para reconstruir com compactação.
ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW);

Como remover a compactação


Você pode remover a compactação usando NONE como o tipo de compressão.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);

Tabelas de coluna


Se você estiver usando tabelas columnstore (tabelas armazenadas com um índice columnstore clusterizado), os tipos de compactação acima não se aplicam. Nesse caso, suas opções de compactação são COLUMNSTORE e COLUMNSTORE_ARCHIVE .

Limitações/Restrições


As tabelas do sistema não podem ser habilitadas para compactação.

Se a tabela for um heap (uma tabela sem índice clusterizado), a operação de reconstrução para ONLINE o modo será de rosca única. Para uma operação de reconstrução de heap multithread, use OFFLINE modo.

Além disso, ao usar tabelas particionadas, as seguintes restrições se aplicam:
  • Você não pode alterar a configuração de compactação de uma única partição se a tabela tiver índices não alinhados.
  • A ALTER TABLE <table> REBUILD PARTITION ... sintaxe reconstrói a partição especificada.
  • O ALTER TABLE <table> REBUILD WITH ... sintaxe reconstrói todas as partições.