Implementação da compactação Unicode

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

O 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 colunas nchar(n) e nvarchar(n). O Mecanismo de Banco de Dados armazena dados Unicode como 2 bytes, independentemente da 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 é compatível com os tipos de dados de comprimento fixo nchar(n) and nvarchar(n). Os valores de dados que são armazenados fora da linha ou em colunas nvarchar(max) não são compactados.

Observaçã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.

Upgrade de versões anteriores do SQL Server

Quando um banco de dados SQL Server é atualizado para o SQL Server, as alterações feitas devido à compactação Unicode não são feitas em nenhum objeto de 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ção

    Para aproveitar ao máximo os benefícios da compactação Unicode, reconstrua o objeto 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%

Próximas etapas