Partilhar via


Implementação de compressão Unicode

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

O SQL Server utiliza uma implementação do algoritmo Standard Compression Scheme for Unicode (SCSU) para comprimir valores Unicode que são armazenados em objetos comprimidos por linhas ou páginas. Para estes objetos comprimidos, a compressão Unicode é automática para as colunas nchar(n) e nvarchar(n). O Motor de Base de Dados armazena dados Unicode como 2 bytes, independentemente da localização. Isto é conhecido como codificação UCS-2. Para alguns locais, a implementação da compressão SCSU no SQL Server pode poupar até 50 por cento de espaço de armazenamento.

Tipos de dados suportados

A compressão Unicode suporta os tipos de dados de comprimento fixo nchar(n) e nvarchar(n). Os valores de dados armazenados fora de linha ou em colunas nvarchar(max) não são comprimidos.

Observação

A compressão Unicode não é suportada para dados nvarchar(max ), mesmo que estejam armazenados em linha. No entanto, este tipo de dado ainda pode beneficiar da compressão da página.

Atualização a partir de versões anteriores do SQL Server

Quando uma base de dados SQL Server é atualizada para SQL Server, alterações relacionadas com compressão Unicode não são feitas em nenhum objeto da base de dados, comprimido ou não. Após a atualização da base de dados, os objetos são afetados da seguinte forma:

  • Se o objeto não for comprimido, não são feitas alterações e o objeto continua a funcionar como antes.

  • Os objetos comprimidos por linhas ou páginas continuam a funcionar como antes. Os dados não comprimidos permanecem em forma não comprimida até que o seu valor seja atualizado.

  • Novas linhas inseridas numa tabela comprimida por linhas ou páginas são comprimidas usando compressão Unicode.

    Observação

    Para tirar pleno proveito dos benefícios da compressão Unicode, reconstrua o objeto com compressão por página ou linha.

Como a compressão Unicode afeta o armazenamento de dados

Quando um índice é criado ou reconstruído ou quando um valor é alterado numa tabela que foi comprimido com compressão de linhas ou páginas, o índice ou valor afetado é armazenado comprimido apenas se o seu tamanho comprimido for inferior ao tamanho atual. Isto impede que as linhas numa tabela ou índice aumentem de tamanho devido à compressão Unicode.

O espaço de armazenamento que a compressão poupa depende das características dos dados que estão a ser comprimidos e da localização dos mesmos. A tabela seguinte lista as poupanças de espaço que podem ser alcançadas em vários locais.

Localidade Percentagem de compressão
Inglês 50%
Alemão 50%
Híndi 50%
Turco (língua) 48%
Vietnamita 39%
Japonês 15%

Próximos passos