Sdílet prostřednictvím


Implementace komprese Unicode

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLDatabáze SQL v Microsoft Fabric

SQL Server používá implementaci algoritmu Standard Compression Scheme for Unicode (SCSU) ke komprimaci hodnot Unicode, které jsou uloženy v objektech komprimovaných na řádku nebo stránce. U těchto komprimovaných objektů je komprese Unicode automatická pro sloupce nchar(n) a nvarchar(n). Databázový stroj ukládá data Unicode jako 2 bajty bez ohledu na národní prostředí. To se označuje jako kódování UCS-2. U některých národních prostředí může implementace komprese SCSU v SQL Serveru ušetřit až 50 procent v prostoru úložiště.

Podporované datové typy

Komprese Unicode podporuje datové typy s pevnou délkou nchar(n) a nvarchar(n). Hodnoty dat uložené mimo řádek nebo ve sloupcích nvarchar(max) nejsou komprimované.

Poznámka:

Komprese Unicode není podporována pro data nvarchar(max), i když je uložena v řádku. Tento datový typ ale může i nadále těžit z komprese stránek.

Upgrade ze starších verzí SQL Serveru

Při upgradu databáze SQL Serveru na SQL Server se změny komprese Unicode neprovedou u žádného databázového objektu, komprimované nebo nekomprimované. Po upgradu databáze jsou objekty ovlivněny následujícím způsobem:

  • Pokud objekt není komprimovaný, neprovedou se žádné změny a objekt bude fungovat stejně jako předtím.

  • Objekty komprimované podle řádků nebo stránek nadále fungují stejně jako předtím. Nekomprimovaná data zůstávají v nekomprimované podobě, dokud se neaktualizuje její hodnota.

  • Nové řádky, které jsou vloženy do řádkové nebo stránkové komprimované tabulky, se komprimují pomocí komprese Unicode.

    Poznámka:

    Pokud chcete plně využít výhod komprese Unicode, znovu sestavte objekt pomocí komprese stránky nebo řádku.

Vliv komprese Unicode na úložiště dat

Při vytvoření nebo znovuvytvoření indexu nebo při změně hodnoty v tabulce komprimované pomocí komprese řádku nebo stránky se ovlivněný index nebo hodnota uloží komprimovaně pouze v případě, že je jeho komprimovaná velikost menší než je jeho aktuální velikost. Tím zabráníte zvětšení velikosti řádků v tabulce nebo indexu kvůli kompresi Unicode.

Prostor úložiště, který komprese šetří, závisí na vlastnostech komprimovaných dat a národním prostředí dat. Následující tabulka uvádí úsporu místa, které lze dosáhnout pro několik lokalizací.

Locale Procento komprese
Angličtina 50 %
Němčina 50 %
Hindština 50 %
Turečtina 48%
Vietnamština 39%
Japonština 15 %

Další kroky