Implémentation de la compression Unicode

S’applique à : SQL Server Base de données Azure SQL Azure SQL Managed Instance

SQL Server utilise une implémentation de l’algorithme SCSU (Standard Compression Scheme for Unicode) pour compresser les valeurs Unicode stockées dans des objets à compression de ligne ou de page. Pour ces objets compressés, la compression Unicode est automatique pour les colonnes nchar(n) et nvarchar(n). Le moteur de base de données stocke les données Unicode comme 2 octets, indépendamment des paramètres régionaux. Ceci porte le nom d'encodage UCS-2. Pour certains paramètres régionaux, l'implémentation de la compression SCSU dans SQL Server peut économiser jusqu'à 50 pour cent d'espace de stockage.

Types de données prises en charge

La compression Unicode prend en charge les types de données de longueur fixe nchar(n) et nvarchar(n). Les valeurs de données stockées hors ligne ou dans des colonnes nvarchar(max) ne sont pas compressées.

Remarque

La compression Unicode n’est pas prise en charge pour les données nvarchar(max) , même si celles-ci sont stockées dans des lignes. Toutefois, ce type de données peut tirer parti de la compression de page.

Mises à niveau des versions antérieures de SQL Server

Quand une base de données SQL Server est mise à niveau, les modifications liées à la compression Unicode ne sont apportées à aucun objet de base de données, compressé ou non compressé. Une fois la base de données mise à niveau, les objets sont affectés comme suit :

  • Si l'objet n'est pas compressé, aucune modification n'est apportée et l'objet continue de fonctionner comme précédemment.

  • Les objets à compression de page ou de ligne continuent de fonctionner comme précédemment. Les données non compressés restent sous forme non compressée jusqu'à ce que leur valeur soit mise à jour.

  • Les nouvelles lignes insérées dans une table à compression de page ou de ligne sont compressées à l'aide de la compression Unicode.

    Remarque

    Pour tirer pleinement parti des avantages de la compression Unicode, reconstruisez l'objet avec compression de ligne ou de page.

Impact de la compression Unicode sur le stockage des données

Lorsqu'un index est créé ou reconstruit ou lorsqu'une valeur est modifiée dans une table compressée avec la compression de page ou de ligne, l'index ou la valeur affecté est stockée sous forme compressée uniquement si sa taille compressée est inférieure à sa taille actuelle. Cela empêche que la taille des lignes dans une table ou un index n'augmente à cause de la compression Unicode.

L'espace de stockage économisé par la compression dépend des caractéristiques des données compressées et des paramètres régionaux des données. Le tableau suivant répertorie les économies d'espace qui peuvent être accomplies pour plusieurs paramètres régionaux.

Paramètres régionaux Pourcentage de compression
Anglais 50%
Allemand 50%
Hindi 50%
Turc 48 %
Vietnamien 39
Japonais 15 %

Étapes suivantes