La compression unicode est-elle efficace ?

Publié le par Raymond

Access utilise le schéma de codage de caractères Unicode pour représenter les données dans un champ Texte, Mémo ou Lien hypertexte. Étant donné que Unicode code chaque caractère sur deux octets, les données d'un champ Texte, Mémo ou Lien hypertexte nécessitent plus d'espace de stockage que dans les versions 97 ou antérieures, où les caractères étaient représentés sur un octet.
Pour décaler l'effet de représentation Unicode des caractères et garantir une performance optimale, la valeur par défaut de la propriété Compression Unicode d'un champ Texte, Mémo ou Lien hypertexte est Oui, lors de la création du champ en mode création de table de l’interface utilisateur. Lorsque la propriété Compression Unicode d'un champ est définie à Oui, tout caractère dont le premier octet est 0 est compressé lorsqu'il est stocké et décompressé lorsqu'il est extrait. Étant donné que le premier octet d'un caractère latin — caractère d'une langue occidentale telle que l'anglais, le français, l'espagnol ou l'allemand — est 0, la représentation des caractères au format Unicode n'affecte pas la quantité d'espace de stockage nécessaire pour les données compressées qui se composent entièrement de caractères latins.
Dans un champ, vous pouvez stocker n'importe quelle combinaison de caractères pris en charge par Unicode. Toutefois, si le premier octet d'un caractère particulier n'est pas 0, ce caractère n'est pas compressé.
Dans un champ Mémo, les données ne sont pas compressées tant qu'elles ne dépassent pas 4 096 octets d'espace de stockage après compression. Par conséquent, le contenu d'un champ Mémo peut être compressé dans un enregistrement, mais peut ne pas l'être dans un autre.
Ce dernier alinéa apporte un bémol à l’efficacité d’une telle propriété sur un champ mémo. Cette limite de 4Ko minimum pour compresser les données du champ mémo veut dire que seules les données de taille supérieure à 8-10Ko seront traitées et que l’efficacité s’en trouve terriblement diminuée. Si toutes les données des champs mémo de la base ne dépassent pas 8Ko, aucune compression ne sera réalisée et dans ce cas aucun gain de taille ne sera observé.
Seule la compression unicode des champs texte reste efficace en matière de taille de base Access, mais est-elle efficace en matière de temps d’exécution ? La question reste posée.
NB : en création de champ par programmation VBA, la valeur par défaut de la propriété Compression unicode est à Non par défaut.

Publié dans Spécifications

Commenter cet article