Compartilhar via


Implementação da compactação Unicode

SQL Server usa uma implementação do algoritmo SCSU (Esquema de Compactação Padrão para Unicode) para compactar valores Unicode que são armazenados em objetos compactados por linha ou página. Para esses objetos compactados, a compactação Unicode é automática para as colunas nchar(n) e nvarchar(n). O Mecanismo de Banco de Dados armazena dados Unicode como 2 bytes, seja qual for a localidade. Isso é conhecido como codificação UCS-2. Para algumas localidades, a implementação da compactação SCSU no SQL Server pode economizar até 50 por cento em espaço de armazenamento.

Tipos de dados com suporte

A compactação Unicode dá suporte aos tipos de dados de comprimento fixo nchar(n) e nvarchar(n). Os valores de dados armazenados fora da linha ou em colunas nvarchar(max) não são compactados.

ObservaçãoObservação

A Compactação de Unicode não terá suporte para obter dados nvarchar(max) mesmo se forem armazenados em linha. Porém, este tipo de dados ainda pode aproveitar a compactação de página.

Atualizando a partir de versões anteriores do SQL Server

Quando um banco de dados do SQL Server é atualizado para SQL Server 2012, as alterações feitas devido à compactação Unicode não são feitas em nenhum objeto do banco de dados, compactado ou não. Depois que o banco de dados é atualizado, os objetos são afetados da seguinte maneira:

  • Se o objeto não for compactado, nenhuma alteração será feita e o objeto continuará funcionando como antes.

  • Objetos compactados por linha ou página continuam funcionando como antes. Dados não compactados permanecerão assim até que seu valor seja atualizado.

  • As novas linhas inseridas em uma tabela compactada por linha ou página usam compactação Unicode.

    ObservaçãoObservação

    Para aproveitar ao máximo os benefícios da compactação Unicode, o objeto deve ser reconstruído com compactação de página ou linha.

Como a compactação Unicode afeta o armazenamento de dados

Quando um índice é criado ou reconstruído ou quando um valor é alterado em uma tabela que foi compactada por linha ou página, o índice ou valor afetado será armazenado compactado somente se seu tamanho compactado for menor que seu tamanho atual. Isto impede as linhas em uma tabela ou índice de aumentarem de tamanho devido à compactação Unicode.

O espaço de armazenamento que a compactação economiza depende das características e da localidade dos dados que estão sendo compactados. A tabela a seguir lista a economia de espaço que pode ser obtida para diversas localidades.

Localidade

Porcentagem de compactação

Inglês

50%

Alemão

50%

Híndi

50%

Turco

48%

Vietnamita

39%

Japonês

15%

Consulte também

Referência

sp_estimate_data_compression_savings (Transact-SQL)

sys.dm_db_persisted_sku_features (Transact-SQL)

Conceitos

Compactação de dados

Implementação da compactação de página