Implementación de la compresión Unicode

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

SQL Server usa una implementación del algoritmo del esquema de compresión estándar para Unicode (SCSU) para comprimir los valores Unicode que están almacenados en objetos comprimidos de fila o página. Para estos objetos comprimidos, la compresión Unicode es automática para columnas nchar(n) y nvarchar(n). El motor de base de datos almacena los datos Unicode como 2 bytes, independientemente de la localización. Esto se denomina codificación UCS-2. Para algunas configuraciones regionales, la implementación de la compresión SCSU en SQL Server puede ahorrar hasta el 50% de espacio de almacenamiento.

Tipos de datos admitidos

La compresión Unicode admite los tipos de datos de longitud fija nchar(n) y nvarchar(n). Los valores de datos que no están almacenados de forma consecutiva o en columnas nvarchar(max) no se comprimen.

Nota:

La compresión Unicode no se admite para los datos nvarchar(max) aunque estén almacenados de forma consecutiva. Sin embargo, este tipo de datos puede seguir beneficiándose de la compresión de página.

Actualización de versiones anteriores de SQL Server

Cuando una base de datos de SQL Server se actualiza a SQL Server, los cambios relacionados con la compresión Unicode no se llevan a cabo en ningún objeto de base de datos, tanto si está comprimido como si no. Una vez actualizada la base de datos, los objetos se ven afectados de la siguiente forma:

  • Si el objeto no está comprimido, no se realiza ningún cambio y sigue funcionando como lo hacía anteriormente.

  • Los objetos comprimidos de fila o página siguen funcionando como lo hacían anteriormente. Los datos sin comprimir permanecen sin comprimir hasta que se actualiza su valor.

  • Las nuevas filas que se insertan en una tabla comprimida de fila o página se comprimen con la compresión Unicode.

    Nota:

    Para aprovechar al máximo las ventajas de la compresión Unicode, recompile el objeto con compresión de páginas o filas.

Cómo afecta la compresión Unicode al almacenamiento de datos

Cuando un índice se crea o regenera, o bien cuando un valor se cambia en una tabla que se comprimió con compresión de fila o página, el índice o el valor afectado se almacena comprimido solo si su tamaño comprimido es menor que su tamaño actual. De este modo se evita que las filas de una tabla o índice aumenten de tamaño debido a la compresión Unicode.

El espacio de almacenamiento que la compresión ahorra depende de las características de los datos que se vayan a comprimir y la configuración regional de dichos datos. En la tabla siguiente se enumeran los ahorros de espacio que se pueden conseguir para diferentes configuraciones regionales.

Configuración regional Porcentaje de compresión
Inglés 50 %
Alemán 50 %
Hindi 50 %
Turco 48%
Vietnamita 39 %
Japonés 15 %

Pasos siguientes