Implémentation de compression Unicode

S’applique à :SQL ServerAzure SQL DatabaseAzure 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 compressés 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 sous la forme de 2 octets, quels que soient les 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 pris en charge

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

Note

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.

Mettre à niveau à partir de versions antérieures de SQL Server

Lorsqu’une base de données SQL Server est mise à niveau vers SQL Server, 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 il l’a fait 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.

    Note

    Pour tirer pleinement parti des avantages de la compression Unicode, régénérez l’objet avec la compression de page ou de ligne.

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
English 50 %
Allemand 50 %
Hindi 50 %
Turc 48 %
Vietnamien 39
Japonais 15 %

Étapes suivantes